PageSourceSearch

https://werkenbijdefensie.nl/build/app/js/chunks/2567.js?id=eebd4d47aec85f91

js werkenbijdefensie.nl collected 2026-09-24 21:00:04 UTC 1,017,005 bytes, 2 lines download raw bytes

vendor: 4,460 bytes, lines 1-2
1/*! For license information please see 2567.js.LICENSE.txt */
2!function(){var e={12050:function(e,t,n){var r={"./T_RockGroup01_1_D.webp":98845,"./T_RockGroup01_2_D.webp":52948,"./T_RockGroup01_3_D.webp":38367,"./mossy_mud1_Normal-ogl.webp":54782,"./mossy_mud1_albedo.webp":23467,"./mossy_mud1_ao.webp":56798,"./patchy-meadow1_albedo.webp":26798,"./patchy-meadow1_ao.webp":96511,"./patchy-meadow1_normal-ogl.webp":61115,"./rocks.json":61171};function o(e){var t=i(e);return n(t)}function i(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=i,e.exports=o,o.id=12050},89908:function(e,t,n){var r={"./11713-v8.webp":65741,"./concreteBox/floor1k.webp":9290,"./concreteBox/wall2k.webp":21559,"./dustAndFlares.webp":78591,"./grasslands/T_RockGroup01_1_D.webp":98845,"./grasslands/T_RockGroup01_2_D.webp":52948,"./grasslands/T_RockGroup01_3_D.webp":38367,"./grasslands/mossy_mud1_Normal-ogl.webp":54782,"./grasslands/mossy_mud1_albedo.webp":23467,"./grasslands/mossy_mud1_ao.webp":56798,"./grasslands/patchy-meadow1_albedo.webp":26798,"./grasslands/patchy-meadow1_ao.webp":96511,"./grasslands/patchy-meadow1_normal-ogl.webp":61115};function o(e){var t=i(e);return n(t)}function i(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=i,e.exports=o,o.id=89908},5089:function(e,t,n){var r={"./Infantry/Infantry.fs.glsl":65846,"./Infantry/Infantry.vs.glsl":23558,"./afterburnerTrail/afterburnerTrail.fs.glsl":65396,"./afterburnerTrail/afterburnerTrail.vs.glsl":97988,"./blitToChannel/blitToChannel.fs.glsl":25718,"./blitToChannel/blitToChannel.vs.glsl":81414,"./bloom/bloom.fs.glsl":38474,"./bloom/bloom.vs.glsl":11066,"./cloudShape/cloudShape.fs.glsl":25504,"./cloudShape/cloudShape.vs.glsl":97232,"./cloudsContinuous/cloudsContinuous.fs.glsl":12746,"./cloudsContinuous/cloudsContinuous.vs.glsl":4730,"./concreteBox/concreteBox.fs.glsl":63506,"./concreteBox/concreteBox.vs.glsl":42658,"./depth/depth.fs.glsl":55986,"./depth/depth.vs.glsl":25858,"./desertMicroNormal/desertMicroNormal.fs.glsl":30854,"./desertMicroNormal/desertMicroNormal.vs.glsl":56790,"./desertNoise/desertNoise.fs.glsl":68742,"./desertNoise/desertNoise.vs.glsl":13046,"./desertNormalHeight/desertNormalHeight.fs.glsl":49078,"./desertNormalHeight/desertNormalHeight.vs.glsl":95942,"./dustAndFlares/dustAndFlares.fs.glsl":54526,"./dustAndFlares/dustAndFlares.vs.glsl":76686,"./foamBake/foamBake.fs.glsl":39512,"./foamBake/foamBake.vs.glsl":4776,"./foamCoverageBake/foamCoverageBake.fs.glsl":62556,"./foamCoverageBake/foamCoverageBake.vs.glsl":19532,"./grassLandsNormalHeight/grassLandsNormalHeight.fs.glsl":7484,"./grassLandsNormalHeight/grassLandsNormalHeight.vs.glsl":80812,"./grassland/grassland.fs.glsl":51594,"./grassland/grassland.vs.glsl":24186,"./hotspot/hotspot.fs.glsl":5690,"./hotspot/hotspot.vs.glsl":13706,"./includes/dunes.glsl":66255,"./includes/horizonHaze.glsl":16685,"./includes/kelvinWake.glsl":53417,"./includes/light.glsl":13988,"./includes/noise.glsl":49822,"./includes/posteffects.glsl":49304,"./includes/simplex.glsl":20762,"./includes/toneMap.glsl":33126,"./kelvinBake/kelvinBake.fs.glsl":43824,"./kelvinBake/kelvinBake.vs.glsl":91456,"./ocean/ocean.fs.glsl":72034,"./ocean/ocean.vs.glsl":66482,"./ocean/oceanSky.fs.glsl":82812,"./ocean/oceanSky.vs.glsl":62943,"./particles/particles.fs.glsl":61266,"./particles/particles.vs.glsl":83170,"./post/post.fs.glsl":43784,"./post/post.vs.glsl":78520,"./precompBase/precompBase.fs.glsl":64442,"./precompBase/precompBase.vs.glsl":66794,"./precompCurl/precompCurl.fs.glsl":23062,"./precompCurl/precompCurl.vs.glsl":69926,"./precompDetail/precompDetail.fs.glsl":8426,"./precompDetail/precompDetail.vs.glsl":9978,"./puddleReflection/puddleReflection.fs.glsl":61554,"./puddleReflection/puddleReflection.vs.glsl":40706,"./rippleDetailBake/rippleDetailBake.fs.glsl":97700,"./rippleDetailBake/rippleDetailBake.vs.glsl":99284,"./rocks/rocks.fs.glsl":60734,"./rocks/rocks.vs.glsl":85294,"./sand/sand.fs.glsl":85148,"./sand/sand.vs.glsl":86796,"./sky/sky.fs.glsl":79866,"./sky/sky.vs.glsl":61962,"./spotDepth/spotDepth.fs.glsl":16202,"./spotDepth/spotDepth.vs.glsl":8186,"./twoPassBlur/twoPassBlur.fs.glsl":54226,"./twoPassBlur/twoPassBlur.vs.glsl":24098,"./unity/unity.fs.glsl":14438,"./unity/unity.vs.glsl":54838,"./unlit/unlit.f
2s.glsl":36602,"./unlit/unlit.vs.glsl":44618};function o(e){var t=i(e);return n(t)}function i(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=i,e.exports=o,o.id=5089},65741:function(e){"use strict";e.exports="/build/app/images/11713-v8.webp?965200ea4e8f26cf"},9290:function(e){"use strict";e.exports="/build/app/images/floor1k.webp?3beb79cd02a68cc0"},21559:function(e){"use strict";e.exports="/build/app/images/wall2k.webp?5233a454c4354674"},78591:function(e){"use strict";e.exports="/build/app/images/dustAndFlares.webp?e1649ed2d2bda3a8"},98845:function(e){"use strict";e.exports="/build/app/images/T_RockGroup01_1_D.webp?fb01a0bc7969f8f1"},52948:function(e){"use strict";e.exports="/build/app/images/T_RockGroup01_2_D.webp?c6abc957d65dc458"},38367:function(e){"use strict";e.exports="/build/app/images/T_RockGroup01_3_D.webp?d0d81918fa8254b3"},54782:function(e){"use strict";e.exports="/build/app/images/mossy_mud1_Normal-ogl.webp?7f6981c93eb14852"},23467:function(e){"use strict";e.exports="/build/app/images/mossy_mud1_albedo.webp?00f40270396744cb"},56798:function(e){"use strict";e.exports="/build/app/images/mossy_mud1_ao.webp?d230bc2782acb11b"},26798:function(e){"use strict";e.exports="/build/app/images/patchy-meadow1_albedo.webp?49e9fb20c2ef5ac4"},96511:function(e){"use strict";e.exports="/build/app/images/patchy-meadow1_ao.webp?2f62c236a382b130"},61115:function(e){"use strict";e.exports="/build/app/images/patchy-meadow1_normal-ogl.webp?fbeb9e40605b7f87"},65846:function(e){"use strict";e.exports="//\n// Simplified lighting for the infantry models.\n//\n// Unlike the 'unity' shader this one does not use the HdrToPbr environment (no irradiance /\n// prefilter / brdf lut lookups). All the shading comes from a single SpotLight that is mounted on\n// the camera, plus a flat hemispheric ambient term. The normal map drives both.\n//\n// The defines below are set by UnityMaterial, exactly like for the 'unity' shader:\n//\n// USE_ALBEDO_MAP\n// USE_ALPHA_MAP\n// USE_NORMAL_MAP\n// USE_ROUGHNESS ( + USE_ROUGHNESS_MAP )\n// USE_METALLIC  ( + USE_METALLIC_MAP )\n// USE_EMISSIVE  ( + USE_EMISSIVE_MAP )\n// TRANSPARENT\n// DEBUG_ENABLED\n//\n\n#version 300 es\n\nprecision highp float;\n\n#include includes/toneMap.glsl\n#include includes/light.glsl\n\nlayout(location = 0) out vec4 fragColor;\n\nin vec3 vWorld;\nin vec3 vWorldNormal;\nin vec2 vUV;\n\n#ifdef USE_ALBEDO_MAP\nuniform sampler2D _AlbedoMap;\n#endif\nuniform vec3 _Albedo;\n\n#ifdef USE_ALPHA_MAP\nuniform sampler2D _AlphaMap;\n#endif\nuniform float _AlphaValue;\n\n#ifdef USE_ROUGHNESS\n#ifdef USE_ROUGHNESS_MAP\nuniform sampler2D _RoughnessMap;\n#else\nuniform float _Roughness;\n#endif\n#endif\n\n#ifdef USE_METALLIC\n#ifdef USE_METALLIC_MAP\nuniform sampler2D _MetallicMap;\n#else\nuniform float _Metallic;\n#endif\n#endif\n\n#ifdef USE_NORMAL_MAP\nuniform sampler2D _NormalMap;\nin mat3 vTBN;\n#endif\n\n#ifdef DEBUG_ENABLED\nuniform float _DebugMap;\n#endif\n\nuniform vec3 _CamPos;\nuniform vec3 _SpotPosition;\nuniform vec3 _SpotColor;\nuniform float _SpotStrength;\nuniform float _SpotRange;\nuniform vec2 _SpotDepthWindow;\nuniform float _ConeSoftness;\nuniform mat4 _SpotViewProjection;\nuniform sampler2D _SpotShadowMap;\nuniform float _SpotVarianceMin;\nuniform float _SpotBleedThreshold;\nuniform vec3 _AmbientColor;\nuniform float _AmbientStrength;\n\nvec3 getNormal() {\n    #ifdef USE_NORMAL_MAP\n    vec3 nm = texture(_NormalMap, vUV).xyz * 2. - 1.;\n    return normalize(vTBN * nm);\n    #else\n    return normalize(vWorldNormal);\n    #endif\n}\n\n//https://http.download.nvidia.com/developer/presentations/2006/gdc/2006-GDC-Variance-Shadow-Maps.pdf\n//the receiver is remapped onto the same centred window spotDepth.fs.glsl stored the moments in\nfloat spotShadow(float distanceToLight) {\n    vec4 screen = _SpotViewProjection * vec4(vWorld, 1.);\n    vec3 ndc = screen.xyz / screen.w;\n    //behind the light or outside its frustum there is no light to occlude\n    if (screen.w <= 0. || max(abs(ndc.x), abs(ndc.y)) >= 1.) {\n        return 0.;\n    }\n\n    float penumbra = smoothstep(1., 1. - _ConeSoftness, length(ndc.xy));\n    if (penumbra == 0.) {\n        return 0.;\n    }\n    //past the far edge of the window this clamps onto the cleared value, which reads as unoccluded\n    float t = clamp((distanceToLight - _SpotDepthWindow.x) * _SpotDepthWindow.y, 0., 1.) - .5;\n    vec2 moments = texture(_SpotShadowMap, ndc.xy * .5 + .5).rg;\n    float lit = step(t, moments.x);\n    float variance = max(moments.y - moments.x * moments.x, _SpotVarianceMin * _SpotVarianceMin);\n    float d = t - moments.x;\n    float p = variance / (variance + d * d);\n    //the smoothstep prevents some of the VSM artifacts on blurred depth textures\n    return smoothstep(_SpotBleedThreshold, 1., max(lit, p)) * penumbra;\n}\n\nvoid main(){\n    vec3 albedo = gammaToLinear(_Albedo);\n\n    #ifdef USE_ALPHA_MAP\n    float alpha = texture(_AlphaMap, vUV).g;\n    if (alpha < 0.5) {\n        discard;\n    }\n    #else\n    float alpha = 1.;
2\n    #endif\n    alpha *= _AlphaValue;\n\n    #ifdef USE_ALBEDO_MAP\n    vec4 albedoLookup = texture(_AlbedoMap, vUV);\n    albedo *= gammaToLinear(albedoLookup.rgb);\n    #ifdef TRANSPARENT\n    #ifndef USE_ALPHA_MAP\n    alpha *= albedoLookup.a;\n    #endif\n    #endif\n    #endif\n\n    #ifdef USE_ROUGHNESS\n    #ifdef USE_ROUGHNESS_MAP\n    float roughness = texture(_RoughnessMap, vUV).r;\n    #else\n    float roughness = _Roughness;\n    #endif\n    #else\n    float roughness = .95;\n    #endif\n\n    #ifdef USE_METALLIC\n    #ifdef USE_METALLIC_MAP\n    float metallic = texture(_MetallicMap, vUV).r * .5;\n    #else\n    float metallic = _Metallic;\n    #endif\n    #else\n    float metallic = 0.;\n    #endif\n\n    vec3 N = getNormal();\n    vec3 V = normalize(_CamPos - vWorld);\n\n    vec3 toLight = _SpotPosition - vWorld;\n    float distanceToLight = length(toLight);\n    vec3 L = toLight / max(distanceToLight, 0.0001);\n\n    //same falloff as pointLight() in includes/light.glsl\n    float falloff = 1. - min(distanceToLight / _SpotRange, 1.);\n    float attenuation = falloff * falloff;\n\n    float shadowAmount = spotShadow(distanceToLight);\n\n    vec3 F0 = mix(vec3(0.04), albedo, metallic);\n\n    //cheap hemispheric fill so the side away from the spot does not go black\n    vec3 ambient = _AmbientColor * (_AmbientStrength * (N.y * .25 + .75)) * albedo;\n\n    vec3 spot = directionalLight(N, V, F0, albedo, metallic, roughness, L, attenuation * _SpotStrength, _SpotColor);\n\n    vec3 color = ambient + shadowAmount * spot ;\n\n    #ifdef TRANSPARENT\n    vec4 c = vec4(color, 1.) * alpha;\n    #else\n    vec4 c = vec4(color, 1.);\n    #endif\n\n    #ifdef DEBUG_ENABLED\n    if (_DebugMap > 0.){\n        if (_DebugMap < 1.5){\n            #ifdef USE_NORMAL_MAP\n            c.xyz = texture(_NormalMap, vUV).xyz;\n            #else\n            c.xyz = normalize(vWorldNormal) * 0.5 + 0.5;\n            #endif\n        } else if (_DebugMap < 3.5){\n            c.xyz = N * 0.5 + 0.5;\n        } else if (_DebugMap < 4.5){\n            c.xyz = albedo;\n        } else if (_DebugMap < 5.5){\n            c.xyz = vec3(roughness);\n        } else if (_DebugMap < 6.5){\n            c.xyz = vec3(metallic);\n        } else if (_DebugMap < 9.5){\n            c.xyz = ambient;\n        } else if (_DebugMap < 12.5){\n            c.xyz = vec3(falloff);\n        } else {\n            c.xyz = vec3(shadowAmount);\n        }\n    }\n    #endif\n\n    fragColor = c;\n}\n"},23558:function(e){"use strict";e.exports="#version 300 es\n\nin vec3 aPos;\nin vec3 aNormal;\nin vec2 aUV0;\n\nuniform mat4 _ViewProjection;\nuniform mat4 _Model;\n\nout vec2 vUV;\nout vec3 vWorld;\nout vec3 vWorldNormal;\n\n#ifdef USE_NORMAL_MAP\nin vec4 aTangent;\nout mat3 vTBN;\n#endif\n\nvoid main(void) {\n    vUV = aUV0;\n\n    vec4 world = _Model * vec4(aPos, 1.0);\n    vWorld = world.xyz;\n    vWorldNormal = mat3(_Model) * aNormal;\n\n    #ifdef USE_NORMAL_MAP\n    vec3 B = normalize(cross(aTangent.xyz, aNormal));\n    B *= aTangent.w;\n    //the infantry models are never mirrored or non-uniformly scaled, so mat3(_Model) is enough\n    vTBN = mat3(_Model) * mat3(aTangent.xyz, B, aNormal);\n    #endif\n\n    gl_Position = _ViewProjection * world;\n}\n"},65396:function(e){"use strict";e.exports="#version 300 es\nprecision highp float;\n\nin vec3 vWorld;\nin vec3 vLocal;\n\nout vec4 fragColor;\n\nuniform vec3 _CameraPosition;\nuniform float _Time;\nuniform float _Opacity;\nuniform float _Brightness;\nuniform float _StepSize;\nuniform mat4 _InverseModel;\n\nvec2 hash22(vec2 p)\n{\n\tvec3 p3 = fract(vec3(p.xyx) * vec3(.1031, .1030, .0973));\n\tp3 += dot(p3, p3.yzx+33.33);\n\treturn fract((p3.xx+p3.yz)*p3.zy);\n}\n\nfloat rayCylinderBackfaceIntersection(vec3 ray_origin, vec3 ray_direction, vec3 cylinder_center, vec3 cylinder_axis, float cylinder_radius) {\n\tvec3 oc = ray_origin - cylinder_center;\n\n\tfloat rd_axis = dot(ray_direction, cylinder_axis);\n\tfloat oc_axis = dot(oc, cylinder_axis);\n\n\tfloat a = dot(ray_direction, ray_direction) - rd_axis * rd_axis;\n\tfloat b = dot(oc, ray_direction) - oc_axis * rd_axis;\n\tfloat c = dot(oc, oc) - oc_axis * oc_axis - cylinder_radius * cylinder_radius;\n\n\tfloat discriminant = b * b - a * c;\n\tif (discriminant < 0.0) return -1.0;\n\n\tfloat sqrt_disc = sqrt(discriminant);\n\tfloat inv_a = 1.0 / a;\n\n\tfloat t_cyl_in  = (-b - sqrt_disc) * inv_a;\n\tfloat t_cyl_out = (-b + sqrt_disc) * inv_a;\n\n\tfloat inv_rd_axis = 1.0 / rd_axis;\n\tfloat t_cap_1 = ( 1.0 - oc_axis) * inv_rd_axis;\n\tfloat t_cap_2 = (-1.0 - oc_axis) * inv_rd_axis;\n\n\tfloat t_cap_in  = min(t_cap_1, t_cap_2);\n\tfloat t_cap_out = max(t_cap_1, t_cap_2);\n\n\tfloat t_enter = max(t_cyl_in, t_cap_in);\n\tfloat t_exit  = min(t_cyl_out, t_cap_out);\n\tif (t_enter > t_exit || t_exit < 0.0) return -1.0;\n\n\treturn t_exit;\n}\n\n#define m4  mat4(0.00, 0.80, 0.60, -0.4, -0.80, 0.36, -0.48, -0.5, -0.60, -0.48, 0.64, 0.2, 
20.40, 0.30, 0.20, 0.4)\nvec4 sineNoise44(vec4 q)\n{\n\tfloat f = 1.;\n\tvec4 sum = vec4(0);\n\tfor (int i = 0; i < 3; i++){\n\t\tq = m4 * q;\n\t\tvec4 s = sin(q.ywxz * f) / f;\n\t\tq += s;\n\t\tsum += s;\n\t\tf *= 1.6;\n\t}\n\treturn sum;\n}\n\nfloat noise(vec3 p) {\n\tp.y *= 1.5;\n\tvec4 n = abs(sineNoise44(vec4(p * 6., _Time * -80.)));\n\treturn exp(-(n.x + n.y + n.z + n.w));\n}\n\nvoid main() {\n\tvec3 v = normalize(vWorld - _CameraPosition);\n\tvec3 rd = (_InverseModel * vec4(v, 0.0)).xyz;\n\tvec3 ro = vLocal;\n\tfloat tMax = rayCylinderBackfaceIntersection(ro, rd, vec3(0.0),  vec3(0, 1, 0), .5);\n\n\tvec2 h = hash22(gl_FragCoord.xy);\n\tfloat stepsF = ceil(tMax / _StepSize + h.x);\n\tint steps = int(stepsF);\n\tfloat t = h.y * _StepSize;\n\tvec4 sum = vec4(0.);\n\n\tfor(int i = 0; i < steps; i++){\n\t\tvec3 p = ro + rd * t;\n\t\tfloat d = noise(p);\n\t\td *= p.y * .5 + .5;\n\t\tvec3 c = vec3(d, d * d, d * d * d);\n\t\tsum.xyz += c;\n\t\tsum.w += d;\n\t\tt += _StepSize;\n\t}\n\tsum *= _Opacity * _StepSize;\n\tsum.xyz *= _Brightness;\n\tsum.w = min(sum.w, 1.);\n\n//\tfragColor = vec4(tMax >= 0.? vec3(tMax) : vec3(1,0,0), 1.);\n\tfragColor = sum;\n}\n"},97988:function(e){"use strict";e.exports="#version 300 es\n\nin vec3 aPos;\n\nuniform mat4 _ViewProjection;\nuniform mat4 _Model;\n\nout vec3 vWorld;\nout vec3 vLocal;\n\nvoid main(void) {\n\tvec4 world = _Model * vec4(aPos, 1.0);\n\n\tgl_Position = _ViewProjection * world;\n\n\tvWorld = world.xyz;\n\n\tvLocal = aPos;\n}\n\n"},25718:function(e){"use strict";e.exports="#version 300 es\nprecision mediump float;\nout vec4 fragColor;\n\nin vec2 vUV;\n\nuniform sampler2D _TextureR;\nuniform sampler2D _TextureG;\n\nvoid main(void) {\n    fragColor = vec4(texture(_TextureR, vUV).r, texture(_TextureG, vUV).r, 0.0, 1.0);\n}\n\n"},81414:function(e){"use strict";e.exports="#version 300 es\nin vec3 aPos;\nin vec2 aUV0;\n\nout vec2 vUV;\n\nvoid main(void) {\n    vUV = aUV0;\n    gl_Position = vec4(aPos, 1.0);\n}\n\n"},38474:function(e){"use strict";e.exports="#version 300 es\nprecision mediump float;\nout vec4 fragColor;\n\nin vec2 vUV;\n\nin vec2 vUV1;\nin vec2 vUV2;\nin vec2 vUV3;\nin vec2 vUV4;\n\nuniform sampler2D _Texture;\nuniform float _PassBoost;\nuniform float _Exposure;\n\n#include includes/toneMap.glsl\n\n#ifdef LAST_PASS\nuniform sampler2D _Source;\nuniform highp float _Time;\nuniform float _NoiseAmount;\nuniform float _Brightness;\n#endif\n\n#ifdef FIRST_PASS\nuniform float _Threshold;\nuniform float _Strength;\n\n#ifdef ALPHA_AS_EMISSIVE\nvec3 prefilter (in vec4 c) {\n    float brightness = 1. - c.w;\n    float contribution = max(0., brightness - _Threshold);\n    c.xyz *= (contribution * _Strength * _Strength);\n    return c.xyz;\n}\n#else\nvec3 prefilter (in vec3 c) {\n    float brightness = max(c.r, max(c.g, c.b));\n    float contribution = max(0., brightness - _Threshold);\n    return c * (contribution * _Strength * _Strength);\n    //return normalize(c) * (contribution * _Strength * _Strength);\n}\n#endif\n#endif\n\nvec3 ts(in vec2 uv) {\n    #ifdef FIRST_PASS\n    #ifdef ALPHA_AS_EMISSIVE\n    return prefilter(texture(_Texture, uv));\n    #else\n    return prefilter(texture(_Texture, uv).xyz);\n    #endif\n    #else\n    return texture(_Texture, uv).xyz;\n    #endif\n}\n\nvec3 bloomsq(vec3 c) {\n    //    return c * c;\n    return c;\n}\n\nvoid main(void) {\n    #ifdef LAST_PASS\n    vec3 s = bloomsq(ts(vUV1)) + bloomsq(ts(vUV2)) + bloomsq(ts(vUV3)) + bloomsq(ts(vUV4));\n    vec3 col = s * 0.25;\n\n    col += bloomsq(texture(_Source, vUV).xyz);\n\n    //        col = sqrt(col);\n    col *= _Exposure;\n    col = toneMap(col);\n\n    //        const float VignetteReduction = .95;\n    //        vec2 vuv = vUV1;\n    //        vuv *=  1.0 - vuv.yx;
2\n    //        col.rgb = mix(vec3(0.09411764705882353, 0.11372549019607843, 0.12549019607843137), col.rgb, ((1.-VignetteReduction) + pow(vuv.x*vuv.y*16., .25) * VignetteReduction) * _Brightness);\n\n    fragColor.xyz = col;\n    #else\n    vec3 s = ts(vUV1) + ts(vUV2) + ts(vUV3) + ts(vUV4);\n    fragColor.xyz = s * (0.25 * (1. + _PassBoost));\n    #endif\n    fragColor.w = 1.;\n}\n\n"},11066:function(e){"use strict";e.exports="#version 300 es\nin vec3 aPos;\nin vec2 aUV0;\n\nout vec2 vUV;\n\nout vec2 vUV1;\nout vec2 vUV2;\nout vec2 vUV3;\nout vec2 vUV4;\n\nuniform vec2 _SourceTexelSize;\nuniform float _RotateSample;\n\nvoid main(void) {\n    vUV = aUV0;\n\n    /*\tvec4 o = _BloomSourceTexelSize.xyxy * vec2(-1., 1.).xxyy;\n        vUV1 = vUV + o.xy;\n        vUV2 = vUV + o.zy;\n        vUV3 = vUV + o.xw;\n        vUV4 = vUV + o.zw;*/\n\n    vUV1 = vUV + vec2(-1., -1.) * _SourceTexelSize;\n    vUV2 = vUV + vec2(1., -1.) * _SourceTexelSize;\n    vUV3 = vUV + vec2(-1., 1.) * _SourceTexelSize;\n    vUV4 = vUV + vec2(1., 1.) * _SourceTexelSize;\n\n    //minimizes aliasing on straight lines\n    //    vUV1 += vec2(-1., 1.) * _SourceTexelSize * _RotateSample;\n    //    vUV2 += vec2(-1., -1.) * _SourceTexelSize * _RotateSample;\n    //    vUV3 += vec2(1., 1.) * _SourceTexelSize * _RotateSample;\n    //    vUV4 += vec2(1., -1.) * _SourceTexelSize * _RotateSample;\n\n    gl_Position = vec4(aPos, 1.0);\n}\n\n"},25504:function(e){"use strict";e.exports="#version 300 es\nprecision highp float;\nprecision highp sampler3D;\n\nin vec3 vWorld;\nin vec3 vLocal;\nin float vScale;\n\nout vec4 fragColor;\n\nuniform vec3 cameraPosition;\nuniform mat4 _Model;\nuniform float opacity;\nuniform float frequency;\nuniform float _Brightness;\nuniform float centerPower;\nuniform float centerDarken;\nuniform float densityDarken;\nuniform float stepSize;\nuniform float _LowFrequency;\nuniform float _LowFrequencyScale;\n//uniform vec3 color;\n\nuniform sampler3D source;\nuniform sampler2D textureSampler;\nuniform samplerCube diffuse;\n\n// Hash function\nvec4 hash24ff(vec2 p) {\n    vec4 p4 = fract(vec4(p.xyx * vec3(0.1031, 0.1030, 0.0973), p.x * 0.1099));\n    p4 += dot(p4, p4.wzxy + 33.33);\n    return fract((p4.xxyz + p4.yzzw) * p4.zywx);\n}\n\nfloat raySphereBackfaceIntersection(vec3 ray_origin, vec3 ray_direction, vec3 sphere_center, float sphere_radius) {\n    vec3 oc = ray_origin - sphere_center;\n    float a = dot(ray_direction, ray_direction);\n    float b = 2.0 * dot(oc, ray_direction);\n    float c = dot(oc, oc) - sphere_radius * sphere_radius;\n    float discriminant = b * b - 4.0 * a * c;\n\n    if (discriminant < 0.0) {\n        return -1.0;// No intersection\n    }\n\n    float t = (-b + sqrt(discriminant)) / (2.0 * a);// Use '+' for backface\n\n    if (t < 0.0) {\n        return -1.0;// Intersection behind ray origin\n    }\n\n    return t;// Return distance to backface intersection\n}\n\nfloat map(vec3 p, vec3 pWorld) {\n    float d = textureLod(source, (p * 0.5 + 0.5) * frequency, 0.0).x;\n    //low res frquency to break the sphericalness\n    //\td *= textureLod(source, pWorld * _LowFrequency, 0.0).x * _LowFrequencyScale;\n    d -= textureLod(source, pWorld * _LowFrequency, 0.0).x * _LowFrequencyScale;\n    d -= pow(dot(p, p), centerPower);\n    return max(d * opacity, 0.0);\n}\n\nvoid main() {\n    vec3 v = vWorld - cameraPosition;\n    float tWorld = length(v);\n    vec3 rd = v / tWorld;\n\n    vec3 ro = vLocal;\n\n    vec4 col = vec4(0.);\n    //\tvec3 col = vec3(0.0);\n    //\tfloat a = 0.0;\n\n    float tMin = 0.0;\n    float tMax = raySphereBackfaceIntersection(ro, rd, vec3(0.0), 1.0);\n\n    vec4 h = hash24ff(gl_FragCoord.xy);\n    float ss = stepSize;\n    float t = tMax + h.x * ss;\n\n    mat3x3 nm = mat3x3(_Model);\n    vec3 normalIn = nm * ro;\n    vec3 nOut = normalize(ro + rd * tMax);\n    vec3 normalOut = nm * nOut;\n\n    vec3 diffuse0 = textureLod(diffuse, -normalIn, 0.0).rgb;\n    vec3 diffuse1 = textureLod(diffuse, -normalOut, 0.0).rgb;\n\n    //\tcol = diffuse0;\n\n    //back to front\n    uint i = 0u;\n    while (t > tMin && i < 100u) {\n        vec3 p = ro + rd * t;\n        //\t\tvec3 pWorld = cameraPosition + rd * (tWorld + t);\n        vec3 pWorld = vWorld + rd * (t * vScale);\n        float d = map(p, pWorld);\n\n        if (d >0.){\n            float brightness = mix(1.0, length(p), centerDarken);\n            //\t\tvec3 diff = mix(diffuse0, diffuse1, clamp(smoothstep(tMin, tMax, t) * 3.0 - 1.0, 0.0, 1.0)) * color * brightness;\n            vec3 diff = mix(diffuse0, diffuse1, clamp(smoothstep(tMin, tMax, t) * 3.0 - 1.0, 0.0, 1.0)) * brightness;\n\n            //\t\t\tcol += vec4(col.xyz * d, d);\n\n            col.xyz *= 1. - d;\n            col.xyz += diff * d;\n            col.w = col.w * (1.0 - d) + d;\n\n            //\t\t\tcol = mix(col, diff, d);\n            //\t\t\ta = a * (1.0 - d) + d;\n        }\n        t -= ss;\n        i += 1u;\n    }\n\n\n\n    if (col.w < 0.001){\n        discard;\n    }\n    col.xyz *= _Brightness;\n\n    //\tcol.xyz /= col.w;\n\n    //\tcol = toneMap(col);\n    //\tcol.xyz = toneMap(col.xyz);\n\n    //\tfragColor = vec4(col, 1.) * a;\n    fragColor = col;\n}\n"},97232:function(e){"use strict";e.exports="#version 300 es\n\nin vec3 aPos;\n\nuniform mat4 _ViewProjection;\nuniform mat4 _Model;\n\nout vec3 vWorld;\nout vec3 vLocal;\nout float vScale;\n\nvoid main(void) {\n    vec4 world = _Model * vec4(aPos, 1.0);\n\n    gl_Position = _ViewProjection * world;\n\n    vWorld = world.xyz;\n\n    vLocal = aPos;\n\n    vScale = length(vec3(_Model[0][0], _Model[1][0], _Model[2][0]));\n}\n\n"},12746:function(e){"use strict";e.exports="#version 300 es\nprecision highp float;\nprecision highp sampler3D;\n\nin vec3 vLocal;\n\nout vec4 fragColor;\n\nuniform float _Opacity;\nuniform float _Bias;\nuniform float _LowFrequency;\nuniform float _HighFrequency;\nuniform float _HighFrequencyScale;\nuniform float _Brightness;\nuniform float _StepSize;\nuniform float _CloudsTop;\nuniform float _CloudsBottom;\nuniform highp float _Moved;\nuniform highp float _Time;
2\n\nuniform highp vec3 _CameraPosition;\nuniform vec3 _LightDirection;\n\nuniform sampler3D _Source;\nuniform sampler3D _SourceDetail;\n//uniform sampler2D _SourceCurl;\nuniform samplerCube _Diffuse;\n\nvec4 hash24ff(vec2 p) {\n    vec4 p4 = fract(vec4(p.xyx * vec3(0.1031, 0.1030, 0.0973), p.x * 0.1099));\n    p4 += dot(p4, p4.wzxy + 33.33);\n    return fract((p4.xxyz + p4.yzzw) * p4.zywx);\n}\n\nfloat lin(float a, float b, float t) {\n    return clamp((t-a) / (b-a), 0., 1.);\n}\n\nfloat map(vec3 p, float height, float dist) {\n    float d = textureLod(_Source, p * _LowFrequency, 0.0).x - _Bias;\n\n    //\tp.y -= _Time;\n    d -= textureLod(_SourceDetail, p * _HighFrequency, 0.0).x * _HighFrequencyScale;//(_HighFrequencyScale / (1. + 0.005 * dist));\n\n    float cloudsTop = textureLod(_Source, vec3(p.x * 0.51, 0.5, p.z * .71) * _LowFrequency, 0.0).x;\n    cloudsTop = mix(0.55, 1., cloudsTop * (1.-cloudsTop));\n    d -= max(0., height - cloudsTop);\n    //    d *= smoothstep(cloudsTop + .5, cloudsTop, height);\n    //\td *= smoothstep(0., .25, height);\n    d -= max(0., .25-height) * 4.;\n    return d;\n}\n\n//float iSphere( in vec3 ro, in vec3 rd, float sphereRadius ) {\n//\tfloat b = dot(ro, rd);\n//\tfloat c = dot(ro, ro) - sphereRadius * sphereRadius;\n//\tfloat h = b * b - c;\n//\tif (h < 0.0) return -1.0;\n//\treturn -b - sqrt(h);\n//}\n//\n//float earthRadius = 150000.0;\n\nvoid main() {\n    vec3 rd = normalize(vLocal);\n    vec3 ro = _CameraPosition + vec3(0., 0., -_Moved);\n\n    // get plane intersection\n    float startDist = ((-ro.y + _CloudsTop) / rd.y);\n    float endDist = ((-ro.y + _CloudsBottom) / rd.y);\n    //\n\n    if (rd.y >= 0. || startDist > 100000.) {\n        fragColor = vec4(0);\n        return;\n    }\n\n    //\tfloat startDist = iSphere(vec3(0., earthRadius, 0.), rd, earthRadius + _CloudsTop);\n    //\tfloat endDist = iSphere(vec3(0., earthRadius , 0.), rd, earthRadius + _CloudsBottom );\n    //\tendDist = endDist < 0. ? startDist + 100. : endDist;\n\n    vec4 rez = vec4(0);\n    vec4 h = hash24ff(gl_FragCoord.xy + fract(_Time));\n\n\n    //\trd = normalize(rd + (texture(_SourceCurl, gl_FragCoord.xy * 0.1 - vec2(0., _Time * 0.)).xyz - .5) * .1 / startDist);\n\n\n    const int stepCount = 128;\n    float ss = _StepSize * (endDist - startDist) / float(stepCount);\n    float t = startDist + h.x * ss;// * smoothstep(-25., 100., startDist);\n\n    vec3 bottomLight = texture(_Diffuse, vec3(0, -1, 0)).rgb;\n    vec3 lightColor = texture(_Diffuse, _LightDirection).rgb;\n\n    vec3 topLight = mix(texture(_Diffuse, vec3(rd.x, -rd.y+1.05, rd.z)).rgb, lightColor, .5);\n    float height = 1.;// map 0 to 1\n\n    for (int i = 0; i < stepCount; i++) {\n        vec3 p = ro + rd * t;\n        float d = map(p, height, t);\n\n        if (d > 0.) {\n            float density = smoothstep(0., 0.25, d);\n\n            vec4 col = vec4(mix(bottomLight, topLight, height), 1);\n\n            float diffuse = smoothstep(-.1, .1, (d - map(p + 4. * _LightDirection, height, t)));\n            col.rgb += lightColor * (diffuse * diffuse * height);\n\n            float powder = (1. - density);\n            powder *= powder;\n\n            col.rgb *= (1. + powder * height) * mix(1., height, .75);\n            //\t\t\tcol *= 1.-exp(-5. * ss * density); // * _Opacity;\n            col *= density;// * _Opacity;\n\n\n            rez += col * (1. - rez.a);\n        }\n\n        if (rez.a > .975) break;\n\n        float m = clamp(1. - exp(-0.001 * float(i)), 0., 1.);\n        m = clamp(mix(m, float(i) / float(stepCount), float(i) / float(stepCount)), 0., 1.);\n        ss = max(ss, mix(startDist, endDist, m) - t);\n        t = clamp(ss+t, startDist, endDist);\n        height = mix(1., 0., m);\n\n        //\t\tt += ss;\n        //\t\theight = max(0., height - 1./float(stepCount));\n    }\n\n    rez += vec4((bottomLight + lightColor) * .25, 1.) * (1. - rez.a);\n\n    // distance fogging\n    rez = mix(vec4(topLight, 1.), rez, exp(-0.005 * startDist));\n    // near fogging?\n    //\trez = mix( rez, vec4(topLight, 1.), exp(-0.01 * startDist));\n\n    rez.xyz *= _Brightness;\n    rez *= exp(-0.001 * startDist);\n\n    fragColor = rez;\n}\n"},4730:function(e){"use strict";e.exports="#version 300 es\n\nin vec3 aPos;\n\nuniform mat4 _ViewProjection;\nuniform vec3 _CameraPosition;\n\nout vec3 vLocal;\n\nvoid main(void) {\n    gl_Position = _ViewProjection * vec4(_CameraPosition + aPos, 1.0);\n    vLocal = aPos;\n}\n\n"},63506:function(e){"use strict";e.exports="//\n// The concrete box is only used by the infantry models, so it is lit by the same spotlight they\n// are (see InfantryLighting.ts): the pool of light and its shadow follow the light around.\n//\n\n#version 300 es\n\nprecision highp float;\n\n#include includes/toneMap.glsl\n\nlayout(location = 0) out vec4 fragColor;\n\nin vec3 vWorld;\nin vec3 vNormal;\nin vec2 vUV;\n\nuniform sampler2D _FloorMap;\nuniform sampler2D _WallMap;\nuniform float _Brightness;\nuniform float _Falloff;
2\nuniform float _CornerDarkness;\nuniform float _ConeSoftness;\nuniform mat4 _SpotViewProjection;\nuniform vec3 _SpotPosition;\nuniform vec2 _SpotDepthWindow;\nuniform float _SpotBrightness;\nuniform sampler2D _SpotShadowMap;\nuniform float _SpotVarianceMin;\nuniform float _SpotBleedThreshold;\n\n//https://http.download.nvidia.com/developer/presentations/2006/gdc/2006-GDC-Variance-Shadow-Maps.pdf\n//the receiver is remapped onto the same centred window spotDepth.fs.glsl stored the moments in.\n//The floor runs well past the far edge of that window, where this clamps onto the cleared value\n//and so reads as unoccluded - correct, since the model is the only thing in the map.\nfloat chebyshevUpperBound(vec2 uv, float distanceToLight)\n{\n    float t = clamp((distanceToLight - _SpotDepthWindow.x) * _SpotDepthWindow.y, 0., 1.) - .5;\n    //lod 0: the floor is large and shallow, so the automatic mip selection would blur the shadow away\n    vec2 moments = textureLod(_SpotShadowMap, uv, 0.).rg;\n    float lit = step(t, moments.x);\n    float variance = moments.y - moments.x * moments.x;\n    variance = max(variance, _SpotVarianceMin * _SpotVarianceMin);\n    float d = t - moments.x;\n    float p = variance /(variance + d * d);\n    //the smoothstep prevents some of the VSM artifacts on blurred depth textures\n    return smoothstep(_SpotBleedThreshold, 1., max(lit, p));\n}\n\nfloat light(float distanceToLight) {\n    vec4 screen = _SpotViewProjection * vec4(vWorld, 1.);\n    if (screen.w <= 0.) {\n        return 0.;\n    }\n    vec2 lightUV = screen.xy / screen.w;\n    float penumbra = smoothstep(1., 1. - _ConeSoftness, length(lightUV));\n    if (penumbra == 0.) {\n        return 0.;\n    }\n    lightUV = lightUV * .5 + .5;\n    float l = chebyshevUpperBound(lightUV, distanceToLight);\n    return l * penumbra;\n}\n\nvoid main(){\n    vec3 n = normalize(vNormal);\n\n    vec3 albedo = vec3(0);\n\n    vec3 lv = _SpotPosition - vWorld;\n    float distanceToLight = length(lv);\n    vec3 L = lv / distanceToLight;\n\n    //small scale\n    vec2 uva = abs(vUV - .5);\n    float brightness = 1. - max(uva.x, uva.y) * _CornerDarkness;\n\n    //ceiling\n    brightness *= smoothstep(4., 0., vWorld.y);\n\n    //large scale: the pool of light sits under the spotlight\n    brightness *= _Brightness / (1. + distanceToLight * distanceToLight * _Falloff);\n\n    //wrapped lambert, so surfaces facing the light catch more of it\n    brightness *= max(dot(n, L), 0.) * .7 + .3;\n\n    float shadow = light(distanceToLight);\n\n    if (n.y > .5) {\n        //floor\n        albedo = texture(_FloorMap, vUV * 2.).rgb;\n    } else if (n.y > -.5) {\n        //walls, u runs along the wall, v runs from the floor up\n        albedo = texture(_WallMap, vUV).rgb * .5;\n    }\n\n    brightness += shadow * _SpotBrightness;\n\n    //player blob shadow\n    brightness *= smoothstep(.3, 1., length(vWorld + vec3(0,0, .2))) * .7 + .3;\n\n    vec3 color = gammaToLinear(albedo) * brightness;\n\n    fragColor = vec4(color, 1.);\n}\n"},42658:function(e){"use strict";e.exports="#version 300 es\n\nin vec3 aPos;\nin vec3 aNormal;\nin vec2 aUV0;\n\nuniform mat4 _ViewProjection;\n\nout vec3 vWorld;\nout vec3 vNormal;\nout vec2 vUV;\n\nvoid main(void) {\n\tvec3 world = aPos * vec3(4., 2., 4.);\n\tworld.y += 2.;\n\n\tvWorld = world;\n\t//we are looking at the inside of the box\n\tvNormal = -aNormal;\n\n    vUV = aUV0;\n\n\tgl_Position = _ViewProjection * vec4(world, 1.);\n}\n"},55986:function(e){"use strict";e.exports="//\n// The moments of the directional VSM, stored as the world height of the caster: the light is\n// (roughly) above the scene, so the higher surface is the one closer to the light.\n//\n// The height is stored relative to the centre of a window that spans the scene - _ShadowDepthWindow\n// is (centre, half height), see DirectionalLight.setBounds - and clamped to it. The offset is what\n// makes RG16F usable: the reader recovers the variance as E[d2] - E[d]2, a subtraction of two\n// nearly equal numbers, and half float has only ~3 digits to spend on it. Taking the centre off\n// first is the whole gain; scaling the window to a fixed width would add nothing on top of it,\n// because relative precision does not care about scale (spotDepth.fs.glsl does scale, but its win\n// comes from the same subtraction) - so the moments stay in metres and _VarianceMin keeps its\n// world space meaning. The clamp keeps anything outside the window, where the map says nothing\n/
2/ useful anyway, from poisoning the moments the blur spreads around.\n//\n\n#version 300 es\n\nprecision highp float;\n\nout vec4 fragColor;\n\nin vec3 vWorld;\n\nuniform vec2 _ShadowDepthWindow;\n\nvoid main(void) {\n    float d = clamp(vWorld.y - _ShadowDepthWindow.x, -_ShadowDepthWindow.y, _ShadowDepthWindow.y);\n    fragColor = vec4(d, d * d, 0., 0.);\n}\n"},25858:function(e){"use strict";e.exports="#version 300 es\n\nlayout(location = 0) in vec3 aPos;\n\nout vec3 vWorld;\n\nuniform mat4 _ViewProjection;\nuniform mat4 _Model;\n\nvoid main(void) {\n    vec4 world = _Model * vec4(aPos, 1);\n    vWorld = world.xyz;\n    gl_Position = _ViewProjection * world;\n}\n"},30854:function(e){"use strict";e.exports="#version 300 es\nprecision highp float;\nout vec4 fragColor;\n\nin vec2 vUV;\n\n\n//https://www.shadertoy.com/view/ld3BzM\n\nmat2 rot2(in float a) {\n    float c = cos(a), s = sin(a);\n    return mat2(c, s, -s, c);\n}\n\nvec2 hash22(vec2 p) {\n    float n = sin(dot(p, vec2(113, 1)));\n    return fract(vec2(2097152, 262144) * n) * 2. - 1.;\n}\n\nfloat gradN2D(in vec2 f) {\n    const vec2 e = vec2(0, 1);\n    vec2 p = floor(f);\n    f -= p;\n    vec2 w = f * f * (3. - 2. * f);\n    float c = mix(mix(dot(hash22(p + e.xx), f - e.xx), dot(hash22(p + e.yx), f - e.yx), w.x),\n    mix(dot(hash22(p + e.xy), f - e.xy), dot(hash22(p + e.yy), f - e.yy), w.x), w.y);\n    return c * .5 + .5;\n}\n\nfloat n2D(vec2 p) {\n    vec2 i = floor(p);\n    p -= i;\n    p *= p * (3. - p * 2.);\n    return dot(mat2(fract(sin(mod(vec4(0, 1, 113, 114) + dot(i, vec2(1, 113)), 6.2831853)) * 43758.5453)) * vec2(1. - p.y, p.y), vec2(1. - p.x, p.x));\n}\n\nfloat grad(float x, float offs) {\n    x = abs(fract(x / 6.283 + offs - .25) - .5) * 2.;\n    float x2 = clamp(x * x * (-1. + 2. * x), 0., 1.);\n    x = smoothstep(0., 1., x);\n    return mix(x, x2, .15);\n}\n\nfloat sandL(vec2 p) {\n    vec2 q = rot2(3.14159 / 18.) * p;\n    q.y += (gradN2D(q * 18.) - .5) * .05;\n    float grad1 = grad(q.y * 80., 0.);\n\n    q = rot2(-3.14159 / 20.) * p;\n    q.y += (gradN2D(q * 12.) - .5) * .05;\n    float grad2 = grad(q.y * 80., .5);\n\n    q = rot2(3.14159 / 4.) * p;\n    float a2 = dot(sin(q * 12. - cos(q.yx * 12.)), vec2(.25)) + .5;\n    float a1 = 1. - a2;\n\n    return 1. - (1. - grad1 * a1) * (1. - grad2 * a2);\n}\n\nfloat gT = 1.0;\n\nfloat sand(vec2 p) {\n    p = vec2(p.y - p.x, p.x + p.y) * .7071 / 4.;\n    float c1 = sandL(p);\n    vec2 q = rot2(3.14159 / 12.) * p;\n    float c2 = sandL(q * 1.25);\n    c1 = mix(c1, c2, smoothstep(.1, .9, gradN2D(p * vec2(4))));\n    return c1 / (1. + gT * gT * .015);\n}\n\nfloat surfFunc(in vec3 p) {\n    p /= 2.5;\n    float layer1 = n2D(p.xz * .2) * 2. - .5;\n    layer1 = smoothstep(0., 1.05, layer1);\n    float layer2 = n2D(p.xz * .275);\n    layer2 = 1. - abs(layer2 - .5) * 2.;\n    layer2 = smoothstep(.2, 1., layer2 * layer2);\n    float layer3 = n2D(p.xz * .5 * 3.);\n    return layer1 * .7 + layer2 * .25 + layer3 * .05;\n}\n\nfloat bumpSurf3D(in vec3 p) {\n    float n = surfFunc(p);\n    vec3 px = p + vec3(.001, 0, 0);\n    float nx = surfFunc(px);\n    vec3 pz = p + vec3(0, 0, .001);\n    float nz = surfFunc(pz);\n    return sand(p.xz + vec2(n - nx, n - nz) / .001 * 1.);\n}\n\nvec3 doBumpMap(in vec3 p){\n\n    const vec2 e = vec2(0.001, 0);\n\n    float ref = bumpSurf3D(p);\n    /*\n    vec3 grad = (vec3(bumpSurf3D(p - e.xyy),\n                      bumpSurf3D(p - e.yxy),\n                      bumpSurf3D(p - e.yyx)) - ref)/e.x;\n\n    */\n    // Six tap version, for comparisson. No discernible visual difference, in a lot of cases.\n    vec3 grad = vec3(bumpSurf3D(p - e.xyy) - bumpSurf3D(p + e.xyy),\n    bumpSurf3D(p - e.yxy) - bumpSurf3D(p + e.yxy),\n    bumpSurf3D(p - e.yyx) - bumpSurf3D(p + e.yyx))/e.x*.5;\n\n\n    //grad -= nor*dot(nor, grad);\n\n    // Applying the gradient vector to the normal. Larger bump factors make things more bumpy.\n//    return normalize(vec3(0,1,0) + grad.xyz * .1);\n    return grad.xyz;\n}\n\n\nvec3 normal(vec2 uv){\n    vec3 p = vec3(uv.x, 0.0, uv.y);\n    return doBumpMap(p * 8.);\n}\n\nvoid main(void) {\n    vec3 n00 = normal(vUV);\n    vec3 n01 = normal(vUV + vec2(-1., 0.));\n    vec3 n10 = normal(vUV + vec2(0., -1.));\n    vec3 n11 = normal(vUV + vec2(-1., -1.));\n\n    vec3 y0 = mix(n00, n01, smoothstep(.8, 1., vUV.x));\n    vec3 y1 = mix(n10, n11, smoothstep(.8, 1., vUV.x));
2\n\n    vec3 n = mix(y0, y1, smoothstep(.8, 1., vUV.y));\n    fragColor = vec4(n, 1);\n}\n\n"},56790:function(e){"use strict";e.exports="#version 300 es\nin vec3 aPos;\nin vec2 aUV0;\n\nout vec2 vUV;\n\nvoid main(void) {\n    vUV = aUV0;\n    gl_Position = vec4(aPos, 1.0);\n}\n\n"},68742:function(e){"use strict";e.exports="#version 300 es\nprecision highp float;\nout vec4 fragColor;\n\nin vec2 vUV;\n\nvec4 hash42(vec2 p)\n{\n    vec4 p4 = fract(vec4(p.xyxy) * vec4(.1031, .1030, .0973, .1099));\n    p4 += dot(p4, p4.wzxy+33.33);\n    return fract((p4.xxyz+p4.yzzw)*p4.zywx);\n}\n\nvoid main(void) {\n    fragColor = hash42(gl_FragCoord.xy);\n}\n\n"},13046:function(e){"use strict";e.exports="#version 300 es\nin vec3 aPos;\nin vec2 aUV0;\n\nout vec2 vUV;\n\nvoid main(void) {\n    vUV = aUV0;\n    gl_Position = vec4(aPos, 1.0);\n}\n\n"},49078:function(e){"use strict";e.exports="#version 300 es\nprecision highp float;\nout vec4 fragColor;\n\nin vec2 vUV;\n\nuniform float _AspectRatio;\n\n#include includes/dunes.glsl\n\nvec4 normalHeight(vec2 uv){\n    uv = uv * 2. - 1.;\n    vec3 q = vec3(uv.x, 0.0, uv.y / _AspectRatio);\n    return duneNormalHeight(q);\n}\n\nvoid main(void) {\n    vec4 nh0 = normalHeight(vUV);\n    vec4 nh1 = normalHeight(vUV - vec2(0., 1.));\n    //make it tiling\n    fragColor = mix(nh0, nh1, smoothstep(.9, 1., vUV.y));\n}\n\n"},95942:function(e){"use strict";e.exports="#version 300 es\nin vec3 aPos;\nin vec2 aUV0;\n\nout vec2 vUV;\n\nvoid main(void) {\n    vUV = aUV0;\n    gl_Position = vec4(aPos, 1.0);\n}\n\n"},54526:function(e){"use strict";e.exports="#version 300 es\nprecision mediump float;\nout vec4 fragColor;\n\nin vec2 vUV;\n\nuniform sampler2D _Texture;\nuniform float _Opacity;\n\nvoid main(void) {\n    vec3 c = texture(_Texture, vUV).rgb;\n    fragColor = vec4(c * _Opacity, 1.);\n}\n\n"},76686:function(e){"use strict";e.exports="#version 300 es\nin vec3 aPos;\nin vec2 aUV0;\n\nout vec2 vUV;\n\nuniform float _AspectRatio;\nuniform float _TextureAspectRatio;\n\nvoid main(void) {\n    vUV = aUV0 - .5;\n\n    if(_AspectRatio < _TextureAspectRatio){\n        if(_AspectRatio < 1.){\n            vUV = vUV.yx;\n            vUV.x *= _TextureAspectRatio / _TextureAspectRatio;\n        }
2else{\n            vUV.x *= _AspectRatio / _TextureAspectRatio;\n        }\n    }else{\n        vUV.y *=  _TextureAspectRatio / _AspectRatio;\n    }\n\n    vUV += .5;\n    gl_Position = vec4(aPos, 1.0);\n}\n\n"},39512:function(e){"use strict";e.exports="#version 300 es\nprecision highp float;\n\n// The froth itself, drawn once into a tiling square and then laid down over and over wherever\n// the wake says there is churned water. This is the same trade the ripple chop makes: a tile\n// large enough to cover a wake forty units long would have to hold bubbles a fifth of a metre\n// across and would run to thousands of texels a side, while a tile of a few metres repeated\n// resolves the same detail in a quarter of a megapixel.\n//\n// Unlike the chop, nothing in here moves. Foam does drift, but it drifts with the water rather\n// than evolving in place at any speed worth baking sixty times a second, so the movement lives\n// in the ocean shader as a scroll of these coordinates and the pattern itself is baked once and\n// left alone. It is redrawn only when one of the three sliders below moves.\n//\n// What comes out is not a picture of foam, it is a threshold field: the ocean shader compares it\n// against how much foam the wake says belongs at a pixel, so the bright parts of the tile are\n// where froth appears first and the dark parts are the holes that open up as the wake thins out.\n// That is why the histogram matters more than the look of the tile on its own, and why the patch\n// term below is worth as much as the bubbles are.\n//\n// Everything here is periodic on FOAM_CELLS. That is not a property a noise field has by\n// accident: every hash wraps its lattice coordinate first, every octave sits in an integer\n// frame, and nothing is ever scaled by a non integer. Constant offsets are free, since the wrap\n// is on the cell index rather than on the position.\n\n// cells of the coarsest octave across the tile, and so the period every hash is wrapped to. it\n// sets the size of the biggest clumps: at the default tile this is a bubble raft about a metre\n// across, with the finer octaves running down from there\n#define FOAM_CELLS 10.\n// three, because the fourth would land at fifty cells across the tile and the bake would be\n// aliasing the thing it exists to resolve\n#define FOAM_OCTAVES 3\n// texels across the tile, mirrored from FoamTexture.ts. the slope is differenced across one of\n// them, so the two have to agree\n#define FOAM_SIZE 512.\n// the slope is stored in eight bits either side of a half, so it has to be brought into range\n// first. a cell of density spread over fifty texels puts the typical difference at a couple of\n// percent, and this lands that in the middle of what the byte can hold\n#define FOAM_SLOPE 8.\n\nin vec2 vUV;\n\n// how hard the large scale patchiness bites. at 0 the tile is an even fizz over its whole area\nuniform float _FoamPatch;\n// bends the cells out of round. foam is stringy and torn rather than a raft of circles, and\n// this is the whole of the difference\nuniform float _FoamWarp;\n// gamma on the result. above 1 the froth pulls back into tighter, brighter clumps\nuniform float _FoamContrast;\n\nout vec4 fragColor;\n\n// the frame octave i is sampled in, applied i times: a rotation of about 27 degrees with a scale\n// of sqrt(5). the integer entries are what keeps the tiling, exactly as in rippleDetailBake:\n// an integer matrix maps the lattice onto itself, so a field periodic on the square before the\n// transform is still periodic on it afterwards. an arbitrary rotation would seam\nconst mat2 OCTAVE = mat2(2., -1., 1., 2.);\n\n// https://www.shadertoy.com/view/4djSRW, wrapped to the tile before hashing\nvec2 cellHash(vec2 c) {\n\tc = mod(c, FOAM_CELLS);\n\n\tvec3 p3 = fract(c.xyx * vec3(.1031, .1030, .0973));\n\tp3 += dot(p3, p3.yzx + 33.33);\n\treturn fract((p3.xx + p3.yz) * p3.zy);\n}\n\nfloat valueHash(vec2 c) {\n\tc = mod(c, FOAM_CELLS);\n\n\tvec3 p3 = fract(c.xyx * .1031);\n\tp3 += dot(p3, p3.yzx + 33.33);\n\treturn fract((p3.x + p3.y) * p3.z);\n}\n\n// distance to the nearest bubble centre, one jittered point per cell. 1 - this is a blob that\n// peaks in the middle of a cell and falls away to a seam where tw
2o of them meet, which is what\n// a raft of bubbles looks like from above\nfloat worley(vec2 p) {\n\tvec2 i = floor(p);\n\tvec2 f = p - i;\n\n\tfloat d = 8.;\n\tfor (int y = -1; y <= 1; y++) {\n\t\tfor (int x = -1; x <= 1; x++) {\n\t\t\tvec2 o = vec2(float(x), float(y));\n\t\t\tvec2 r = o + cellHash(i + o) - f;\n\t\t\td = min(d, dot(r, r));\n\t\t}\n\t}\n\treturn sqrt(d);\n}\n\nfloat valueNoise(vec2 p) {\n\tvec2 i = floor(p);\n\tvec2 f = p - i;\n\tvec2 u = f * f * (3. - 2. * f);\n\n\treturn mix(\n\t\tmix(valueHash(i), valueHash(i + vec2(1., 0.)), u.x),\n\t\tmix(valueHash(i + vec2(0., 1.)), valueHash(i + vec2(1., 1.)), u.x),\n\t\tu.y\n\t);\n}\n\nfloat density(vec2 p) {\n\t// the warp comes first so every octave is torn by the same field: warping each of them\n\t// separately would smear the stack back out into a fizz\n\tvec2 warp = vec2(valueNoise(p + 11.), valueNoise(p + 27.)) - .5;\n\tp += warp * _FoamWarp;\n\n\tfloat bubbles = 0.;\n\tfloat norm = 0.;\n\tfloat amp = 1.;\n\tmat2 frame = mat2(1., 0., 0., 1.);\n\n\tfor (int i = 0; i < FOAM_OCTAVES; i++) {\n\t\t// a cell whose neighbours all jittered away from it can push F1 past one, and the\n\t\t// pow at the bottom has no answer for a negative. it is a hole in the raft either way\n\t\tbubbles += max(1. - worley(frame * p), 0.) * amp;\n\t\tnorm += amp;\n\n\t\tframe = OCTAVE * frame;\n\t\tamp *= .55;\n\t}\n\tbubbles /= norm;\n\n\t// where there is froth at all, as opposed to how it is broken up. this is what carves the\n\t// lanes and holes through a wake; without it the whole thing comes out as an even smear\n\t// that no amount of bubble detail rescues.\n\t// not called patch: that is a reserved word in ES 3.00, held back for tessellation\n\tfloat raft = valueNoise(p) * .65 + valueNoise(OCTAVE * p) * .35;\n\n\treturn clamp(pow(bubbles * mix(1., smoothstep(.15, .8, raft), _FoamPatch), _FoamContrast), 0., 1.);\n}\n\nvoid main(void) {\n\tvec2 p = vUV * FOAM_CELLS;\n\tfloat texel = FOAM_CELLS / FOAM_SIZE;\n\n\tfloat d = density(p);\n\t// the relief, forward differenced across one texel. it is stored rather than recovered\n\t// later for the usual two reasons: the bake pays for the two extra evaluations once where\n\t// the water would pay for two extra taps every pixel forever, and a difference taken out\n\t// of the mip chain would have lost the fine bubbles at the first level down\n\tvec2 slope = vec2(density(p + vec2(texel, 0.)), density(p + vec2(0., texel))) - d;\n\n\tfragColor = vec4(d, clamp(slope * FOAM_SLOPE, -1., 1.) * .5 + .5, 1.);\n}\n"},4776:function(e){"use strict";e.exports="#version 300 es\nin vec3 aPos;\nin vec2 aUV0;\n\nout vec2 vUV;\n\nvoid main(void) {\n\tvUV = aUV0;\n\tgl_Position = vec4(aPos, 1.0);\n}\n"},62556:function(e){"use strict";e.exports="#version 300 es\nprecision highp float;\n\n// Where the froth belongs, drawn once into wake space rather than solved for every pixel of water\n// on screen every frame.\n//\n// This is the third time the same observation pays off in this scene. The hull stands still and\n// the water streams past it, so anything that is a function of position in the hull's frame is a\n// picture that only changes when a slider moves, and the ocean shader was recomputing one every\n// frame: two exponentials, two smoothsteps and a fetch of the wake, on every water pixel, for an\n// answer that is the same as it was last frame and the frame before.\n//\n// It is not baked into the spare channel of the kelvin map, which is the obvious place for it and\n// is where it does not belong. That texture is the expensive one: five hundred pulse steps per\n// texel, and it is deliberately arranged so that only the five sliders that feed the sum can dirty\n// it. Putting the froth in there would hand ten more sliders the power to re-run the pulse sum,\n// and would force the reach of the foam into a rectangle fitted to the reach of the waves. This\n// pass costs a few hundred thousand texels of arithmetic, fits its own rectangle, and reads the\n// kelvin map as an input like everything else does.\n//\n// What comes out is coverage alone, in a single byte. _FoamAmount is a plain multiply on it, so it\n// stays on the far side of the bake where it can be dragged without redrawing anything.\n\nin vec2 vUV;\n\n// the wake space rectangle this texture covers: (min astern, min offset, 1 / width, 1 / height).\n// FoamTexture.ts fits it to the union of what the shapes below reach and what the kelvin map\n// covers, which is the whole of the support: outside it there is nothing to draw\nuniform vec4 _FoamBounds;\n\n// the wake, as an input. its rectangle is its own and does not have to line up with ours\nuniform sampler2D _KelvinMap;\nuniform vec4 _KelvinBounds;\n\n// the hull the froth hangs off: (half beam, length astern of the stem, entrance). the entrance is\n// how far aft of the stem the hull reaches full beam, the same number the ocean's blocker cuts its\n// bow to a wedge with\nuniform vec3 _WakeHull;\n\nuniform float _FoamArmStrength;\nuniform float _FoamArmSpread;\nuniform float _FoamArmWidth;\nuniform float _FoamArmLength;\nuniform float _FoamWashStrength;\nuniform float _FoamWashWidth;\nuniform float _FoamWashSpread;\nuniform float _FoamWashLength;\nuniform float _FoamWakeStrength;\nuniform float _FoamBreak;\n\nout vec4 fragColor;\n\n// how much froth belongs here. track is wake space: (distance astern of the stem, signed offset\n// from the centreline), which is fixed to the world axes because the hull stands still and the\n// water streams past it.\n//\n// Three sources, none of which knows about the others. Two of them are shapes, and they are shapes\n// on purpose: what a hull throws off its stem and drags along behind it is a boundary layer\n// problem that nothing in this scene is solving, so it is drawn rather than derived. The third is\n// not drawn at all.\nfloat foamCoverage(vec2 track) {\n\tfloat astern = max(track.x, 0.);\n\n\t// the entrance. everything a ship makes leaves the stem at a point and opens out behind it,\n\t// so every width below is scaled by this rather than starting at its full value on a line\n\t// drawn across the bow, which is what makes a rectangle of the whole thing\n\tfloat entry = clamp(astern / max(abs(_WakeHull.z), .5), 0., 1.);\n\n\t// and the nose. what the ship makes still has to stop somewhere ahead of the stem, but a cut\n\t// is a straight edge stamped across open water; this dies off over the width of a band of\n\t// foam instead, which rounds the front off\n\tfloat fore = min(track.x, 0.) / _FoamArmWidth;\n\tfloat nose = exp(-fore * fore);\n\n\t// the arms: thrown off the stem, running aft and spreading as they go. the ridge leaves the\n\t// stem on the centreline, opens out to the beam across the entrance and keeps spreading from\n\t// there, and the band riding on it widens with it, so the pair starts as one tight streak at\n\t// the stem rather than as two parallel lines that appear from nowhere alongside it\n\tfloat band = _FoamArmWidth * (.35 + .65 * entry);\n\tfloat arm = _WakeHull.x * entry + astern * _FoamArmSpread;\n\tfloat d = (abs(track.y) - arm) / band;\n\tfloat arms = exp(-d * d - astern / _FoamArmLength) * _FoamArmStrength;\n\n\t// the wash: everything scraped off the hull and thrown up by the screws, as one band down the\n\t// centreline. it opens out of the stem with the entrance, holds the beam alongside the ship,\n\t// then widens slowly and dies away astern of it. the edge is feathered by a fixed width rather\n\t// than by a fraction of its own, which it has none of up at the point\n\tfloat width = _WakeHull.x * _FoamWashWidth * entry + max(track.x - _WakeHull.y, 0.) * _FoamWashSpread;\n\tfloat wash = smoothstep(width + _FoamArmWidth, width, abs(track.y))\n\t\t* exp(-max(track.x - _WakeHull.y, 0.) / _FoamWashLength)\n\t\t* _FoamWashStrength;\n\n\t// and the wake's own, which is not placed by hand anywhere. nothing here says where the\n\t// transverse train or the arms of the V are: the baked pattern is asked how steep it is and\n\t// whatever is steeper than _FoamBreak is taken to have broken, which is the criterion real\n\t// water uses. so the froth lands on the crests of the pattern the mesh is already carrying,\n\t// and it follows that pattern wherever a slider drags it.\n\t//\n\t// _KelvinHeight does not come into 
2it. It used to, and it was never more than convenience:\n\t// the sum in the map is unnormalised, so there is no amplitude in it for a height slider to\n\t// be a multiple of, and _FoamBreak has to be found by eye either way. Leaving it out is what\n\t// keeps the height slider free of this bake\n\tvec2 uv = (track - _KelvinBounds.xy) * _KelvinBounds.zw;\n\tfloat breaking = 0.;\n\tif (all(greaterThanEqual(uv, vec2(0.))) && all(lessThanEqual(uv, vec2(1.)))) {\n\t\t// (height, d/d astern, d/d offset), all three out of the one fetch\n\t\tvec3 wake = textureLod(_KelvinMap, uv, 0.).xyz;\n\t\t// froth ends up on the crest rather than in the trough it came out of\n\t\tfloat crest = smoothstep(-_FoamBreak, _FoamBreak, wake.x);\n\t\tbreaking = smoothstep(_FoamBreak, _FoamBreak * 3., length(wake.yz)) * (.4 + .6 * crest);\n\t}\n\n\t// the kelvin pattern reaches a good way ahead of the stem, since a pulse dropped at s = 0\n\t// spreads forwards as readily as aft, so the nose goes on all three rather than only on the\n\t// two shapes that are drawn\n\treturn max(max(arms, wash), breaking * _FoamWakeStrength) * nose;\n}\n\nvoid main(void) {\n\t// straight back out of the uv to the track coordinate the shapes are written in\n\tvec2 track = vUV / _FoamBounds.zw + _FoamBounds.xy;\n\t//pull back to have less foam in front of the nose\n\ttrack.x -= .7;\n\tfragColor = vec4(clamp(foamCoverage(track), 0., 1.), 0., 0., 1.);\n}\n"},19532:function(e){"use strict";e.exports="#version 300 es\nin vec3 aPos;\nin vec2 aUV0;\n\nout vec2 vUV;\n\nvoid main(void) {\n\tvUV = aUV0;\n\tgl_Position = vec4(aPos, 1.0);\n}\n"},7484:function(e){"use strict";e.exports="#version 300 es\nprecision highp float;\nout vec4 fragColor;\n\nin vec2 vUV;\n\nuniform float _AspectRatio;\n\n#include includes/simplex.glsl\n\nvec3 hash33(vec3 p3)\n{\n    p3 = fract(p3 * vec3(.1031, .1030, .0973));\n    p3 += dot(p3, p3.yxz+33.33);\n    return fract((p3.xxy + p3.yxx)*p3.zyx);\n}\n\nfloat heightField(vec3 p) {\n    float h = (snoise(p).w + 0.2) * .02;\n    float center = smoothstep(1., .5, abs(p.x));\n    float amp = mix(1., .2, center);\n    return h * amp;\n}\n\nvec3 heightFieldNormal(vec3 p) {\n    vec3 n = vec3(0.);\n    float e = 0.1;// epsilon for numerical gradient\n    // Calculate the gradient using central differences\n    n.x = (heightField(vec3(p.x + e, p.y, p.z)) - heightField(vec3(p.x - e, p.y, p.z))) / (2. * e);\n    n.y = .5;\n    n.z = (heightField(vec3(p.x, p.y, p.z + e)) - heightField(vec3(p.x, p.y, p.z - e))) / (2. * e);\n    return normalize(n);\n}\n\nvec4 normalHeight(vec2 uv){\n    uv = uv * 2. - 1.;\n    uv *= 5.;\n    vec3 q = vec3(uv.x, 0.0, uv.y / _AspectRatio);\n    return vec4(heightFieldNormal(q), heightField(q));\n}\n\nvoid main(void) {\n    vec4 nh0 = normalHeight(vUV);\n    vec4 nh1 = normalHeight(vUV - vec2(0., 1.));\n    //make it tiling\n    fragColor = mix(nh0, nh1, smoothstep(.9, 1., vUV.y));\n}\n\n"},80812:function(e){"use strict";e.exports="#version 300 es\nin vec3 aPos;\nin vec2 aUV0;\n\nout vec2 vUV;\n\nvoid main(void) {\n    vUV = aUV0;\n    gl_Position = vec4(aPos, 1.0);\n}\n\n"},51594:function(e){"use strict";e.exports="precision highp float;\n\n#include includes/toneMap.glsl\n#include includes/light.glsl\n\n#version 300 es\nlayout(location = 0) out vec4 fragColor;\n#define texCube(s, uv) texture(s, uv)\n\nin vec2 vUV;\nin vec3 vWorld;\nin vec3 vNormal;\nin mat3 vTBN;\n\nuniform vec3 _Albedo;\nuniform float _Roughness;\n\nuniform float _MaxLod;\nuniform sampler2D _brdfLUT;\nuniform samplerCube _IrradianceMap;\nuniform samplerCube _PrefilterMap;\n\nuniform vec3 _CamPos;\nuniform float _Exposure;\nuniform mat4 _LightViewProjection;\nuniform vec3 _LightDirection;\nuniform sampler2D _ShadowMap;\nuniform vec2 _ShadowDepthWindow;\nuniform float _VarianceMin;\nuniform float _VSMBleedThreshold;\nuniform float _SunStrength;\n\nuniform float _TrackSpacing;\nuniform float _TrackWidth;\nuniform float _TrackStart;\nuniform float _TrackEnd;\nuniform highp float _Scale;\nuniform float _DrawDepth;\nuniform vec4 _FogColor;\n\nuniform sampler2D _AlbedoMap;\nuniform sampler2D _AlbedoMap2;\nuniform sampler2D _NormalMap;\nuniform sampler2D _NormalMap2;\nuniform sampler2D _Noise;\n\n// Standard Fresnel for kD/kS split\nvec3 fresnelSchlick(float cosTheta, vec3 F0) {\n    return F0 + (1.0 - F0) * pow(clamp(1.0 - cosTheta, 0.0, 1.0), 5.0);\n}
2\n\nvec3 modifiedFresnel(float cosTheta, vec3 F0, float roughness) {\n    return F0 + (max(vec3(1.0 - roughness), F0) - F0) * pow(clamp(1.0 - cosTheta, 0.0, 1.0), 5.0);\n}\n\nvec3 getSpecularLightColor(vec3 N, float lod) {\n    return textureLod(_PrefilterMap, N, lod).rgb;\n}\n\nvec3 getDiffuseLightColor(vec3 N) {\n    return textureLod(_IrradianceMap, N, 0.).rgb;\n}\n\n//https://http.download.nvidia.com/developer/presentations/2006/gdc/2006-GDC-Variance-Shadow-Maps.pdf\nfloat chebyshevUpperBound(vec2 uv, float distance)\n{\n    vec2 moments = texture(_ShadowMap, uv).rg;\n    float lit = step(moments.x, distance);\n    float variance = moments.y - moments.x * moments.x;\n    variance = max(variance, _VarianceMin * _VarianceMin);\n    float d = moments.x - distance;\n    float p = variance /(variance + d * d);\n    //the smoothstep prevents some of the VSM artifacts on blurred depth textures\n    return smoothstep(_VSMBleedThreshold, 1., max(lit, p));\n}\n\nfloat light(vec3 n, vec3 lightDir) {\n    vec4 screen = _LightViewProjection * vec4(vWorld, 1.);\n    vec2 lightUV = screen.xy / screen.w;\n    float penumbra = smoothstep(1., .8, length(lightUV));\n    if (penumbra == 0.) {\n        return 1.;\n    }\n    lightUV = lightUV * .5 + .5;\n    float l = chebyshevUpperBound(lightUV, shadowDepth(vWorld.y, _ShadowDepthWindow));\n    l = mix(1., l, penumbra);\n    return l;\n}\n\nfloat sum(vec3 v) { return v.x+v.y+v.z; }\n\nvec4 textureNoTile(sampler2D samp, in vec2 uv) {\n    // sample variation pattern\n    float k = texture(_Noise, 0.005*uv).x;// cheap (cache friendly) lookup\n\n    // compute index\n    float index = k*8.0;\n    float i = floor(index);\n    float f = fract(index);\n\n    // offsets for the different virtual patterns\n    vec2 offa = sin(vec2(3.0, 7.0)*(i+0.0));// can replace with any other hash\n    vec2 offb = sin(vec2(3.0, 7.0)*(i+1.0));// can replace with any other hash\n\n    // compute derivatives for mip-mapping\n    vec2 dx = dFdx(uv), dy = dFdy(uv);\n\n    // sample the two closest virtual patterns\n    vec4 cola = textureGrad(samp, uv + offa, dx, dy);\n    vec4 colb = textureGrad(samp, uv + offb, dx, dy);\n\n    // interpolate between the two virtual patterns\n    return mix(cola, colb, smoothstep(0.2, 0.8, f-0.1*sum(cola.rgb-colb.rgb)));// * mix(vec4(1), vec4(mod(i, 2.), mod(i, 4.) / 3. , mod(i, 8.) / 7.,  1.), index/32.);\n}\n\nvec4 textureWrapper(sampler2D tex, vec2 uv) {\n//    return textureNoTile(tex, uv);\n    return texture(tex, uv);\n}\n\nvoid main(){\n    if (_DrawDepth > .5){\n        float d = shadowDepth(vWorld.y, _ShadowDepthWindow);\n        fragColor = vec4(d, d * d, 0., 1.);\n        return;\n    }\n\n    vec3 albedoLookup = gammaToLinear(textureWrapper(_AlbedoMap, vUV).rgb);\n    vec3 albedoLookup2 = gammaToLinear(textureWrapper(_AlbedoMap2, vUV).rgb);\n    float f = texture(_Noise, 0.015*vUV).x * smoothstep(1., 5., abs(vWorld.x));\n    f += vWorld.y * 4.;\n\n//    vec3 albedo = mix(albedoLookup.rgb, albedoLookup2.rgb, .5 * smoothstep(0.4, 0.6, f-0.1*sum(albedoLookup-albedoLookup2)));\n    vec3 albedo = mix(albedoLookup.rgb, albedoLookup2.rgb, smoothstep(0.6, 1.5, f));\n\n    //mud under water\n    float muddyness = smoothstep(0., -0.1, vWorld.y);\n    albedo = mix(albedo, vec3(.07, .05, .02),muddyness);\n\n    float roughness = (1.-albedo.r);\n//    float roughness = 1.;\n    float metallic = 0.;\n\n    vec3 tl0 = textureWrapper(_NormalMap, vUV).xyz;\n    vec3 tl1 = textureWrapper(_NormalMap2, vUV).xyz;\n    vec3 tl = mix(tl0, tl1, smoothstep(2., 3., abs(vWorld.x)));\n    vec3 nm = tl * 2. - 1.;\n    vec3 N = normalize(vTBN * nm);\n    N = mix(N, vTBN[2], muddyness);\n\n    vec3 V      = normalize(_CamPos - vWorld);// vector to eye in world space\n    vec3 R      = reflect(-V, N);\n    float NdotV = max(0.0, dot(N, V));\n\n    vec3 F0 = mix(vec3(0.04), albedo, metallic);\n\n    vec3 F = fresnelSchlick(NdotV, F0);\n    vec3 F_roughness = modifiedFresnel(NdotV, F0, roughness);\n\n    vec3 prefilteredColor = getSpecularLightColor(R, roughness * _MaxLod).rgb;\n\n    vec2 envBRDF = texture(_brdfLUT, vec2(NdotV, roughness)).rg;\n\n    vec3 specular = prefilteredColor * (F_roughness * envBRDF.x + envBRDF.y);\n\n    vec3 kD = vec3(1.0) - F;\n\n    kD *= 1.0 - metallic;\n\n    vec3 irradiance = getDiffuseLightColor(N).rgb;\n    vec3 diffuse = kD * albedo * irradiance;\n\n    vec3 color = diffuse + specular;\n\n    float l = light(N, _LightDirection);\n    vec3 sunLight = directionalLight(N, V, F0, albedo, metallic, roughness, _LightDirection, _SunStrength, vec3(1., .75, .5));\n    color += l * sunLight;\n\n    float track = smoothstep(_TrackWidth * 1.3, _TrackWidth * .8, abs(abs(vWorld.x) -_TrackS
2pacing)) * (sin(vUV.y * 400.) * .5 + .5) * smoothstep(24., 12., vWorld.z);\n\n    color *= mix(1., .6, track * step(0., vWorld.z));\n\n    float ao = smoothstep(abs(_TrackStart) * 1.5, abs(_TrackStart), abs(vWorld.z));\n    ao *= smoothstep(_TrackSpacing * 1.5, _TrackSpacing, abs(vWorld.x));\n    color *= 1. - ao * .5;\n\n    float a = smoothstep(1., .5, length(vWorld.xz) / _Scale);\n    color = mix(_FogColor.rgb, color, a);\n\n    fragColor = vec4(color, 1.);\n}\n\n\n"},24186:function(e){"use strict";e.exports="#version 300 es\n\nin vec3 aPos;\nin vec3 aNormal;\nin vec2 aUV0;\nin vec4 aTangent;\n\nuniform sampler2D _NormalHeightMap;\nuniform mat4 _ViewProjection;\nuniform float _Moved;\nuniform float _Tiling;\nuniform float _Scale;\nuniform float _AspectRatio;\n\nout vec3 vWorld;\nout vec3 vNormal;\nout vec2 vUV;\nout mat3 vTBN;\n\nvoid main(void) {\n    #define TERRAIN_SEGMENTS 127.\n    vec4 world = vec4(aPos * _Scale, 1.0);\n    float distPerSegment = _Scale * 2. / TERRAIN_SEGMENTS;\n    float movedJump = mod(_Moved, distPerSegment);\n    vec3 wp = vec3(world.x, 0., world.z - _Moved + movedJump);\n    world.z += movedJump;\n    vUV = aUV0;\n    vUV.y -= (_Moved - movedJump) / _Scale / 2.;\n\n    vec2 uv = vUV;\n    uv.y *= _AspectRatio;\n    vec4 normalHeight = texture(_NormalHeightMap, uv);\n    //\tvec4 dunes = duneNormalHeight(q);\n\n    world.y = normalHeight.w * _Scale / 2.;\n    vNormal = normalHeight.xyz;\n    vWorld = world.xyz;\n    vUV *= 20.;\n\n    vec3 tangent = normalize(aTangent.xyz);\n    vec3 bitangent = normalize(cross(vNormal, tangent) * aTangent.w);\n    vTBN = mat3(tangent, bitangent, vNormal);\n\n    gl_Position = _ViewProjection * world;\n}\n"},5690:function(e){"use strict";e.exports="#version 300 es\nprecision mediump float;\n\nuniform float _Hover;\nuniform vec3 _Color;\n\nout vec4 fragColor;\n\nin vec2 vUV;\n\nvoid main(void) {\n    float l = length(vUV - .5);\n    float dl = fwidth(l);\n    float r = 0.05;\n    float a = clamp(smoothstep(r + dl, r - dl, abs(l - .4)) + _Hover * step(l, .4), 0., 1.);\n\n    fragColor = vec4(_Color, 1.) * a;\n}\n"},13706:function(e){"use strict";e.exports="#version 300 es\n\nin vec2 aUV0;\n\nuniform mat4 _ViewProjection;\nuniform float _AspectRatio;\nuniform vec3 _Position;\nuniform float _Click;\n\nout vec2 vUV;\n\nvoid main(void) {\n    gl_Position = _ViewProjection * vec4(_Position, 1.0
2);\n\n    float size = .05;\n    size += _Click * .02;\n    size *= gl_Position.w;\n    gl_Position.xy += (aUV0.xy - .5) * vec2(1. / _AspectRatio, 1.) * size;\n\n    vUV = aUV0;\n}\n\n"},66255:function(e){"use strict";e.exports="const float PI = 3.14159265359;\n\nmat2 rot2(float a) {\n    float c = cos(a);\n    float s = sin(a);\n    return mat2(c, s, -s, c);\n}\n\nvec2 hash22f(vec2 p) {\n    vec3 p3 = fract(vec3(p.x, p.y, p.x) * vec3(0.1031, 0.1030, 0.0973));\n    p3 += dot(p3, p3.yzx + 19.19);\n    return fract((p3.xx + p3.yz) * p3.zy) * 2.0 - 1.0;\n}\n\nfloat gradN2D(vec2 x) {\n    vec2 e = vec2(0.0, 1.0);\n    vec2 p = floor(x);\n    vec2 f = x - p;\n    vec2 w = f * f * (3.0 - 2.0 * f);// cubic smoothing\n    float c = mix(\n    mix(dot(hash22f(p + e.xx), f - e.xx), dot(hash22f(p + e.yx), f - e.yx), w.x),\n    mix(dot(hash22f(p + e.xy), f - e.xy), dot(hash22f(p + e.yy), f - e.yy), w.x),\n    w.y\n    );\n    return c * 0.5 + 0.5;// range [0,1]\n}\n\nfloat duneHeight(vec3 p) {\n    float g  = gradN2D(p.zx * 0.001) - 0.5;\n    float g2 = gradN2D(p.xz * 0.0021 + 5.0) - 0.5;\n    float y  = abs(sin(p.x * PI / 150.0 + cos(p.z * 0.021)));\n    float h  = mix(1.0 - y * y, 1.0 - y, pow(y, 0.25)) * smoothstep(-1.1, 1.5, cos(p.z * 0.0123 + g2 * 20.0));\n    \th *= 7.5;\n    \th += g * 100.0;\n\n//    h *= 5.0;\n//    h += g * 10.0;\n\n    //flat path to drive on\n    h *= smoothstep(40., 120., abs(p.x));\n    return h;\n}\n\nfloat duneCurve(vec3 p) {\n    return abs(sin(p.x * PI / 150.0 + cos(p.z * 0.021)));\n}\n\n#define duneFrequency 1000.\n\nvec3 duneNormal(vec3 p) {\n    // small epsilon for finite difference\n    float d = 0.01;\n    float dx = duneHeight(p - vec3(d, 0.0, 0.0)) - duneHeight(p + vec3(d, 0.0, 0.0));\n    float dy = d;\n    float dz = duneHeight(p - vec3(0.0, 0.0, d)) - duneHeight(p + vec3(0.0, 0.0, d));\n    return normalize(vec3(dx, dy, dz));\n}\n\nvec4 duneNormalHeight(vec3 p) {\n    p *= duneFrequency;\n    vec3 n = duneNormal(p);\n    float h = duneHeight(p);\n    return vec4(n, h);\n}\n"},16685:function(e){"use strict";e.exports="// The generated skybox fills its lower hemisphere with a flat dark grey. That is what the\n// ibl wants, but it leaves a visible grey band between a ground plane and the horizon.\n//\n// Instead of touching the skybox, the sky and the water both dissolve into this: the\n// atmosphere colour sampled just above the horizon at the same azimuth. Because both use\n// the same function with the same parameters they always agree, so the join is invisible\n// and the band reads as haze rather than as a step in the sky.\nvec3 horizonHazeColor(samplerCube skybox, vec3 dir, float falloff, vec3 tint) {\n\tvec2 azimuth = dir.xz;\n\tfloat l = length(azimuth);\n\t// normalising with y scaled by l keeps the sample at a constant angle above the\n\t// horizon; straight up or down has no azimuth to follow so fall back to the zenith\n\tvec3 horizonDir = l > 1e-3 ? normalize(vec3(azimuth.x, falloff * l, azimuth.y)) : vec3(0., 1., 0.);\n\treturn texture(skybox, horizonDir).rgb * tint;\n}\n\n// 1 at and below the horizon, falling off to 0 at `falloff` above it\nfloat horizonHazeAmount(vec3 dir, float falloff) {\n\treturn smoothstep(falloff, 0., dir.y);\n}\n"},53417:function(e){"use strict";e.exports="// The wake as the interference pattern of everything the hull has already emitted, rather\n// than as a shape drawn to resemble one. The hull is a point source dragged along a straight\n// line: at every position it has passed through it dropped a circular pulse into the water,\n// and the height here is the sum of all of those pulses as they stand at this instant.\n// Adapted from a shadertoy that evaluates the same integral per pixel in screen space; the\n// snaking track it followed is gone, this hull only ever goes straight ahead.\n//\n// Nothing in here knows what a wake is supposed to look like. The V falls out on its own:\n// the pulses cancel everywhere except where neighbouring ones happen to arrive in phase, and\n// in deep water that locus is the 19.47 degree wedge, at any speed. So is the transverse\n// train inside it, and so is the way both stretch when the ship speeds up.\n//\n// The physics is one line, w = sqrt(g k), from which the energy of a wave travels at half the\n// speed of its own crests. Each pulse is sampled at the component whose wavelength is twice\n// the distance it has spread: that is the one whose energy has just reached the ring while\n// its phase has run on twice as far. It fixes k = pi / l, and with it the phase standing at\n// the ring, k l - w t = pi - sqrt(g k) t.\n//\n// Self contained on purpose: the track coordinates and the speed come in as arguments rather\n// than off uniforms, so nothing here depends on what else landed in the file.\n//\n// Nothing in here is a function of time: the pattern stands still in the hull's own frame, so\n// it is baked once into a texture rather than summed per vertex. That is kelvinBake, driven\n// by KelvinWakeTexture.ts, and the ocean vertex shader only samples the result. Amplitude is\n// deliberately not applied here so the height slider stays free of the bake.\n\n#define KELVIN_PI 3.141592653589793\n// same one unit is roughly ten metres scale the swell uses\n#define KELVIN_GRAVITY 0.981\n// how many emission points get summed. this is the whole cost of the wake and the only real\n// quality dial: too few and the phase is stepped through too coarsely, which shows up as a\n// rattle along the centreline far astern, where the rings crowd together most. the bake pass\n// overrides it upwards, which it can afford now that this runs once per slider drag rather\n// than once per vertex per frame\n#ifndef KELVIN_STEPS\n#define KELVIN_STEPS 128\n#endif\n// how far into the tail of the emission spectrum is still worth summing, in sigma. the\n// gaussian is down to 3e-4 b
2y here, which is four orders below the peak of the sum.\n// KelvinWakeTexture.ts mirrors this to size the texture, so the two have to agree\n#define KELVIN_REACH 4.\n\n// stands the emission peak off the wavelength that keeps station with the hull, so the wake\n// can be given a longer or a shorter hull than its speed implies\nuniform float _KelvinScale;\n// width of the emission spectrum, as a fraction of the peak. narrow gives a cleaner, more\n// regular train; wide reaches further off the track, which is what lets the arms of the V\n// keep going after they have spread past the peak wavelength\nuniform float _KelvinSpread;\n// how far astern the hull's history is remembered, and so how long the wake is\nuniform float _KelvinTrack;\n// the 1/l of a spreading ring is singular where a sample sits on top of an old emission\n// point. softening the radius bounds that, and with it the rate the phase turns, which is\n// what decides how finely the track has to be stepped\nuniform float _KelvinSoften;\n\n// half the wavelength that keeps station with the hull: 2 pi v^2 / g is the wave whose crests\n// travel at the ship's speed, and the pulse model above measures its spectrum at half a\n// wavelength. the two agree exactly at this peak, which is why it is derived and not a slider.\n// KelvinWakeTexture.ts computes the same number to size the texture and to hand the ocean the\n// wavelength its mesh fade needs, so a change here belongs in both\nfloat kelvinPeak(float speed) {\n\treturn max(KELVIN_PI * speed * speed / KELVIN_GRAVITY * _KelvinScale, .05);\n}\n\n// track is (distance astern of the stem, signed offset from the centreline), world units.\n// returns (height, d height / d astern, d height / d offset), so the surface normal comes out\n// of the same sum as the displacement instead of costing three more of them\nvec3 kelvinWake(vec2 track, float speed) {\n\tfloat peak = kelvinPeak(speed);\n\tfloat width = max(peak * _KelvinSpread, .05);\n\tfloat soft = peak * _KelvinSoften;\n\n\t// every emission point is at least this far from a sample off to the side of the track,\n\t// so beyond it the spectrum has nothing left to give and the whole sum can be skipped.\n\t// that is most of the disc, and it is the reason this is affordable per vertex\n\tfloat reach = peak + KELVIN_REACH * width;\n\tif (abs(track.y) > reach || track.x < -reach || track.x > _KelvinTrack + reach) {\n\t\treturn vec3(0.);\n\t}\n\n\t// the emission points sit on one grid shared by every sample, and each sample walks the\n\t// stretch of it that is within reach. snapping to the grid rather than fitting the steps\n\t// to the stretch matters: neighbours then sum the same points and make the same\n\t// quadrature error, so what is left of it cancels out instead of rattling the mesh\n\tfloat ds = _KelvinTrack / float(KELVIN_STEPS);\n\tfloat first = max(floor((track.x - reach) / ds), 0.);\n\n\t// sqrt(g k) = c / sqrt(l) with k = pi / l\n\tfloat c = sqrt(KELVIN_GRAVITY * KELVIN_PI);\n\tfloat invSpeed = 1. / max(speed, 1e-3);\n\n\tfloat height = 0.;\n\tvec2 gradient = vec2(0.);\n\n\tfor (int i = 0; i < KELVIN_STEPS; i++) {\n\t\t// midpoint of the cell, which also keeps the sum off s = 0 exactly\n\t\tfloat s = (first + float(i) + .5) * ds;\n\t\tif (s > _KelvinTrack) break;\n\n\t\tvec2 d = vec2(track.x - s, track.y);\n\t\tfloat l = sqrt(dot(d, d) + soft * soft);\n\n\t\t// the emission spectrum, a gaussian on how far this pulse has spread\n\t\tfloat v = (l - peak) / width;\n\t\tfloat spectrum = exp(-.5 * v * v);\n\t\tif (spectrum < 1e-3) continue;\n\n\t\t// how long ago the hull was here. the track is straight and the speed steady, so\n\t\t// distance astern is all the clock this needs\n\t\tfloat t = s * invSpeed;\n\t\tfloat w = c * inversesqrt(l);\n\t\tfloat phase = KELVIN_PI - w * t;\n\t\tfloat cosPhase = cos(phase);\n\t\tfloat sinPhase = sin(phase);\n\n\t\theight += cosPhase * spectrum / l;\n\n\t\t// d/dl of cos(phase) * spectrum / l: the phase turns as the ring grows, the spectrum\n\t\t// falls away from its peak, and the ring spreads its energy over a longer front.\n\t\t// dl/dP is d/l, so the gradient rides straight out along the ring\n\t\tfloat dfdl = spectrum / l * (-sinPhase * (w * t * .5 / l) - cosPhase * (v / width + 1. / l));\n\t\tgradient += (dfdl / l) * d;\n\t}\n\n\t// ds is the measure the sum is missing. amplitude is not applied, so what comes out is the\n\t// bare sum: _KelvinHeight is a plain scale on it and belongs on the far side of the bake,\n\t// where it can be dragged without redrawing anything\n\treturn vec3(height, gradient) * ds;\n}\n"},13988:function(e){"use strict";e.exports="#define PI 3.14159265359\n\n//the directional shadow map stores world height relative to the centre of a window that spans the\n//scene, clamped to it - see depth.fs.glsl. Casters and receivers both go through this.\nfloat shadowDepth(float worldHeight, vec2 window) {\
2n    return clamp(worldHeight - window.x, -window.y, window.y);\n}\n\nvec3 ModifiedFresnel(float cosTheta, vec3 F0, float roughness) {\n    return F0 + (max(vec3(1.-roughness), F0) - F0) * pow(1.0 - cosTheta, 5.0);\n}\n\nfloat DistributionGGX(vec3 N, vec3 H, float roughness) {\n    float a = roughness*roughness;\n    a *= a;\n\n    float NdotH  = max(dot(N, H), 0.0);\n    float NdotH2 = NdotH*NdotH;\n\n    float denom = NdotH2 * a - NdotH2 + 1.0;\n    denom *= denom;\n\n    return a / denom;\n}\n\nvec3 directionalLight(vec3 N, vec3 V, vec3 F0, vec3 albedo, float metallic, float roughness, vec3 lightDirection, float lightIntensity, vec3 lightColor) {\n    // calculate per-light radiance\n    vec3 L = normalize(lightDirection);\n    vec3 H = normalize(V + L);\n\n    float NdotL = max(dot(N, L), 0.01);\n    float NdotV = max(dot(N, V), 0.01);\n    float HdotV = max(dot(H, V), 0.01);\n\n    float r = (roughness + 1.0);\n    float k = (r*r) / 8.0;\n\n    vec3 radiance     = lightColor * lightIntensity;\n\n    // cook-torrance brdf\n    float NDF = DistributionGGX(N, H, roughness);\n    float GINV   = (1.0 - k + k / NdotV) * (1.0 - k + k / NdotL);\n    vec3  F    = ModifiedFresnel(HdotV, F0, roughness);\n\n    vec3 kS = F;\n    vec3 kD = vec3(1.0) - kS;\n    kD *= 1.0 - metallic;\n\n    vec3 numerator    = NDF * F;\n    float denominator = 4.0 * NdotV * NdotL * GINV;\n    vec3 specular     = numerator / max(denominator, 0.001);\n\n    // add to outgoing radiance Lo\n    return (kD * albedo + specular) * radiance * (NdotL * (1. / PI));\n}\n\nvec3 pointLight(vec3 P, vec3 N, vec3 V, vec3 F0, vec3 albedo, float metallic, float roughness, vec3 lightPosition, float range, float lightIntensity, vec3 lightColor) {\n    vec3 lv = lightPosition - P;\n    float d = 1. - min(length(lv) / range, 1.);\n    float intensity = d * d * lightIntensity;\n    return directionalLight(N, V, F0, albedo, metallic, roughness, normalize(lv), intensity, lightColor);\n}\n"},49822:function(e){"use strict";e.exports="// *** Use this for integer stepped ranges, ie Value-Noise/Perlin noise functions.\n#define HASHSCALE1 .1031\n#define HASHSCALE3 vec3(.1031, .1030, .0973)\n#define HASHSCALE4 vec4(1031, .1030, .0973, .1099)\n\n// For smaller input rangers like audio tick or 0-1 UVs use these...\n//#define HASHSCALE1 443.8975\n//#define HASHSCALE3 vec3(443.897, 441.423, 437.195)\n//#define HASHSCALE4 vec3(443.897, 441.423, 437.195, 444.129)\n\n\n//----------------------------------------------------------------------------------------\n//\t\t1 out, 1 in...\nfloat hash11(float p)\n{\n    vec3 p3  = fract(vec3(p) * HASHSCALE1);\n    p3 += dot(p3, p3.yzx + 19.19);\n    return fract((p3.x + p3.y) * p3.z);\n}\n\n//----------------------------------------------------------------------------------------\n//\t\t1 out, 2 in...\nfloat hash12(vec2 p)\n{\n    vec3 p3  = fract(vec3(p.xyx) * HASHSCALE1);\n    p3 += dot(p3, p3.yzx + 19.19);\n    return fract((p3.x + p3.y) * p3.z);\n}\n\n//----------------------------------------------------------------------------------------\n//\t\t1 out, 3 in...\nfloat hash13(vec3 p3)\n{\n    p3  = fract(p3 * HASHSCALE1);\n    p3 += dot(p3, p3.yzx + 19.19);\n    return fract((p3.x + p3.y) * p3.z);\n}\n\n\n// noise functions\n//\n//\thttps://github.com/BrianSharpe/GPU-Noise-Lib/blob/master/gpu_noise_lib.glsl\n//\nvoid FAST32_hash_3D(vec3 gridcell,\nfloat tile,\nout vec4 lowz_hash_0,\nout vec4 lowz_hash_1,\nout vec4 lowz_hash_2,\nout vec4 highz_hash_0,\nout vec4 highz_hash_1,\nout vec4 highz_hash_2)//\tgenerates 3 random numbers for each of the 8 cell corners\n{\n    //\tgridcell is assumed to be an integer coordinate\n\n    //\tTODO: \tthese constants need tweaked to find the best possible noise.\n    //\t\t\tprobably requires some kind of brute force computational searching or something....\n    const vec2 OFFSET = vec2(50.0, 161.0);\n    float DOMAIN = 69.0;\n    const vec3 SOMELARGEFLOATS = vec3(635.298681, 682.357502, 668.926525);\n    const vec3 ZINC = vec3(48.500388, 65.294118, 63.934599);\n\n\n    // make tileable\n    if (tile > 0.) DOMAIN = tile;\n\n    //\ttruncate the domain\n    gridcell.xyz = gridcell.xyz - floor(gridcell.xyz * (1.0 / DOMAIN)) * DOMAIN;\n    vec3 gridcell_inc1 = step(gridcell, vec3(DOMAIN - 1.5)) * (gridcell + 1.0);\n\n    //\tcalculate the noise\n    vec4 P = vec4(gridcell.xy, gridcell_inc1.xy) + OFFSET.xyxy;\n    P *= P;\n    P = P.xzxz * P.yyww;\n    vec3 lowz_mod = vec3(1.0 / (SOMELARGEFLOATS.xyz + gridcell.zzz * ZINC.xyz));\n    vec3 highz_mod = vec3(1.0 / (SOMELARGEFLOATS.xyz + gridcell_inc1.zzz * ZINC.xyz));\n    lowz_hash_0 = fract(P * lowz_mod.xxxx);\n    highz_hash_0 = fract(P * highz_mod.xxxx);\n    lowz_hash_1 = fract(P * lowz_mod.yyyy);\n    highz_hash_1 = fract(P * highz_mod.yyyy);\n    lowz_hash_2 = fract(P * lowz_mod.zzzz);\n    highz_hash_2 = fract(P * highz_mod.zzzz);\n}\n\nvec3 Interpolation_C2(vec3 x) { return x * x * x * (x * (x * 6.0 - 15.0) + 10.0); }\n\n//\n//\tPerlin Noise 3D  ( gradient noise )\n//\tReturn value range of -1.0->1.0\n//\thttps://github.com/BrianSharpe/GPU-Noise-Lib/blob/master/gpu_noise_lib.glsl\n//\nfloat perlin3D(vec3 P, float tile)\n{\n    //\testablish our grid cell and unit position\n    vec3 Pi = floor(P);\n    vec3 Pf = P - Pi;\n    vec3 Pf_min1 = Pf - 1.0;\n\n    //\tcalculate the hash.\n    //\t( various hashing methods listed in order of speed )\n    vec4 hashx0, hashy0, hashz0, hashx1, hashy1, hashz1;\n    FAST32_hash_3D(Pi, tile, hashx0, hashy0, hashz0, hashx1, hashy1, hashz1);\n    //SGPP_hash_3D( Pi, hashx0, hashy0, hashz0, hashx1, hashy1, hashz1 );\n\n    //\tcalculate the gradients\n    vec4 grad_x0 = hashx0 - 0.49999;\n    vec4 grad_y0 = hashy0 - 0.49999;\n    vec4 grad_z0 = hashz0 - 0.49999;\n    vec4 grad_x1 = hashx1 - 0.49999;\n    vec4 grad_y1 = hashy1 - 0.49999;\n    vec4 grad_z1 = hashz1 - 0.49999;\n    vec4 grad_results_0 = inversesqrt(grad_x0 * grad_x0 + grad_y0 * grad_y0 + grad_z0 * grad_z0) * (vec2(Pf.x, Pf_min1.x).xyxy * grad_x0 + vec2(Pf.y, Pf_min1.y).xxyy * grad_y0 + Pf.zzzz * grad_z0);\n    vec4 grad_results_1 = inversesqrt(grad_x1 * grad_x1 + grad_y1 * grad_y1 + grad_z1 * grad_z1) * (vec2(Pf.x, Pf_min1.x).xyxy * grad_x1 + vec2(Pf.y, Pf_min1.y).xxyy * grad_y1 + Pf_min1.zzzz * grad_z1);\n\n    //\tClassic Perlin Interpolation\n    vec3 blend = Interpolation_C2(Pf);\n    vec4 res0 = mix(grad_results_0, grad_results_1, blend.z);\n    vec4 blend2 = vec4(blend.xy, vec2(1.0 - blend.xy));\n    float final = dot(res0, blend2.zxzx * blend2.wwyy);\n    final *= 2.3703703703703703703703703703704;\n    return final;\n}\n\nfloat voronoi3D(vec3 x, float tile) {\n    vec3 p = floor(x);\n    vec3 f = fract(x);\n\n    float res = 100.;
2\n    for (int k=-1; k<=1; k++){\n        for (int j=-1; j<=1; j++) {\n            for (int i=-1; i<=1; i++) {\n                vec3 b = vec3(i, j, k);\n                vec3 c = p + b;\n\n                if (tile > 0.) {\n                    c = mod(c, vec3(tile));\n                }\n\n                vec3 r = vec3(b) - f + hash13(c);\n                float d = dot(r, r);\n\n                if (d < res) {\n                    res = d;\n                }\n            }\n        }\n    }\n\n    return 1.-res;\n}\n\nfloat noiseVoronoi3D(vec3 p, const int octaves, float tile) {\n    float f = 1.;\n    float a = 1.;\n    float c = 0.;\n    float w = 0.;\n\n    if (tile > 0.) f = tile;\n\n    for (int i=0; i<octaves; i++) {\n        c += a*voronoi3D(p * f, f);\n        f *= 2.0;\n        w += a;\n        a *= 0.5;\n    }\n\n    return c / w;\n}\n\nfloat noisePerlin3D(vec3 p, const int octaves, float tile) {\n    float f = 1.;\n    float a = 1.;\n    float c = 0.;\n    float w = 0.;\n\n    if (tile > 0.) f = tile;\n\n    for (int i=0; i<octaves; i++) {\n        c += a*perlin3D(p * f, f);\n        f *= 2.0;\n        w += a;\n        a *= 0.5;\n    }\n\n    return c / w;\n}\n\nvec3 noiseCurl3D(vec3 p, const int octaves, float tile) {\n    vec2 eps = vec2(0, 0.001);\n\n    float dxp = noisePerlin3D(p + eps.yxx, octaves, tile);\n    float dxn = noisePerlin3D(p - eps.yxx, octaves, tile);\n\n    float dyp = noisePerlin3D(p + eps.xyx, octaves, tile);\n    float dyn = noisePerlin3D(p - eps.xyx, octaves, tile);\n\n    float dzp = noisePerlin3D(p + eps.xxy, octaves, tile);\n    float dzn = noisePerlin3D(p - eps.xxy, octaves, tile);\n\n    return vec3((dyp-dyn) - (dzp-dzn), (dzp-dzn) - (dxp-dxn), (dxp-dxn) - (dyp-dyn)) / (2.*eps.y);\n}\n"},49304:function(e){"use strict";e.exports="uniform highp float _Time;\nuniform highp float _Frame;\n\n#define _Vignette 1.\n#define _Grain 0.075\n\nhighp float hash13(highp vec3 p3) {\n    p3  = fract(p3 * .1031);\n    p3 += dot(p3, p3.zyx + 31.32);\n    return fract((p3.x + p3.y) * p3.z);\n}\n\nvec3 posteffects(vec3 col, vec2 uv) {\n    vec2 uv2 = uv - .5;\n    col *= (1. - dot(uv2, uv2) * _Vignette);\n\n    col += (hash13(vec3(gl_FragCoord.xy, _Frame)) - 0.33) * _Grain;\n    return clamp(col, vec3(0.), vec3(1.));\n}\n\n"},20762:function(e){"use strict";e.exports="vec3 mod289(vec3 x)\n{\n    return x - floor(x / 289.0) * 289.0;\n}\n\nvec4 mod289(vec4 x)\n{\n    return x - floor(x / 289.0) * 289.0;\n}\n\nvec4 permute(vec4 x)\n{\n    return mod289((x * 34.0 + 1.0) * x);\n}\n\nvec4 taylorInvSqrt(vec4 r)\n{\n    return 1.79284291400159 - r * 0.85373472095314;\n}\n\nvec4 snoise(vec3 v)\n{\n    const vec2 C = vec2(1.0 / 6.0, 1.0 / 3.0);\n\n    // First corner\n    vec3 i  = floor(v + dot(v, vec3(C.y)));\n    vec3 x0 = v   - i + dot(i, vec3(C.x));\n\n    // Other corners\n    vec3 g = step(x0.yzx, x0.xyz);\n    vec3 l = 1.0 - g;\n    vec3 i1 = min(g.xyz, l.zxy);\n    vec3 i2 = max(g.xyz, l.zxy);\n\n    vec3 x1 = x0 - i1 + C.x;\n    vec3 x2 = x0 - i2 + C.y;\n    vec3 x3 = x0 - 0.5;\n\n    // Permutations\n    i = mod289(i); // Avoid truncation effects in permutation\n    vec4 p =\n      permute(permute(permute(i.z + vec4(0.0, i1.z, i2.z, 1.0))\n                            + i.y + vec4(0.0, i1.y, i2.y, 1.0))\n                            + i.x + vec4(0.0, i1.x, i2.x, 1.0));\n\n    // Gradients: 7x7 points over a square, mapped onto an octahedron.\n    // The ring size 17*17 = 289 is close to a multiple of 49 (49*6 = 294)\n    vec4 j = p - 49.0 * floor(p / 49.0);  // mod(p,7*7)\n\n    vec4 x_ = floor(j / 7.0);\n    vec4 y_ = floor(j - 7.0 * x_); \n\n    vec4 x = (x_ * 2.0 + 0.5) / 7.0 - 1.0;\n    vec4 y = (y_ * 2.0 + 0.5) / 7.0 - 1.0;\n\n    vec4 h = 1.0 - abs(x) - abs(y);\n\n    vec4 b0 = vec4(x.xy, y.xy);\n    vec4 b1 = vec4(x.zw, y.zw);\n\n    vec4 s0 = floor(b0) * 2.0 + 1.0;\n    vec4 s1 = floor(b1) * 2.0 + 1.0;\n    vec4 sh = -step(h, vec4(0.0));\n\n    vec4 a0 = b0.xzyw + s0.xzyw * sh.xxyy;\n    vec4 a1 = b1.xzyw + s1.xzyw * sh.zzww;\n\n    vec3 g0 = vec3(a0.xy, h.x);\n    vec3 g1 = vec3(a0.zw, h.y);\n    vec3 g2 = vec3(a1.xy, h.z);\n    vec3 g3 = vec3(a1.zw, h.w);\n\n    // Normalize gradients\n    vec4 norm = taylorInvSqrt(vec4(dot(g0, g0), dot(g1, g1), dot(g2, g2), dot(g3, g3)));\n    g0 *= norm.x;\n    g1 *= norm.y;\n    g2 *= norm.z;\n    g3 *= norm.w;\n\n    // Compute noise and gradient at P\n    vec4 m = max(0.6 - vec4(dot(x0, x0), dot(x1, x1), dot(x2, x2), dot(x3, x3)), 0.0);\n    vec4 m2 = m * m;\n    vec4 m3 = m2 * m;\n    vec4 m4 = m2 * m2;\n    vec3 grad =\n      -6.0 * m3.x * x0 * dot(x0, g0) + m4.x * g0 +\n      -6.0 * m3.y * x1 * dot(x1, g1) + m4.y * g1 +\n      -6.0 * m3.z * x2 * dot(x2, g2) + m4.z * g2 +\n      -6.0 * m3.w * x3 * dot(x3, g3) + m4.w * g3;\n    vec4 px = vec4(dot(x0, g0), dot(x1, g1), dot(x2, g2), dot(x3, g3));\n    return 42.0 * vec4(grad, dot(m4, px));\n}\n\n// Divergence-free noise field\nvec3 NoiseField(float id , vec3 p, float divergence)\n{\n    p += vec3(0.9, 1.0, 1.1) * (divergence * id);\n    vec3 n1 = snoise(p).xyz;\n    vec3 n2 = snoise(p + vec3(15.3, 13.1, 17.4)).xyz;\n    return cross(n1, n2);\n}\n\n\n"},33126:function(e){"use strict";e.exports="// Hash without Sine\n// MIT License...\n// Copyright (c)2014 David Hoskins.\n// https://www.shadertoy.com/view/4djSRW\nvec2 hash22(vec2 p)\n{\n    vec3 p3 = fract(vec3(p.xyx) * vec3(.1031, .1030, .0973));\n    p3 += dot(p3, p3.yzx+33.33);\n    return fract((p3.xx+p3.yz)*p3.zy);\n}
2\n\nfloat triangleNoise(vec2 p) {\n    vec2 h = hash22(p);\n    return h.x + h.y - 1.;\n}\n\n//https://www.shadertoy.com/view/XsGfWV\nvec3 acesTonemap(vec3 color){\n    mat3 m1 = mat3(\n        0.59719, 0.07600, 0.02840,\n        0.35458, 0.90834, 0.13383,\n        0.04823, 0.01566, 0.83777\n    );\n    mat3 m2 = mat3(\n        1.60475, -0.10208, -0.00327,\n        -0.53108, 1.10813, -0.07276,\n        -0.07367, -0.00605, 1.07602\n    );\n    vec3 v = m1 * color;\n    vec3 a = v * (v + 0.0245786) - 0.000090537;\n    vec3 b = v * (0.983729 * v + 0.4329510) + 0.238081;\n    return clamp(m2 * (a / b), 0.0, 1.0);\n}\n\n//unity gamma to linear\nvec3 gammaToLinear (vec3 sRGB) {\n    // Approximate version from http://chilliant.blogspot.com.au/2012/08/srgb-approximations-for-hlsl.html?m=1\n    return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878);\n}\n\nvec3 linearToGamma (vec3 linRGB) {\n    // An almost-perfect approximation from http://chilliant.blogspot.com.au/2012/08/srgb-approximations-for-hlsl.html?m=1\n    return max(1.055 * pow(linRGB, vec3(0.416666667)) - 0.055, vec3(0));\n}\n\nvec3 toneMap(vec3 color)\n{\n    color = acesTonemap(color);\n    return linearToGamma(color) + triangleNoise(gl_FragCoord.xy) * (2./255.);\n}\n"},43824:function(e){"use strict";e.exports="#version 300 es\nprecision highp float;\n\n// The pulse sum, evaluated once over the patch of water it can reach and left in a texture for\n// the ocean vertex shader to sample. It was a per vertex loop before, which was the wrong place\n// for it twice over: the pattern does not move in the hull's frame, so the same answer was\n// being recomputed every frame, and the mesh it was evaluated on is a projected grid, so the\n// same stretch of water was sampled at a different density every time the camera turned.\n//\n// Baking it in wake space fixes both. It also buys quality rather than only speed: the step\n// count below is four times what the vertex shader could afford, and the sum is stepped finely\n// enough that the quadrature rattle along the centreline stops being a limit worth thinking\n// about. This pass costs one blit into a texture of a few hundred pixels a side, and only when\n// a slider that feeds the sum has moved.\n\n// the sum is done once per slider drag rather than once per vertex per frame, so the phase can\n// be stepped as finely as the pattern deserves. has to be defined before the include\n#define KELVIN_STEPS 512\n\n#include includes/kelvinWake.glsl\n\nin vec2 vUV;\n\n// the wake space rectangle this texture covers: (min astern, min offset, 1 / width, 1 / height).\n// KelvinWakeTexture.ts fits it to the reach of the emission spectrum, which is the same bound\n// the sum uses to skip work, so nothing outside it was ever non zero\nuniform vec4 _KelvinBounds;\nuniform float _WakeSpeed;\n\nout vec4 fragColor;\n\nvoid main(void) {\n\t// straight back out of the uv to the track coordinate the sum wants: (distance astern of\n\t// the stem, signed offset from the centreline)\n\tvec2 track = vUV / _KelvinBounds.zw + _KelvinBounds.xy;\n\n\t// (height, d height / d astern, d height / d offset). the gradient is stored rather than\n\t// recovered from neighbouring texels later: it falls out of the same sum for free, and a\n\t// finite difference across a texel would lose exactly the sharpness the extra steps bought\n\tfragColor = vec4(kelvinWake(track, _WakeSpeed), 1.);\n}\n"},91456:function(e){"use strict";e.exports="#version 300 es\nin vec3 aPos;\nin vec2 aUV0;\n\nout vec2 vUV;\n\nvoid main(void) {\n\tvUV = aUV0;\n\tgl_Position = vec4(aPos, 1.0);\n}\n"},72034:function(e){"use strict";e.exports="precision highp float;\n\n#include includes/toneMap.glsl\n#include includes/light.glsl\n#include includes/horizonHaze.glsl\n\n#version 300 es\nlayout(location = 0) out vec4 fragColor;\n\nin vec3 vWorld;\nin vec3 vNormal;\n// distance from the eye over _MaxDistance, 1 at the rim of the projected grid\nin float vEdge;\n\nuniform vec3 _CamPos;\nuniform float _SeaLevel;\nuniform float _WaveHeight;\nuniform highp float _Time;\n\nuniform samplerCube _Skybox;\nuniform samplerCube _IrradianceMap;\nuniform samplerCube _PrefilterMap;\nuniform sampler2D _brdfLUT;\nuniform float _MaxLod;\n\n// the whole ripple chop, all three octaves summed, redrawn each frame by RippleDetailTexture.\n// rg is the gradient; _RippleTile is how many world units one wrap of it covers\nuniform sampler2D _RippleDetail;\nuniform float _RippleTile;\n\n// one tile of froth, baked once by FoamTexture: r is how much foam belongs at a texel, gb is its\n// slope. it is a threshold field rather than a picture of anything, see foamTile() below\nuniform sampler2D _FoamMap;\nuniform float _FoamTile;\nuniform float _FoamDrift;\nuniform float _FoamEdge;\nuniform float _FoamBump;\nuniform vec3 _FoamColor;\n\nuniform sampler2D _FoamCoverage;\n// the wake space rectangle it covers: (min astern, min offset, 1 / width, 1 / height)\nuniform vec4 _FoamBounds;\nuniform float _FoamAmount;\n// the stem, world xz, which is where a hull starts making waves and s
2o the origin of wake space\nuniform vec2 _WakeStem;\n\nuniform vec3 _LightDirection;\nuniform mat4 _LightViewProjection;\nuniform sampler2D _ShadowMap;\nuniform vec2 _ShadowDepthWindow;\nuniform float _VarianceMin;\nuniform float _VSMBleedThreshold;\nuniform float _SunStrength;\n\nuniform vec3 _DeepColor;\nuniform vec3 _ScatterColor;\nuniform float _WaterRoughness;\nuniform float _FarRoughness;\nuniform float _DetailStrength;\nuniform float _ScatterStrength;\nuniform float _FadeStart;\nuniform float _HorizonFalloff;\nuniform vec3 _HorizonColor;\n\n// axis aligned stand-ins for the ship, centre and half size in world space\nuniform vec3 _Blocker0Center;\nuniform vec3 _Blocker0Size;\nuniform float _Blocker0Taper;\nuniform vec3 _Blocker1Center;\nuniform vec3 _Blocker1Size;\nuniform float _Blocker1Taper;\nuniform float _BlockerStrength;\nuniform float _BlockerSoftness;\n\nvec2 rippleGradient(vec2 p) {\n\treturn texture(_RippleDetail, p / _RippleTile).rg;\n}\n\n// the sun is not white, and the foam below has to be lit by the same one the water is\nconst vec3 SUN_COLOR = vec3(1., .87, .72);\n\nvec3 foamTile(vec2 p, vec2 ddx, vec2 ddy) {\n\tfloat fine = _FoamTile * .37;\n\t// the same sign convention the swell uses, where the field translates towards +z over time\n\tvec2 drift = vec2(0., -_Time * _FoamDrift);\n\n\tvec4 a = textureGrad(_FoamMap, (p + drift) / _FoamTile, ddx / _FoamTile, ddy / _FoamTile);\n\tvec4 b = textureGrad(_FoamMap, (p + drift * .8) / fine + .5, ddx / fine, ddy / fine);\n\n\t// the weights sum to one, which matters more than it looks: this is thresholded against a\n\t// coverage in 0..1 further down, so anything that pushed the sum up against a clamp would\n\t// flatten the top of its histogram and take the holes out of a nearly covered patch\n\t// the slopes come out of the bake in tile space, so the finer lap carries a steeper one for\n\t// the same stored byte, and the divide is what puts the two back on the same footing\n\tvec2 slope = (a.gb - .5) * (.65 / _FoamTile) + (b.gb - .5) * (.35 / fine);\n\treturn vec3(a.r * .65 + b.r * .35, slope);\n}\n\n//https://http.download.nvidia.com/developer/presentations/2006/gdc/2006-GDC-Variance-Shadow-Maps.pdf\nfloat chebyshevUpperBound(vec2 uv, float distance)\n{\n\tvec2 moments = texture(_ShadowMap, uv).rg;\n\tfloat lit = step(moments.x, distance);\n\tfloat variance = moments.y - moments.x * moments.x;\n\tvariance = max(variance, _VarianceMin * _VarianceMin);\n\tfloat d = moments.x - distance;\n\tfloat p = variance / (variance + d * d);\n\t//the smoothstep prevents some of the VSM artifacts on blurred depth textures\n\treturn smoothstep(_VSMBleedThreshold, 1., max(lit, p));\n}\n\n// slab test against an axis aligned box, returned as the (entry, exit) distances rather\n// than a hit flag so the span can still be clipped further\nvec2 boxSpan(vec3 ro, vec3 rd, vec3 center, vec3 halfSize) {\n\t// a direction component of exactly zero would put an inf in invD, and inf * 0 is a\n\t// NaN that survives every min/max below. step never returns 0 here, so the sign\n\t// stays intact and the magnitude stays finite\n\tvec3 s = step(vec3(0.), rd) * 2. - 1.;\n\tvec3 invD = s / max(abs(rd), 1e-5);\n\n\tvec3 o = ro - center;\n\tvec3 t0 = (-halfSize - o) * invD;\n\tvec3 t1 = (halfSize - o) * invD;\n\tvec3 tn = min(t0, t1);\n\tvec3 tf = max(t0, t1);\n\n\treturn vec2(max(max(tn.x, tn.y), tn.z), min(min(tf.x, tf.y), tf.z));\n}\n\n// cut the span down with one more half space, inside being dot(n, p) <= d. the slab test\n// is just this done three times against axis aligned pairs, so a box and a plane clipped\n// box cost almost the same and any convex shape is reachable from here\nvec2 clipHalfSpace(vec2 span, vec3 ro, vec3 rd, vec3 n, float d) {\n\tfloat denom = dot(n, rd);\n\t// same guard as above, and it happens to give the right answer for a ray running\n\t// parallel to the plane: t runs off to a large value carrying the sign of which side\n\t// the ray started on, which either leaves the span alone or collapses it\n\tfloat s = step(0., denom) * 2. - 1.;\n\tfloat t = (d - dot(n, ro)) / (s * max(abs(denom), 1e-6));\n\n\t// a plane the ray leaves through can only shorten the exit, one it enters through can\n\t// only pu
2sh the entry back\n\tfloat leaving = step(0., denom);\n\treturn vec2(mix(max(span.x, t), span.x, leaving), mix(span.y, min(span.y, t), leaving));\n}\n\n// a box with its z end cut back to a wedge. returns roughly how much of the shape the ray\n// passes through rather than a hit flag: a ray that only clips a corner should not block as\n// much as one that goes straight through the hull, and the hard version stamps a visible\n// silhouette edge across the water.\n// taper is how far aft of the stem the hull reaches full beam, signed so it can cut either\n// end, and 0 leaves the plain box. a real bow is pointy and the corner of a box throws a\n// straight edge across the water ahead of it that is impossible to miss\nfloat hullOcclusion(vec3 ro, vec3 rd, vec3 center, vec3 halfSize, float taper) {\n\tvec2 span = boxSpan(ro, rd, center, halfSize);\n\n\tif (taper != 0.) {\n\t\tfloat end = step(0., taper) * 2. - 1.;\n\t\t// both planes pivot on the stem and open out to the full beam taper further aft\n\t\tvec2 stem = vec2(center.x, center.z - end * halfSize.z);\n\t\tvec2 n = normalize(vec2(abs(taper), -end * halfSize.x));\n\n\t\tspan = clipHalfSpace(span, ro, rd, vec3(n.x, 0., n.y), dot(n, stem));\n\t\tvec2 m = vec2(-n.x, n.y);\n\t\tspan = clipHalfSpace(span, ro, rd, vec3(m.x, 0., m.y), dot(m, stem));\n\t}\n\n\t// a miss makes the span negative, so the smoothstep already rejects it; the step\n\t// only throws out shapes that are entirely behind the ray\n\treturn smoothstep(0., _BlockerSoftness, span.y - span.x) * step(0., span.y);\n}\n\n// the sky above the water is not the only thing a reflected ray can land on: close to the\n// ship it lands on the hull, which is dark. without this the water in front of the boat\n// mirrors a bright sky that the hull is standing in the way of, which is very obvious once\n// the camera drops towards the waterline and the reflections turn grazing\nfloat shipOcclusion(vec3 ro, vec3 rd) {\n\tfloat o = hullOcclusion(ro, rd, _Blocker0Center, _Blocker0Size, _Blocker0Taper);\n\to = max(o, hullOcclusion(ro, rd, _Blocker1Center, _Blocker1Size, _Blocker1Taper));\n\treturn o * _BlockerStrength;\n}\n\nfloat light(vec3 n, vec3 lightDir) {\n\tvec4 screen = _LightViewProjection * vec4(vWorld, 1.);\n\tvec2 lightUV = screen.xy / screen.w;\n\tfloat penumbra = smoothstep(1., .95, length(lightUV));\n\tif (penumbra == 0.) {\n\t\treturn 1.;\n\t}\n\tlightUV = lightUV * .5 + .5;\n\t// the ocean is not rendered into the shadow map, so the flat sea level is the\n\t// receiver depth: the cleared parts of the map read as lit, the ship casts as usual\n\tfloat l = chebyshevUpperBound(lightUV, shadowDepth(_SeaLevel, _ShadowDepthWindow));\n\t//prevents light leakage from blurred shadow map lighting surfaces that point away from the light\n\tl *= smoothstep(.05, -.05, dot(n, -lightDir));\n\tl = mix(1., l, penumbra);\n\treturn l;\n}\n\nvoid main(){\n\tvec3 toCam = _CamPos - vWorld;\n\tvec3 V = normalize(toCam);\n\tvec3 L = normalize(_LightDirection);\n\n\tfloat far = smoothstep(.1, .78, vEdge);\n\n\tvec3 geoNormal = normalize(vNormal);\n\tvec2 g = rippleGradient(vWorld.xz) * _DetailStrength;\n\tvec3 N = normalize(vec3(geoNormal.x - g.x, geoNormal.y, geoNormal.z - g.y));\n//\tvec3 N = geoNormal;\n\t// flatten out towards the horizon, grazing normals there are pure aliasing\n\tN = normalize(mix(N, vec3(0., 1., 0.), far));\n\n\t// the tile is a threshold field rather than a picture of foam: as the coverage climbs, more\n\t// of the tile clears the bar, and what clears it first is whatever the bake left brightest.\n\t// that is what breaks the rim of a patch up into froth instead of leaving an edge with a\n\t// gradient painted on it, and it is the whole reason a texture this small is enough\n\tvec2 track = vec2(vWorld.z - _WakeStem.y, _WakeStem.x - vWorld.x);\n\tvec2 foamUV = (track - _FoamBounds.xy) * _FoamBounds.zw;\n\n\t// taken before the test below rather than inside it: not every pixel of a quad is over the\n\t// wake, and a derivative is a property of the quad rather than of the pixel that asked\n\tvec2 ddx = dFdx(vWorld.xz);\n\tvec2 ddy = dFdy(vWorld.xz);\n\n\tfloat foam = 0.;\n\t// the coverage bake was fitted to the reach of the pattern, so outside its rectangle there\n\t// is nothing to fetch. most of the water on screen is outside it, which is the point: what\n\t// this skips is not the coverage tap but the two mipped taps of the tile behind it\n\tif (all(greaterThanEqual(foamUV, vec2(0.))) && all(lessThanEqual(foamUV, vec2(1.)))) {\n\t\t// explicit lod: same divergent branch, and there is no mip chain on it to pick from\n\t\tfloat coverage = clamp(textureLod(_FoamCoverage, foamUV, 0.).r * _FoamAmount, 0., 1.);\n\t\tvec3 tile = foamTile(vWorld.xz, ddx, ddy);\n\t\tfoam = smoothstep(1., 1. + _FoamEdge, tile.x + coverage);\n\n\t\t// subtracted rather than added, the same way the ripple gradient is: the tile stores the\n\t\t// slope of a height field, and a surface normal leans away from an upward slope. relief\n\t\t// on froth a hundred metres out is aliasing for the same reason the chop is, so the same\n\t\t// fade takes care of it\n\t\tN = normalize(N - vec3(tile.y, 0., tile.z) * (_FoamBump * foam * (1. - far)));\n\t}\n\n\t// the roughness picks up the wave detail that the LOD dropped\n\tfloat roughness = mix(_WaterRoughness, _FarRoughness, far);\n\t// geometric specular antialiasing: a sun glint on water is far narrower than the\n\t// ripples are, so widen the lobe by however much the normal swings inside this pixel\n\tvec3 dNdx = dFdx(N);\n\tvec3 dNdy = dFdy(N);\n\troughness = min(sqrt(roughness * roughness + (dot(dNdx, dNdx) + dot(dNdy, dNdy))), 1.);
2\n\n\tfloat NdotV = max(dot(N, V), 1e-3);\n\tvec3 F0 = vec3(.02);// water\n\tvec3 F = ModifiedFresnel(NdotV, F0, roughness);\n\n\tvec3 R = reflect(-V, N);\n\t// wave faces can bend the reflection below the horizon where there is nothing to sample\n\tR.y = max(R.y, .015);\n\tR = normalize(R);\n\n\t// the prefiltered map has no idea the ship is there, so knock the reflection down\n\t// wherever the ray would have run into the hull before reaching the sky\n\tfloat blocked = 1. - shipOcclusion(vWorld, R);\n\n\tvec3 prefilteredColor = textureLod(_PrefilterMap, R, roughness * _MaxLod).rgb;\n\tvec2 envBRDF = texture(_brdfLUT, vec2(NdotV, roughness)).rg;\n\tvec3 specular = prefilteredColor * (F * envBRDF.x + envBRDF.y) * blocked;\n\n\t// the sky's own contribution, kept aside unblocked: the foam below is lit by it, and the\n\t// hull blocking a mirrored ray says nothing about a mat of bubbles that is not mirroring\n\tvec3 ambient = textureLod(_IrradianceMap, N, 0.).rgb;\n\n\tvec3 irradiance = ambient * blocked;\n\tvec3 kD = vec3(1.) - F;\n\tvec3 diffuse = kD * _DeepColor * irradiance;\n\n\tfloat l = light(geoNormal, L);\n//\tfloat l2 = (l * .6 + .4);\n\tfloat l2 = 1.;\n\n\tvec3 color = diffuse + specular * l2;\n\tcolor += l * directionalLight(N, V, F0, _DeepColor, 0., roughness, L, _SunStrength, SUN_COLOR);\n\n\t// light that travelled through a crest and came out towards the camera\n\tfloat height = clamp((vWorld.y - _SeaLevel) / max(_WaveHeight, 1e-3), 0., 1.);\n\tvec3 scatterDir = normalize(L + geoNormal * .8);\n\tfloat sss = pow(clamp(dot(V, -scatterDir), 0., 1.), 3.) * height * (1. - far);\n\tcolor += _ScatterColor * (sss * _ScatterStrength * l * irradiance) * l2;\n\n\t// foam is not water with white mixed into it: it is a mat of bubbles that has stopped\n\t// reflecting altogether and scatters whatever the sky and the sun throw at it. so it goes\n\t// over the finished water rather than into its albedo, and takes the mirror down with it\n\tvec3 foamLit = _FoamColor * (ambient + l * _SunStrength * clamp(dot(N, L), 0., 1.) * (1. / PI) * SUN_COLOR);\n\tcolor = mix(color, foamLit, foam);\n\n\t// dissolve into the same haze the sky shader paints below the horizon, so the rim of\n\t// the grid lands on the exact colour that is already drawn behind it\n\tvec3 haze = horizonHazeColor(_Skybox, -V, _HorizonFalloff, _HorizonColor);\n\tcolor = mix(color, haze, smoothstep(_FadeStart, .93, vEdge));\n//\tcolor = fract(geoNormal * 10.);\n\n\tfragColor = vec4(color, 1.);\n}\n"},66482:function(e){"use strict";e.exports="#version 300 es\nprecision highp float;\n\nin vec2 aUV0;\n\nuniform mat4 _ViewProjection;\nuniform vec2 _Segments;\nuniform vec3 _CamPos;\n// the view rays, folded into an affine function of clip space by the cpu:\n// dir(x, y) = _RayBase + _RayDX * x + _RayDY * y, unnormalised but always forward facing\nuniform vec3 _RayBase;\nuniform vec3 _RayDX;\nuniform vec3 _RayDY;\nuniform float _MaxDistance;\nuniform float _GridBias;\nuniform float _SeaLevel;\nuniform highp float _Time;\n\nuniform float _WaveLength;\nuniform float _WaveHeight;\nuniform float _WaveSteepness;\nuniform float _WaveFalloff;\nuniform float _WindAngle;\nuniform float _WindSpread;\n\n// the kelvin wake, baked once into wake space by KelvinWakeTexture.ts rather than summed here.\n// rgb is (height, d height / d astern, d height / d offset) at unit amplitude\nuniform sampler2D _KelvinMap;\n// the rectangle of wake space it covers: (min astern, min offset, 1 / width, 1 / height)\nuniform vec4 _KelvinBounds;\n// twice the peak of the emission spectrum, which is the wavelength the pattern lands on and\n// so the one the mesh has to be able to hold\nuniform float _KelvinWaveLength;\nuniform float _KelvinHeight;\n// the stem, world xz, which is where a hull starts making waves. the ship only ever makes way\n// down -z, so wake space needs no heading: distance astern is +z off the stem and the signed\n// offset from the centreline is -x\nuniform vec2 _WakeStem;\n\nout vec3 vWorld;\nout vec3 vNormal;\nout float vEdge;\n\n#define TAU 6.283185307179586\n// the ship is ~20 units long for 205m, so one unit is roughly 10m\n#define GRAV
2ITY 0.981\n#define WAVE_COUNT 6\n\n// the grid is stretched a little past the edges of the screen, so the horizontal half of the\n// gerstner displacement cannot drag the border rows into view and open a gap along the frame\n#define OVERSCAN 1.05\n// the orbit camera never gets this close to the surface, but _SeaLevel is a slider and the\n// projection blows up the moment the eye crosses it\n#define MIN_EYE_HEIGHT .05\n\n/**\n * Where the ray through this bit of clip space meets the water. Height above the surface is\n * passed in because it is the same for every vertex.\n * The slope clamp is what stops a ray running all the way out to the horizon: once it would\n * land past _MaxDistance it stops descending, which piles the last rows onto the rim instead\n * of off at infinity. y is written rather than integrated so that clamp cannot lift the\n * vertex off the surface. Returns the world xz and the distance the ray travelled.\n */\nvec3 seaPoint(vec3 dir, float height) {\n\tvec3 d = normalize(dir);\n\tfloat slope = max(-d.y, height / _MaxDistance);\n\tfloat dist = height / slope;\n\treturn vec3(_CamPos.xz + d.xz * dist, dist);\n}\n\n/**\n * The clip space row whose ray meets the water exactly _MaxDistance out. Writing the ray as\n * dir = a + b * y and asking for height * |dir| == _MaxDistance * -dir.y squares out into a\n * plain quadratic in y. Its two roots straddle the horizon, mirrored either side of it, so\n * the lower one is the ring on the water and the upper one is its reflection in the sky.\n */\nfloat maxDistanceRow(vec3 a, vec3 b, float height) {\n\tfloat h2 = height * height;\n\tfloat m2 = _MaxDistance * _MaxDistance;\n\n\tfloat qa = h2 * dot(b, b) - m2 * b.y * b.y;\n\tfloat qb = 2. * (h2 * dot(a, b) - m2 * a.y * b.y);\n\tfloat qc = h2 * dot(a, a) - m2 * a.y * a.y;\n\n\tfloat root = sqrt(max(qb * qb - 4. * qa * qc, 0.));\n\t// qa only vanishes for a degenerate projection, but a division by it does not\n\tfloat inv = .5 / (qa < 0. ? min(qa, -1e-6) : max(qa, 1e-6));\n\t// inv carries a sign, so the two are not in order until they are put in it\n\tfloat r0 = (-qb - root) * inv;\n\tfloat r1 = (-qb + root) * inv;\n\t// of the pair, the one on the side of the horizon the ray descends towards. that is the\n\t// low side whenever climbing the screen tilts the ray up, which is every camera that is\n\t// not upside down, but the sign is free to carry rather than assume\n\treturn b.y > 0. ? min(r0, r1) : max(r0, r1);\n}\n\nvoid main(void) {\n\t// the grid is thrown at the water from the camera rather than laid out in the world: the\n\t// clip space square is unprojected onto y = _SeaLevel, so every triangle lands somewhere\n\t// on screen and the tessellation comes out dense underfoot and coarse towards the\n\t// horizon without a radial ramp having to fake it\n\tfloat height = max(_CamPos.y - _SeaLevel, MIN_EYE_HEIGHT);\n\n\tfloat column = (aUV0.x * 2. - 1.) * OVERSCAN;\n\tvec3 columnRay = _RayBase + _RayDX * column;\n\n\t// bottom of the screen up to the far rim. the clamp is the case the horizon is off\n\t// screen: the water then runs out of screen before it runs out of distance, and the top\n\t// row belongs at the top of the frame rather than out past it\n\tfloat rowNear = -OVERSCAN;\n\tfloat rowFar = clamp(maxDistanceRow(columnRay, _RayDY, height), rowNear, OVERSCAN);\n\n\t// straight up the screen at a bias of 1, which is the even spread the projection exists\n\t// to get. above that the rows bunch towards the camera, below towards the horizon\n\tfloat row = mix(rowNear, rowFar, pow(aUV0.y, _GridBias));\n\n\tvec3 hit = seaPoint(columnRay + _RayDY * row, height);\n\tvec2 rest = hit.xy;\n\n\t// world size of one quad here, used to drop waves this part of the mesh cannot resolve.\n\t// the neighbours are projected rather than derived: the mapping is projective, so a\n\t// quad at the horizon is orders of magnitude bigger than one underfoot and nothing\n\t// short of the real thing gets that right. the column neighbour reuses this column's\n\t// rowFar, which drifts by a fraction of a row across one quad\n\tfloat rowStep = mix(rowNear, rowFar, pow(aUV0.y + 1. / _Segments.y, _GridBias)) - row;\n\tfloat columnStep = 2. * OVERSCAN / _Segments.x;\n\tfloat spacing = max(\n\t\tlength(seaPoint(columnRay + _RayDX * columnStep + _RayDY * row, height).xy - rest),\n\t\tlength(seaPoint(columnRay + _RayDY * (row + rowStep), height).xy - rest)\n\t);\n\n\tvec3 p = vec3(rest.x, _SeaLevel, rest.y);\n\tvec3 n = vec3(0., 1., 0.);\n\n\trest.y -= _Time;\n\n\tfloat waveLength = _WaveLength;\n\tfloat amplitude = _WaveHeight;\n\n\tfor (int i = 0; i < WAVE_COUNT;
2 i++) {\n\t\tfloat fi = float(i);\n\t\tfloat k = TAU / waveLength;\n\t\t// deep water gravity waves: long swell travels faster than short chop\n\t\tfloat speed = sqrt(GRAVITY / k);\n\n\t\t// shorter waves fan out further from the wind direction\n\t\tfloat a = _WindAngle + _WindSpread * sin(fi * 2.4) * (.25 + .75 * fi / float(WAVE_COUNT - 1));\n\t\tvec2 d = vec2(sin(a), cos(a));\n\n\t\t// steepness is normalised against the full amplitude so the horizontal\n\t\t// displacement fades out together with the height\n\t\tfloat q = _WaveSteepness / max(k * amplitude * float(WAVE_COUNT), 1e-5);\n\t\tfloat amp = amplitude * smoothstep(.5, .2, spacing / waveLength);\n\t\tfloat ka = k * amp;\n\n\t\tfloat phase = k * dot(d, rest) + speed * k * _Time;\n\t\tfloat s = sin(phase);\n\t\tfloat c = cos(phase);\n\n\t\tp.xz += q * amp * d * c;\n\t\tp.y += amp * s;\n\n\t\tn.x -= d.x * ka * c;\n\t\tn.z -= d.y * ka * c;\n\t\tn.y -= q * ka * s;\n\n\t\twaveLength *= _WaveFalloff;\n\t\tamplitude *= _WaveFalloff;\n\t}\n\n\t// the wake is a function of world position like the swell is, so it is read where the\n\t// gerstner displacement actually left this vertex rather than where it started\n\tvec2 track = vec2(p.z - _WakeStem.y, _WakeStem.x - p.x);\n\tvec2 kelvinUV = (track - _KelvinBounds.xy) * _KelvinBounds.zw;\n\n\tvec3 wake = vec3(0.);\n\t// the texture was fitted to the reach of the emission spectrum, so there is nothing to\n\t// fetch outside it. most of the mesh is outside it, which is what the test is here for\n\tif (all(greaterThanEqual(kelvinUV, vec2(0.))) && all(lessThanEqual(kelvinUV, vec2(1.)))) {\n\t\t// the wake lands on one wavelength, and a stretch of mesh that cannot hold it would\n\t\t// turn the displacement into noise. this is the same fade the gerstner waves use, and\n\t\t// out where it bites the wake has almost nothing left in it anyway\n\t\tfloat wakeFade = smoothstep(.5, .2, spacing / _KelvinWaveLength);\n\t\t// (height, d/d astern, d/d offset), all three out of the one fetch: the gradient was\n\t\t// baked alongside the height rather than differenced back out of it afterwards.\n\t\t// explicit lod because a vertex shader has no derivatives to pick one from\n\t\twake = textureLod(_KelvinMap, kelvinUV, 0.).xyz * (_KelvinHeight * wakeFade);\n\t}\n\n\tp.y += wake.x;\n\t// the gradient comes out on the wake axes, and those are the world axes swapped and\n\t// flipped: astern is +z, offset is -x\n\tn.x += wake.z;\n\tn.z -= wake.y;\n\n\tvWorld = p;\n\tvNormal = n;\n\t// the haze and the wave flattening key off this, and the grid is pinned to the eye now,\n\t// so it is view distance rather than a radius around the ship\n\tvEdge = clamp(hit.z / _MaxDistance, 0., 1.);\n\n\tgl_Position = _ViewProjection * vec4(p, 1.);\n}\n"},82812:function(e){"use strict";e.exports="precision highp float;\n\n//#include includes/toneMap.glsl\n#include includes/horizonHaze.glsl\n\n#version 300 es\nlayout(location = 0) out vec4 fragColor;\n#define texCube(s, uv) texture(s, uv)\n\nin vec3 vWorld;\nin vec3 vNormal;\n\n/*uniform vec3 _Albedo;\nuniform float _Roughness;\nuniform float _MaxLod;\nuniform sampler2D _brdfLUT;\nuniform samplerCube _IrradianceMap;\nuniform samplerCube _PrefilterMap;*/\nuniform samplerCube _Skybox;\n\nuniform vec3 _CamPos;\n\n//off unless an environment opts in, so the cloud sky keeps the plain skybox\nuniform float _HorizonFalloff;\nuniform vec3 _HorizonColor;\n\nvoid main(){\n\tvec3 dir = normalize(vNormal);\n\tvec3 color = texture(_Skybox, dir).xyz;\n\n\tvec3 haze = horizonHazeColor(_Skybox, dir, _HorizonFalloff, _HorizonColor);\n\tcolor = mix(color, haze, horizonHazeAmount(dir, _HorizonFalloff) );\n\n\tfragColor = vec4(color, 1.);\n}\n\n\n"},62943:function(e){"use strict";e.exports="#version 300 es\n\nin vec3 aPos;\nin vec3 aNormal;\nin vec2 aUV0;\n\nuniform mat4 _ViewProjection;\nuniform vec3 _CamPos;\n\nout vec3 vWorld;\nout vec3 vNormal;\n\nvoid main(void) {\n\tvec4 world = vec4(_CamPos + aPos, 1.0);\n\n\tvNormal = aPos;\n\n\tvWorld = world.xyz;\n\n\tgl_Position = _ViewProjection * world;\n}\n"},61266:function(e){"use strict";e.exports="#version 300 es\nprecision mediump float;\nout vec4 fragColor;\n\nin float vOpacity;\nin vec3 vColor;\nin vec2 vUV;\n\n/*float hash12(vec2 p) {\n    vec3 p3  = fract(vec3(p.xyx) * .1031);\n    p3 += dot(p3, p3.yzx + 33.33);\n    return fract((p3.x + p3.y) * p3.z);\n}*/\n\nvoid main(void) {\n//    float h = hash12(vUV * 10.);\n    float a = smoothstep(1., 0., length(vUV));\n    a *= vOpacity;\n//    if(a < h) discard;\n    fragColor = vec4(vColor, 1.) * a;\n//    fragColor = vec4(vColor, 1.);\n}\n"},83170:function(e){"use strict";e.exports="#version 300 es\nin vec4 aData0;\n//random\nin vec4 aData1;\nin vec2 aUV0;\n\n#define aPos aData0.xyz\n#define aDelay aData0.w\n\nuniform mat4 _ViewProjection;\n\nuniform float _Time;
2\nuniform float _Opacity;\nuniform float _AspectRatio;\nuniform float _PointSize;\n\nuniform float _WindZ;\nuniform float _WindY;\nuniform float _WindX;\nuniform float _LifeTime;\nuniform float _Amplitude;\nuniform float _Falloff;\nuniform float _Twist;\nuniform float _SpatialFrequency;\nuniform float _TemporalFrequency;\n\nuniform float _TrackSpacing;\nuniform float _TrackWidth;\nuniform float _TrackStart;\nuniform float _TrackEnd;\n\nuniform mat4 _LightViewProjection;\nuniform vec3 _LightDirection;\nuniform sampler2D _ShadowMap;\nuniform vec2 _ShadowDepthWindow;\nuniform sampler2D _AlbedoMap;\nuniform float _VarianceMin;\nuniform float _VSMBleedThreshold;\nuniform float _ShadowAmount;\n\nuniform vec3 _ColorA;\nuniform vec3 _ColorB;\n\nout float vOpacity;\nout vec3 vColor;\nout vec2 vUV;\n\n#define m3 mat3(-0.73736, 0.45628, 0.49808, 0, -0.73736, 0.67549, 0.67549, 0.49808, 0.54371)\n\nvec3 sineNoise(in vec3 p) {\n    vec3 q = p;\n    vec3 c = vec3(0);\n    float a = 1.;\n    for (int i = 0; i <6; i++){\n        q = m3 * q;\n        vec3 s = sin(q.zxy / a) * a;\n        q += s * _Twist;\n        c += s;\n        a *= _Falloff;\n    }\n    return c;\n}\n\nvec3 turbulence(vec3 p, float t) {\n    p *= _SpatialFrequency;\n    p += t;\n    return sineNoise(p) * _Amplitude;\n}\n\nvec3 hash33(vec3 p3) {\n    p3 = fract(p3 * vec3(.1031, .1030, .0973));\n    p3 += dot(p3, p3.yxz+33.33);\n    return fract((p3.xxy + p3.yxx)*p3.zyx);\n\n}\n\nvec3 startPosition(vec3 r) {\n    vec3 p = mix(vec3(-_TrackWidth, 0, _TrackStart), vec3(_TrackWidth, 0.15, _TrackEnd), abs(vec3(r.x, r.y, r.z*r.z)));\n    return p;\n}\n\n\nvec2 variance(float depth){\n    float moment2 = depth * depth;\n    //\tif(_AddDerivatives > .5){\n    //\t\t//this produces artifacts but it is included in most examples:\n    //\t\t//it does not seem to make a visible difference\n    //\t\t// Adjusting moments (this is sort of bias per pixel) using partial derivative\n    //\t\tfloat dx = dFdx(depth);\n    //\t\tfloat dy = dFdy(depth);\n    //\t\tmoment2 += 0.25*(dx*dx+dy*dy);\n    //\t}\n    return vec2(depth, moment2);\n}\n\n//https://http.download.nvidia.com/developer/presentations/2006/gdc/2006-GDC-Variance-Shadow-Maps.pdf\nfloat chebyshevUpperBound(vec2 uv, float distance)\n{\n    vec2 moments = texture(_ShadowMap, uv).rg;\n    float lit = step(moments.x, distance);\n    float variance = moments.y - (moments.x*moments.x);\n    variance = max(variance, _VarianceMin * _VarianceMin);\n    float d = moments.x - distance;\n    float p = variance /(variance + d * d);\n    //the smoothstep prevents some of the VSM artifacts on blurred depth textures\n    float s = smoothstep(_VSMBleedThreshold, 1., max(lit, p));\n    return s;\n}\n\nfloat light(vec3 p) {\n    vec4 screen = _LightViewProjection * vec4(p, 1.);\n    vec2 lightUV = screen.xy / screen.w;\n    if (max(abs(lightUV.x), abs(lightUV.y)) >= 1.) {\n        return 1.;\n    }\n    lightUV = lightUV * .5 + .5;\n    //the map stores world height offset by the centre of the scene window, see depth.fs.glsl\n    float l = chebyshevUpperBound(lightUV, clamp(p.y - _ShadowDepthWindow.x, -_ShadowDepthWindow.y, _ShadowDepthWindow.y));\n    return mix(1., l, _ShadowAmount);\n}\n\nvoid main(void) {\n    float phase = mod(abs(aData0.w) + _Time / _LifeTime, 1.);\n\n    vec3 r0 = aData0.xyz;\n    vec3 r1 = hash33(aData0.yzw);\n\n    vec3 p = startPosition(r0);\n\n    // back\n    p.z += phase * _WindZ * _LifeTime * (r0.y + 1.);\n    //side\n    p.x += phase * p.x * _WindX * _LifeTime* r1.x;\n    // up\n    p.y += phase * phase * _WindY * _LifeTime * r1.y;\n    p.y *= 1. - phase * mix(1., r1.z, .5);\n    p.x += _TrackSpacing * sign(aData0.x);\n\n\n    //\tp += turbulence(p - vec3(0,0,_Time), _Time) * phase * phase;\n\n    gl_Position = _ViewProjection * vec4(p, 1.);\n\n    float scale = (aData1.z + .5) * mix(1., 2., phase);\n    float size =_PointSize * scale;\n\n    gl_Position.xy += (aUV0 - .5) * vec2(1. / _AspectRatio, 1.) * size;\n\n    vOpacity = (1. - phase);\n    vOpacity *= vOpacity;\n    vOpacity *= _Opacity / scale;\n    vColor = light(p) * mix(_ColorA, _ColorB, aData1.x) * sqrt(aData1.y);\n\n    /*\tvec2 dist = abs(p.xz) - vec2(1.7, 2.6);\n        vColor *= mix(1., smoothstep(0., 1., length(max(dist, vec2(0)))), .7 * smoothstep(.1, 0., p.y)
2);*/\n\n    vUV = aUV0;\n}\n\n"},43784:function(e){"use strict";e.exports="#version 300 es\nprecision mediump float;\nout vec4 fragColor;\n\n\n#include includes/toneMap.glsl\n\nin vec2 vUV;\n\nuniform sampler2D _Texture;\nuniform float _Exposure;\n\nvoid main(void) {\n    vec3 c = texture(_Texture, vUV).rgb;\n    c *= _Exposure;\n    c = toneMap(c);\n    fragColor = vec4(c, 1.0);\n}\n\n"},78520:function(e){"use strict";e.exports="#version 300 es\nin vec3 aPos;\nin vec2 aUV0;\n\nout vec2 vUV;\n\nvoid main(void) {\n    vUV = aUV0;\n    gl_Position = vec4(aPos, 1.0);\n}\n\n"},64442:function(e){"use strict";e.exports="#version 300 es\nprecision highp float;\n\nuniform float _Slice;\n\nout vec4 fragColor;\nin vec2 vUV;\n\n#include includes/noise.glsl\n\nvoid main() {\n    vec4 col;\n\n    col.r = (.5+ .5*noisePerlin3D(vec3(vUV, _Slice), 7, 5.)) *\n    (.2+.8*noiseVoronoi3D(vec3(vUV, _Slice), 8, 9.));\n    //     col.r = noiseVoronoi3D( vec3( vUV, _Slice ), 1, 12. );\n    col.g = noiseVoronoi3D(vec3(vUV, _Slice), 3, 15.);\n    col.b = noiseVoronoi3D(vec3(vUV, _Slice), 3, 19.);\n    col.a = noiseVoronoi3D(vec3(vUV, _Slice), 3, 23.);\n\n    fragColor = vec4(col);\n}\n"},66794:function(e){"use strict";e.exports="#version 300 es\n\nlayout(location = 0) in vec3 aPos;\nlayout(location = 1) in vec2 aUV0;\n\nout vec3 vRay;\nout vec2 vUV;\n\nvoid main(void) {\n    vUV = aUV0;\n    gl_Position = vec4(aPos, 1.0);\n}\n"},23062:function(e){"use strict";e.exports="#version 300 es\nprecision highp float;\n\nuniform sampler2D iChannel0;\n\nout vec4 fragColor;\nin vec2 vUV;\n\n#include includes/noise.glsl\n\nvoid main() {\n    vec3 col = vec3(.5) + .5 * noiseCurl3D(vec3(vUV, 0.5), 2, 8.);\n\n    fragColor = vec4(col, 1.);\n}\n"},69926:function(e){"use strict";e.exports="#version 300 es\n\nlayout(location = 0) in vec3 aPos;\nlayout(location = 1) in vec2 aUV0;\n\nout vec3 vRay;\nout vec2 vUV;\n\nvoid main(void) {\n    vUV = aUV0;\n    gl_Position = vec4(aPos, 1.0);\n}\n"},8426:function(e){"use strict";e.exports="#version 300 es\nprecision highp float;\n\nuniform float _Slice;\n\nout vec4 fragColor;\nin vec2 vUV;\n\n#include includes/noise.glsl\n\nvoid main() {\n    vec3 col;\n\n    col.r = noiseVoronoi3D(vec3(vUV, _Slice), 16, 3.);\n    col.g = noiseVoronoi3D(vec3(vUV, _Slice), 4, 8.);\n    col.b = noiseVoronoi3D(vec3(vUV, _Slice), 4, 16.);\n\n    fragColor = vec4(1. - col, 1.);\n}\n"},9978:function(e){"use strict";e.exports="#version 300 es\n\nlayout(location = 0) in vec3 aPos;\nlayout(location = 1) in vec2 aUV0;\n\nout vec3 vRay;\nout vec2 vUV;\n\nvoid main(void) {\n    vUV = aUV0;\n    gl_Position = vec4(aPos, 1.0);\n}\n"},61554:function(e){"use strict";e.exports="#version 300 es\nprecision mediump float;\n\nin vec3 vWorld;\nin vec2 vUV;\n\nout vec4 fragColor;\n\nuniform sampler2D _Reflection;\nuniform sampler2D _HeightMap;\nuniform vec3 _CameraPosition;\nuniform vec4 _FogColor;\nuniform highp float _Scale;\n\nvoid main() {\n    vec2 coord = gl_FragCoord.xy * .5;\n    vec4 c = texelFetch(_Reflection, ivec2(coord), 0);\n\n    c.xyz = mix(_FogColor.xyz, c.xyz * .5, c.w);\n\n    vec3 v = normalize(vWorld - _CameraPosition);\n    float a = pow(1. - abs(dot(v, vec3(0., 1., 0.))), 3.);\n\n    a = a * .6 + .4;\n\n    float terrainHeight = texture(_HeightMap, vUV).w * _Scale;\n\n    //depth blend\n    a *= smoothstep(0., -0.1, terrainHeight);\n\n    fragColor = vec4(c.xyz, a);\n}\n"},40706:function(e){"use strict";e.exports="#version 300 es\n\nin vec3 aPos;\nin vec2 aUV0;\n\nuniform mat4 _ViewProjection;\nuniform mat4 _Model;\nuniform float _Scale;\nuniform float _Moved;\nuniform float _AspectRatio;\n\nout vec3 vWorld;\nout vec2 vUV;\n\nvoid main(void) {\n\tvec4 world = _Model * vec4(aPos, 1.0);\n\n\tgl_Position = _ViewProjection * world;\n\n\tvWorld = world.xyz;\n\n    vUV = aUV0 ;\n    vUV.y -= _Moved * .5 / _Scale;\n    vUV.y *= _AspectRatio;\n\n}\n\n"},97700:function(e){"use strict";e.exports="#version 300 es\nprecision highp float;\n\n// All three octaves of the ripple chop, summed into one tileable gradient and redrawn every\n// frame. What the ocean shader used to do per pixel, over the whole screen, it now does once\n// over a 512 square: about a thirtieth of the pixels at 4k, and what comes back costs the\n// water a single texture tap.\n/
2/\n// The reason this can be one texture at all is that it is small and repeats. A tile large\n// enough to cover the view would have to resolve the finest octave across eighty world units\n// and would run to thousands of texels a side; a tile of a dozen wavelengths, laid down over\n// and over, resolves the same detail in half a megapixel. The price is that the pattern\n// repeats every TILE_CELLS wavelengths, which is the one thing to look at if the water ever\n// starts reading as wallpaper.\n//\n// The reason it can be redrawn rather than baked once is dispersion. Each octave drifts at\n// sqrt(g * lambda / 2pi), so the three slide across each other and the sum is a function of\n// time as much as of position. Rebaking every frame keeps that exactly; freezing it would\n// turn the chop into a rigid pattern sliding across the water.\n\n#define TAU 6.283185307179586\n#define GRAVITY 0.981\n\n// octave 0 lattice cells across the tile, and so also the period of the hash below. it sets\n// both halves of the trade: the tile is this many wavelengths of world, and the finest octave\n// gets 512 / (5 * TILE_CELLS) texels per cell. at 12 that is a 10.8 unit tile at the default\n// wavelength and 8.5 texels on the finest octave, which is about the balance point at this\n// resolution. going up wants the texture to grow with it\n#define TILE_CELLS 12.\n\nin vec2 vUV;\n\nuniform highp float _Time;\nuniform float _DetailWavelength;\n\nout vec4 fragColor;\n\n// the frame octave i is sampled in, applied i times: a rotation of about 27 degrees together\n// with a scale of sqrt(5).\n//\n// the integer entries are the whole point. the octaves have to be sampled in different frames\n// or their lattices line up and reinforce into a visible grid, but an arbitrary rotation\n// destroys tileability: a field periodic on the texture's square is not periodic along a\n// rotated axis, and the seams show. an integer matrix maps the lattice onto itself, so\n// whatever tiled before the transform still tiles after it.\n//\n// it carries the octave scaling too, sqrt(5) ~ 2.24 per step, which lands within a few percent\n// of the 1 : .43 : .185 the per pixel loop used to step by hand\nconst mat2 OCTAVE = mat2(2., -1., 1., 2.);\n\n// a lattice corner gradient, uniform on the circle. this is the cost that drove the whole\n// exercise, and at a thirtieth of the pixels it is now cheap enough to pay properly: the sum\n// below asks for twelve of these, which was unaffordable per screen pixel and is nothing here\nvec2 gradientHash(vec2 p) {\n\t// wrapped to the tile before hashing, which is what makes the field periodic rather than\n\t// merely sampled inside a square. every octave's frame is an integer matrix, so a step of\n\t// TILE_CELLS in tile space is a whole number of cells in every octave and this wrap lines\n\t// up with all three at once\n\tp = mod(p, TILE_CELLS);\n\n\tvec3 p3 = fract(p.xyx * vec3(.1031, .1030, .0973));\n\tp3 += dot(p3, p3.yzx + 33.33);\n\tfloat a = fract((p3.x + p3.y) * p3.z) * TAU;\n\n\treturn vec2(cos(a), sin(a));\n}\n\n// gradient noise with analytic derivatives, https://iquilezles.org/articles/gradientnoise/\n// returns (value remapped to roughly 0..1, d/dx, d/dy)\nvec3 noised(vec2 x) {\n\tvec2 i = floor(x);\n\tvec2 f = fract(x);\n\n\tvec2 u = f * f * f * (f * (f * 6. - 15.) + 10.);\n\tvec2 du = 30. * f * f * (f * (f - 2.) + 1.);\n\n\tvec2 ga = gradientHash(i);\n\tvec2 gb = gradientHash(i + vec2(1., 0.));\n\tvec2 gc = gradientHash(i + vec2(0., 1.));\n\tvec2 gd = gradientHash(i + vec2(1., 1.));\n\n\tfloat va = dot(ga, f);\n\tfloat vb = dot(gb, f - vec2(1., 0.));\n\tfloat vc = dot(gc, f - vec2(0., 1.));\n\tfloat vd = dot(gd, f - vec2(1., 1.));\n\n\tfloat k1 = vb - va;\n\tfloat k2 = vc - va;\n\tfloat k3 = va - vb - vc + vd;\n\n\tvec2 d = ga + u.x * (gb - ga) + u.y * (gc - ga) + u.x * u.y * (ga - gb - gc + gd)\n\t+ du * (u.yx * k3 + vec2(k1, k2));\n\n\treturn vec3((va + k1 * u.x + k2 * u.y + k3 * u.x * u.y) * .7 + .5, d * .7);\n}\n\nvoid main(void) {\n\t// world position inside one tile. the tile is TILE_CELLS of the coarsest octave across, so\n\t// its world size follows the wavelength slider and the ocean divides by the same number\n\tvec2 p = vUV * (TILE_CELLS * _DetailWavelength);\n\tp.y -= _Time;\n\n\tvec2 dirs[3] = vec2[3](vec2(.80, .60), vec2(-.57, .82), vec2(.95, -.31));\n\n\tvec2 g = vec2(0.);\n\tmat2 frame = mat2(1., 0., 0., 1.);\n\t// the octave's own wavelength, tracked separately from the frame because the dispersion\n\t// relation wants it even though the frame is what applies the scale\n\tfloat lambda = _DetailWavelength;\n\tfloat amp = 1.;\n\n\tfor (int i = 0; i < 3;
2 i++) {\n\t\tfloat speed = sqrt(GRAVITY * lambda / TAU);\n\t\t// the drift is a translation of p, so it cannot break the tiling however far it runs\n\t\tvec3 n = noised(frame * (p - dirs[i] * (speed * _Time)) / _DetailWavelength);\n\t\t// chain rule back out of the frame: d/dp of noise(frame * p) is frame transposed times\n\t\t// the gradient, and `n.yz * frame` is exactly that. dividing by the base wavelength\n\t\t// rather than this octave's is right because the frame already carries the scaling\n\t\tg += (n.yz * frame) * (amp / _DetailWavelength);\n\n\t\tframe = OCTAVE * frame;\n\t\tlambda /= sqrt(5.);\n\t\tamp *= .62;\n\t}\n\n\t// no footprint fade here. it was per octave and per pixel because there was nowhere else\n\t// to put it; now the mip chain does the same job better, averaging away whatever the pixel\n\t// cannot resolve without having to be told the wavelength\n\tfragColor = vec4(g, 0., 1.);\n}\n"},99284:function(e){"use strict";e.exports="#version 300 es\nin vec3 aPos;\nin vec2 aUV0;\n\nout vec2 vUV;\n\nvoid main(void) {\n\tvUV = aUV0;\n\tgl_Position = vec4(aPos, 1.0);\n}\n"},60734:function(e){"use strict";e.exports="precision highp float;\n\n#include includes/toneMap.glsl\n#include includes/light.glsl\n\n#version 300 es\nlayout(location = 0) out vec4 fragColor;\n#define texCube(s, uv) texture(s, uv)\n\nin vec2 vUV;\nin vec3 vWorld;\nin vec3 vNormal;\nin vec3 vLocal;\n\nuniform vec3 _Albedo;\nuniform float _Roughness;\n\nuniform float _MaxLod;\nuniform sampler2D _brdfLUT;\nuniform samplerCube _IrradianceMap;\nuniform samplerCube _PrefilterMap;\n\nuniform vec3 _CamPos;\nuniform float _Exposure;\nuniform mat4 _LightViewProjection;\nuniform vec3 _LightDirection;\nuniform sampler2D _ShadowMap;\nuniform vec2 _ShadowDepthWindow;\nuniform float _VarianceMin;\nuniform float _VSMBleedThreshold;\nuniform float _SunStrength;\n\nuniform highp float _Scale;\nuniform float _DrawDepth;\nuniform vec4 _FogColor;\n\nuniform sampler2D _AlbedoMap;\n\n// Standard Fresnel for kD/kS split\nvec3 fresnelSchlick(float cosTheta, vec3 F0) {\n    return F0 + (1.0 - F0) * pow(clamp(1.0 - cosTheta, 0.0, 1.0), 5.0);\n}\n\nvec3 modifiedFresnel(float cosTheta, vec3 F0, float roughness) {\
2n    return F0 + (max(vec3(1.0 - roughness), F0) - F0) * pow(clamp(1.0 - cosTheta, 0.0, 1.0), 5.0);\n}\n\nvec3 getSpecularLightColor(vec3 N, float lod) {\n    return textureLod(_PrefilterMap, N, lod).rgb;\n}\n\nvec3 getDiffuseLightColor(vec3 N) {\n    return textureLod(_IrradianceMap, N, 0.).rgb;\n}\n\nvec3 heightBlend(vec3 c){\n    float muddyness = smoothstep(.3, -0.1, vWorld.y);\n    vec3 blendColor = mix(vec3(.08, .09, .06), vec3(.07, .05, .02),muddyness);\n    return mix(blendColor, c, smoothstep(-.1, .8, vWorld.y));\n}\n\n//https://http.download.nvidia.com/developer/presentations/2006/gdc/2006-GDC-Variance-Shadow-Maps.pdf\nfloat chebyshevUpperBound(vec2 uv, float distance)\n{\n    vec2 moments = texture(_ShadowMap, uv).rg;\n    float lit = step(moments.x, distance);\n    float variance = moments.y - moments.x * moments.x;\n    variance = max(variance, _VarianceMin * _VarianceMin);\n    float d = moments.x - distance;\n    float p = variance /(variance + d * d);\n    //the smoothstep prevents some of the VSM artifacts on blurred depth textures\n    return smoothstep(_VSMBleedThreshold, 1., max(lit, p));\n}\n\nfloat light(vec3 n, vec3 lightDir) {\n    vec4 screen = _LightViewProjection * vec4(vWorld, 1.);\n    vec2 lightUV = screen.xy / screen.w;\n    float penumbra = smoothstep(1., .8, length(lightUV));\n    if (penumbra == 0.) {\n        return 1.;\n    }\n    lightUV = lightUV * .5 + .5;\n    float l = chebyshevUpperBound(lightUV, shadowDepth(vWorld.y, _ShadowDepthWindow));\n    l = mix(1., l, penumbra);\n//    return l;\n    return penumbra;\n}\n\nvoid main(){\n    if (_DrawDepth > .5){\n        float d = shadowDepth(vWorld.y, _ShadowDepthWindow);\n        fragColor = vec4(d, d * d, 0., 1.);\n        return;\n    }\n\n    vec3 albedo = gammaToLinear(texture(_AlbedoMap, vUV).rgb);\n    albedo *= vec3(.9, .7, .5);\n\n//    albedo = heightBlend(albedo);\n\n//    float roughness = (1.-albedo.r);\n    float roughness = .9;\n    float metallic = 0.;\n\n    vec3 N = normalize(vNormal);\n\n    vec3 V      = normalize(_CamPos - vWorld);// vector to eye in world space\n    vec3 R      = reflect(-V, N);\n    float NdotV = max(0.0, dot(N, V));\n\n    vec3 F0 = mix(vec3(0.04), albedo, metallic);\n\n    vec3 F = fresnelSchlick(NdotV, F0);\n    vec3 F_roughness = modifiedFresnel(NdotV, F0, roughness);\n\n    vec3 prefilteredColor = getSpecularLightColor(R, roughness * _MaxLod).rgb;\n\n    vec2 envBRDF = texture(_brdfLUT, vec2(NdotV, roughness)).rg;\n\n    vec3 specular = prefilteredColor * (F_roughness * envBRDF.x + envBRDF.y);\n\n    vec3 kD = vec3(1.0) - F;\n\n    kD *= 1.0 - metallic;\n\n    vec3 irradiance = getDiffuseLightColor(N).rgb;\n    vec3 diffuse = kD * albedo * irradiance;\n\n    vec3 color = diffuse + specular;\n\n//    float l = light(N, _LightDirection);\n    vec3 sunLight = directionalLight(N, V, F0, albedo, metallic, roughness, _LightDirection, _SunStrength, vec3(1., .75, .5));\n    color += sunLight;\n\n    float a = smoothstep(1., .5, length(vWorld.xz) / _Scale);\n    color = mix(_FogColor.rgb, color, a);\n\n    fragColor = vec4(color, smoothstep(0., .3, vLocal.y));\n}\n\n\n"},85294:function(e){"use strict";e.exports="#version 300 es\n\nin vec3 aPos;\nin vec3 aNormal;\nin vec2 aUV0;\n\nuniform sampler2D _NormalHeightMap;\nuniform mat4 _ViewProjection;\nuniform float _Moved;\nuniform float _Scale;\nuniform float _AspectRatio;\nuniform float _RockType;\n\nout vec3 vWorld;\nout vec3 vNormal;\nout vec2 vUV;\nout vec3 vLocal;\n\nmat2 rotation(float a){\n    float c = cos(a);\n    float s = sin(a);\n    return mat2(c, -s, s, c);\n}\n\nvec2 rotate(vec2 v, float a){\n    float c = cos(a);\n    float s = sin(a);\n    return vec2(v.x * c - v.y * s, v.x * s + v.y * c);\n}\n\nvec4 hash42(vec2 p)\n{\n    vec4 p4 = fract(vec4(p.xyxy) * vec4(.1031, .1030, .0973, .1099));\n    p4 += dot(p4, p4.wzxy+33.33);\n    return fract((p4.xxyz+p4.yzzw)*p4.zywx);\n}\n\nvoid main(void) {\n    vec4 h = hash42(vec2(float(gl_InstanceID), _RockType));\n\n    vec3 p = vec3(h.x, 0, h.y);\n    p.z += _Moved * .5 / _Scale;\n    p.z = fract(p.z);\n    p.xz = p.xz * 2. - 1.;\n    p *= _Scale;\n\n    vec3 local = aPos;\n    mat2 r = rotation(h.z * 6.283185318);\n    local.xz = r * local.xz;\n\n    float scale = .2 + h.w * .6;\n    //no big rocks on the road\n    if(abs(p.x) < 3.) scale = .1;\n\n    vec4 world = vec4(p +local * scale, 1.0);\n    vUV = aUV0;\n\n    vec2 uv = p.xz;\n    uv.y -= _Moved ;\n    uv /= _Scale;\n    uv = uv * 0.5 + 0.5;\n    uv.y *= _AspectRatio;\n    vec4 normalHeight = texture(_NormalHeightMap, uv);\n\n    world.y += normalHeight.w * _Scale / 2.;\n\n    vNormal = aNormal;\n    vNormal.xz = r * vNormal.xz;\n\n    vWorld = world.xyz;\n\n    vLocal = aPos;\n\n    gl_Position = _ViewProjection * world;\n}\n"},85148:function(e){"use strict";e.exports="precision highp float;\n\n#include includes/toneMap.glsl\n#include includes/light.glsl\n\n#version 300 es\nlayout(location = 0) out vec4 fragColor;
2\n#define texCube(s, uv) texture(s, uv)\n\nin vec3 vWorld;\nin vec3 vNormal;\nin vec2 vUV;\n\nuniform vec3 _Albedo;\nuniform float _Roughness;\n\nuniform float _MaxLod;\nuniform sampler2D _brdfLUT;\nuniform samplerCube _IrradianceMap;\nuniform samplerCube _PrefilterMap;\n\nuniform sampler2D _MicroNormal;\n\nuniform vec3 _CamPos;\nuniform mat4 _LightViewProjection;\nuniform vec3 _LightDirection;\nuniform sampler2D _ShadowMap;\nuniform vec2 _ShadowDepthWindow;\nuniform float _VarianceMin;\nuniform float _VSMBleedThreshold;\nuniform float _SunStrength;\n\nuniform float _TrackSpacing;\nuniform float _TrackWidth;\nuniform float _TrackStart;\nuniform float _TrackEnd;\nuniform highp float _Scale;\nuniform float _DrawDepth;\nuniform float _MipBias;\nuniform float _NoiseNormal;\nuniform float _SparklePower;\nuniform float _SparkleAmount;\nuniform float _SparkleMipBias;\nuniform sampler2D _Noise;\nuniform vec4 _FogColor;\n\n// Standard Fresnel for kD/kS split\nvec3 fresnelSchlick(float cosTheta, vec3 F0) {\n    return F0 + (1.0 - F0) * pow(clamp(1.0 - cosTheta, 0.0, 1.0), 5.0);\n}\n\nvec3 modifiedFresnel(float cosTheta, vec3 F0, float roughness) {\
2n    return F0 + (max(vec3(1.0 - roughness), F0) - F0) * pow(clamp(1.0 - cosTheta, 0.0, 1.0), 5.0);\n}\n\nvec3 getSpecularLightColor(vec3 N, float lod) {\n    return textureLod(_PrefilterMap, N, lod).rgb;\n}\n\nvec3 getDiffuseLightColor(vec3 N) {\n    return textureLod(_IrradianceMap, N, 0.).rgb;\n}\n\n//https://http.download.nvidia.com/developer/presentations/2006/gdc/2006-GDC-Variance-Shadow-Maps.pdf\nfloat chebyshevUpperBound(vec2 uv, float distance)\n{\n    vec2 moments = texture(_ShadowMap, uv).rg;\n    float lit = step(moments.x, distance);\n    float variance = moments.y - moments.x * moments.x;\n    variance = max(variance, _VarianceMin * _VarianceMin);\n    float d = moments.x - distance;\n    float p = variance /(variance + d * d);\n    //the smoothstep prevents some of the VSM artifacts on blurred depth textures\n    return smoothstep(_VSMBleedThreshold, 1., max(lit, p));\n}\n\nfloat light(vec3 n, vec3 lightDir) {\n    vec4 screen = _LightViewProjection * vec4(vWorld, 1.);\n    vec2 lightUV = screen.xy / screen.w;\n    float penumbra = smoothstep(1., .5, length(lightUV));\n    if (penumbra == 0.) {\n        return 1.;\n    }\n    lightUV = lightUV * .5 + .5;\n    float l = chebyshevUpperBound(lightUV, shadowDepth(vWorld.y, _ShadowDepthWindow));\n    l = mix(1., l, penumbra);\n    return l;\n}\n\nvoid main(){\n    if (_DrawDepth > .5){\n        float d = shadowDepth(vWorld.y, _ShadowDepthWindow);\n        fragColor = vec4(d, d * d, 0., 1.);\n        return;\n    }\n    vec2 noiseUv = vUV;\n\n    float noise = texture(_Noise, noiseUv, _MipBias).r;\n\n    vec3 albedo = vec3((noise * .5 + .5) * gammaToLinear(_Albedo));\n\n    float roughness = _Roughness;\n    float metallic = 0.;\n\n    //\tfloat track = smoothstep(_TrackWidth * 1.3, _TrackWidth * .8, abs(abs(vWorld.x) -_TrackSpacing)) * mix(.75, 1., smoothstep(0.0, 0.06, abs(mod(vWorld.z, 0.1)-0.1)));\n    float track = smoothstep(_TrackWidth * 1.3, _TrackWidth * .8, abs(abs(vWorld.x) -_TrackSpacing)) * (sin(vUV.y * 500.) * .5 + .5) * smoothstep(20., 8., vWorld.z);\n\n    // calculate lighting params\n    vec3 noise1 = texture(_Noise, noiseUv, -1.).yzw;\n    vec3 microNormal = texture(_MicroNormal, vUV * 2. ).xyz * ((1. - track) * .05);\n\n    //\tvec3 N      = normalize(vNormal + vec3(0,noise * _NoiseNormal,0));\n    vec3 N      = normalize(vNormal + (noise1 - .5) * _NoiseNormal + microNormal);\n    vec3 V      = normalize(_CamPos - vWorld);// vector to eye in world space\n    vec3 R      = reflect(-V, N);\n    float NdotV = max(0.0, dot(N, V));\n\n    vec3 F0 = mix(vec3(0.04), albedo, metallic);\n\n    vec3 F = fresnelSchlick(NdotV, F0);\n    vec3 F_roughness = modifiedFresnel(NdotV, F0, roughness);\n\n    vec3 prefilteredColor = getSpecularLightColor(R, roughness * _MaxLod).rgb;\n\n    vec2 envBRDF = texture(_brdfLUT, vec2(NdotV, roughness)).rg;\n\n    vec3 specular = prefilteredColor * (F_roughness * envBRDF.x + envBRDF.y);\n\n    vec3 kD = vec3(1.0) - F;\n\n    kD *= 1.0 - metallic;\n\n    vec3 irradiance = getDiffuseLightColor(N).rgb;\n    vec3 diffuse = kD * albedo * irradiance;\n\n    vec3 color = diffuse + specular;\n\n    float l = light(N, _LightDirection);\n    vec3 sun = directionalLight(N, V, F0, albedo, metallic, roughness, _LightDirection, _SunStrength, vec3(1., .75, .5));\n    color += l * sun;\n\n    float noiseNoMip = texture(_Noise, noiseUv, _SparkleMipBias).r;\n    color += smoothstep(1. - _SparkleAmount, 1., noiseNoMip) * 10. * l *  pow(max(dot(N, _LightDirection), 0.), _SparklePower);\n\n    color *= mix(1., .7, track * step(0., vWorld.z));\n\n    float ao = smoothstep(abs(_TrackStart) * 1.5, abs(_TrackStart), abs(vWorld.z));\n    ao *= smoothstep(_TrackSpacing * 1.5, _TrackSpacing, abs(vWorld.x));\n    color *= 1. - ao * .5;\n\n    float wl = length(vWorld.xz);\n    float a = smoothstep(1., .5, wl / _Scale);\n\n    color = mix(_FogColor.rgb, color, a);\n\n    fragColor = vec4(color, 1.);\n}\n\n\n"},86796:function(e){"use strict";e.exports="#version 300 es\n\nin vec3 aPos;\nin vec3 aNormal;\nin vec2 aUV0;\n\n#include includes/dunes.glsl\n\nuniform sampler2D _NormalHeightMap;\nuniform float _AspectRatio;\nuniform mat4 _ViewProjection;\nuniform float _Scale;\nuniform float _Moved;\nuniform float _Tiling;\n\n\nout vec3 vWorld;\nout vec3 vNormal;\nout vec2 vUV;\n\nvec3 hash33(vec3 p3)\n{\n    p3 = fract(p3 * vec3(.1031, .1030, .0973));\n    p3 += dot(p3, p3.yxz+33.33);\n    return fract((p3.xxy + p3.yxx)*p3.zyx);\n}\n\nvoid main(void) {\n    #define TERRAIN_SEGMENTS 255.\n    vec4 world = vec4(aPos * _Scale, 1.0);\n    float distPerSegment = _Scale * 2. / TERRAIN_SEGMENTS;\n    float movedJump = mod(_Moved, distPerSegment);\n    vec3 wp = vec3(world.x, 0., world.z - _Moved + movedJump);\n    world.z += movedJump;\n    vUV = aUV0;\n    vUV.y -= (_Moved - movedJump) / _Scale / 2.;\n\n    vec2 uv = vUV;\n    uv.y *= _AspectRatio;\n    vec4 dunes = texture(_NormalHeightMap, uv);\n    //\tvec4 dunes = duneNormalHeight(q);\n\n    world.y = dunes.w * _Scale / duneFrequency;\n    vNormal = dunes.xyz;\n    vWorld = world.xyz;\n    vUV *= _Tiling;\n\n    gl_Position = _ViewProjection * world;\n}\n"},79866:function(e){"use strict";e.exports="precision highp float;\n\n#version 300 es\nlayout(location = 0) out vec4 fragColor;
2\n#define texCube(s, uv) texture(s, uv)\n\nin vec3 vWorld;\nin vec3 vNormal;\n\nuniform samplerCube _Skybox;\n\nuniform vec3 _CamPos;\n\n#ifdef HORIZON_FALLOFF\n#include includes/horizonHaze.glsl\nuniform float _HorizonFalloff;\nuniform vec3 _HorizonColor;\n#endif\n\nvoid main(){\n    vec3 dir = normalize(vNormal);\n    vec3 color = texture(_Skybox, dir).xyz;\n\n    #ifdef HORIZON_FALLOFF\n    vec3 haze = horizonHazeColor(_Skybox, dir, _HorizonFalloff, _HorizonColor);\n    color = mix(color, haze, horizonHazeAmount(dir, _HorizonFalloff));\n    #endif\n\n    fragColor = vec4(color, 1.);\n}\n\n\n"},61962:function(e){"use strict";e.exports="#version 300 es\n\nin vec3 aPos;\nin vec3 aNormal;\nin vec2 aUV0;\n\nuniform mat4 _ViewProjection;\nuniform vec3 _CamPos;\n\nout vec3 vWorld;\nout vec3 vNormal;\n\nvoid main(void) {\n    vec4 world = vec4(_CamPos + aPos, 1.0);\n\n    vNormal = aPos;\n\n    vWorld = world.xyz;\n\n    gl_Position = _ViewProjection * world;\n}\n"},16202:function(e){"use strict";e.exports="//\n// VSM depth pass for SpotLight.\n//\n// The directional 'depth' shader stores the world height, which only works for a light that is\n// (roughly) above the scene. A spotlight sits anywhere, so the distance to the light is stored\n// instead.\n//\n// That distance is mapped onto a window that just contains the model - _SpotDepthWindow is\n// (near, 1 / (far - near)) for the model's bounding sphere seen from the light - and then shifted\n// to [-.5, .5]. Both steps earn their keep on RG16F: the reader recovers the variance as\n// E[d2] - E[d]2, a subtraction of two nearly equal numbers, and half float has only ~3 digits to\n// spend on it. Filling the window is worth ~7x in the surviving noise, centring it on zero another\n// ~4x. Neither does anything for the shadow on RG32F, which has digits to spare.\n//\n\n#version 300 es\n\nprecision highp float;\n\nout vec4 fragColor;\n\nin vec3 vWorld;\n\nuniform vec3 _SpotPosition;\nuniform vec2 _SpotDepthWindow;\n\nvoid main(void) {\n    //clamped so anything outside the window cannot poison the moments the blur spreads around\n    float d = clamp((length(vWorld - _SpotPosition) - _SpotDepthWindow.x) * _SpotDepthWindow.y, 0., 1.) - .5;\n    fragColor = vec4(d, d * d, 0., 0.);\n}\n"},8186:function(e){"use strict";e.exports="#version 300 es\n\nlayout(location = 0) in vec3 aPos;\n\nout vec3 vWorld;\n\nuniform mat4 _ViewProjection;\nuniform mat4 _Model;\n\nvoid main(void) {\n    vec4 world = _Model * vec4(aPos, 1);\n    vWorld = world.xyz;\n    gl_Position = _ViewProjection * world;\n}\n"},54226:function(e){"use strict";e.exports="#version 300 es\nprecision highp float;\nout vec4 fragColor;\n\nin vec2 vUV;\n\nuniform sampler2D _Texture;\nuniform vec2 _BlurDir;\n\nvec2 ts(vec2 uv)\n{\n    return texture(_Texture, uv).xy;\n}\n\nuniform float _Weights[HALF_FILTER_WIDTH];\nuniform float _Offsets[HALF_FILTER_WIDTH];\n\n//https://software.intel.com/en-us/blogs/2014/07/15/an-investigation-of-fast-real-time-gpu-based-image-blur-algorithms\nvec2 blurInterpolated(in vec2 uv)\n{\n    vec2 sum = vec2(0.);\n    for (int i = 0; i < HALF_FILTER_WIDTH; i++)\n    {\n        vec2 o = _Offsets[i] * _BlurDir;\n        sum += _Weights[i] * (ts(uv + o) + ts(uv - o));\n    }\n    return sum;\n}\n\nvoid main(void) {\n    fragColor = vec4(blurInterpolated(vUV), 0., 0.);\n}\n"},24098:function(e){"use strict";e.exports="#version 300 es\nprecision mediump float;\n\nin vec3 aPos;\nin vec2 aUV0;\n\nout vec2 vUV;\n\nvoid main(void) {\n    vUV = aUV0;\n    gl_Position = vec4(aPos, 1.0);\n}\n"},14438:function(e){"use strict";e.exports="//\n// GOD shader - optional defines:\n//\n// USE_ROUGHNESS\n// USE_METALLIC\n// USE_EMISSIVE\n//\n// USE_ALBEDO_VALUE\n// USE_ROUGHNESS_VALUE\n// USE_METALLIC_VALUE\n// USE_EMISSIVE_VALUE\n//\n// USE_NORMAL_MAP\n// USE_AO_MAP\n//\n// USE_UV1_FOR_AO_MAP       ( use UV1 channel (instead of UV0) for AO texture lookup )\n// HDR_OUTPUT               ( don't tonemap hdr result )\n// SCALE_UV0                ( scale UV0 by uniform _UV0Scale }\n//\n// GLASS            ( for glass like materials )\n// TRANSPARENT      ( if you want to use alpha channel of albedo map )\n//\n// defines handeld by PbrMaterial:\n//\n// NO_LOD_EXTENSION ( fallback for devices that don't support lod extension )\n// LDR_MAPS         ( fallback for devices that don't support float textures )\n// NO_BDRF_LUT      ( don't use bdrf lut - use magic formula 
2instead )\n//\n\nprecision mediump float;\n\n#include includes/toneMap.glsl\n#include includes/light.glsl\n\n#version 300 es\nlayout(location = 0) out vec4 fragColor;\n#define texCube(s, uv) texture(s, uv)\n\nin vec3 vWorld;\nin vec3 vWorldNormal;\nin vec2 vUV;\nin vec2 vUVLightmap;\n\nuniform sampler2D _LightMap;\nuniform vec4 _FogColor;\n\n#ifdef DEBUG_ENABLED\nuniform float _DebugMap;\n#endif\n\n#ifdef USE_ALBEDO_MAP\nuniform sampler2D _AlbedoMap;\n#endif\nuniform vec3 _Albedo;\n\n#ifdef USE_ALBEDO_MAP_BLENDED\nuniform sampler2D _AlbedoMap2;\n#endif\n\n#ifdef USE_ALPHA_MAP\nuniform sampler2D _AlphaMap;\n#endif\nuniform float _AlphaValue;\n\n#ifdef USE_ROUGHNESS\n#ifdef USE_ROUGHNESS_MAP\nuniform sampler2D _RoughnessMap;\n#else\nuniform float _Roughness;\n#endif\n#endif\n\n#ifdef USE_METALLIC\n#ifdef USE_METALLIC_MAP\nuniform sampler2D _MetallicMap;\n#else\nuniform float _Metallic;\n#endif\n#endif\n\n#ifdef USE_EMISSIVE\n#ifdef USE_EMISSIVE_VALUE\nuniform vec3 _Emissive;\n#else\nuniform sampler2D _EmissiveMap;\n#endif\n#endif\n\n#ifdef USE_NORMAL_MAP\nuniform sampler2D _NormalMap;\nin mat3 vTBN;\n#endif\n\n#ifdef USE_NORMAL_MAP_BLENDED\nuniform sampler2D _NormalMap2;\n#endif\n\n#ifdef USE_UV1_FOR_AO_MAP\nin vec2 vUV1;\n#endif\n\nuniform float _MaxLod;\nuniform sampler2D _brdfLUT;\nuniform samplerCube _IrradianceMap;\nuniform samplerCube _PrefilterMap;\n\nuniform vec3 _CamPos;\nuniform float _Additive;\nuniform float _Exposure;\n\nuniform mat4 _LightViewProjection;\nuniform vec3 _LightDirection;\nuniform sampler2D _ShadowMap;\nuniform vec2 _ShadowDepthWindow;\nuniform float _VarianceMin;\nuniform float _VSMBleedThreshold;\nuniform float _LightMapAmount;\nuniform float _SunStrength;\nuniform float _F;\n\n#ifdef AFTERBURNER\nuniform float _Moved;\n#endif\n\n#ifdef WHEEL\nuniform float _TrackSpacing;\nuniform float _TrackWidth;\n#endif\n\n// Standard Fresnel for kD/kS split\nvec3 fresnelSchlick(float cosTheta, vec3 F0) {\n    return F0 + (1.0 - F0) * pow(clamp(1.0 - cosTheta, 0.0, 1.0), 5.0);\n}\n\nvec3 modifiedFresnel(float cosTheta, vec3 F0, float roughness) {\
2n    return F0 + (max(vec3(1.0 - roughness), F0) - F0) * pow(clamp(1.0 - cosTheta, 0.0, 1.0), 5.0);\n    //\tfloat f = pow(1.0 - cosTheta, 5.0);\n    //\treturn F0 + (max(vec3(1.-roughness), F0) - F0) * f;\n    //\treturn F0 + ((vec3(1.) - F0) * (1. - roughness)) * f;\n}\n\nvec3 getNormal() {\n    #ifdef USE_NORMAL_MAP\n    vec3 tl = texture(_NormalMap, vUV).xyz;\n    vec3 nm = tl * 2. - 1.;\n    return normalize(vTBN * nm);\n    #else\n    return normalize(vWorldNormal);\n    #endif\n}\n\nvec3 getSpecularLightColor(vec3 N, float lod) {\n    return textureLod(_PrefilterMap, N, lod).rgb;\n}\n\nvec3 getDiffuseLightColor(vec3 N) {\n    return textureLod(_IrradianceMap, N, 0.).rgb;\n}\n\n//https://http.download.nvidia.com/developer/presentations/2006/gdc/2006-GDC-Variance-Shadow-Maps.pdf\nfloat chebyshevUpperBound(vec2 uv, float distance)\n{\n    vec2 moments = texture(_ShadowMap, uv).rg;\n    float lit = step(moments.x, distance);\n    float variance = moments.y - (moments.x*moments.x);\n    variance = max(variance, _VarianceMin * _VarianceMin);\n    float d = moments.x - distance;\n    float p = variance /(variance + d * d);\n    //the smoothstep prevents some of the VSM artifacts on blurred depth textures\n    return smoothstep(_VSMBleedThreshold, 1., max(lit, p));\n}\n\nfloat light(vec3 n, vec3 lightDir) {\n    vec4 screen = _LightViewProjection * vec4(vWorld, 1.);\n    vec2 lightUV = screen.xy / screen.w;\n    if (max(abs(lightUV.x), abs(lightUV.y)) >= 1.) {\n        return 1.;\n    }\n    lightUV = lightUV * .5 + .5;\n    float l = chebyshevUpperBound(lightUV, shadowDepth(vWorld.y, _ShadowDepthWindow));\n    //prevents light leakage from blurred shadow map lighting surfaces that point away from the light\n    l *= smoothstep(.05, -.05, dot(n, -lightDir));\n    return l;\n}\n\nvoid main(){\n    #ifdef DEPTH_ONLY\n    float d = shadowDepth(vWorld.y, _ShadowDepthWindow);\n    fragColor = vec4(d, d * d, 0., 0.);\n    #else\n\n    vec3 albedo = gammaToLinear(_Albedo);\n\n/*    #ifdef PILOT\n    albedo = vec3(.5);\n    #endif*/\n\n    #ifdef USE_ALPHA_MAP\n    float alpha = texture(_AlphaMap, vUV).g;\n    if (alpha < 0.5) {\n        discard;\n    }\n    #else\n    float alpha = 1.;
2\n    #endif\n    alpha *= _AlphaValue;\n\n    #ifdef USE_ALBEDO_MAP\n    #ifdef TRANSPARENT\n    #ifdef USE_ALPHA_MAP\n    albedo *= gammaToLinear(texture(_AlbedoMap, vUV).rgb);\n    #else\n    vec4 albedoLookup = texture(_AlbedoMap, vUV);\n    albedo *= gammaToLinear(albedoLookup.rgb);\n    alpha *= albedoLookup.a;\n    /*\t\t\t\tif (alpha < 0.5) {\n                        discard;\n                    }*/\n    #endif\n    #else\n    albedo *= gammaToLinear(texture(_AlbedoMap, vUV).rgb);\n    #endif\n    #endif\n\n    #ifdef UNLIT\n    vec4 c = vec4(albedo, 1.);\n    #else\n\n    #ifdef USE_ROUGHNESS\n    #ifdef USE_ROUGHNESS_MAP\n    float roughness = texture(_RoughnessMap, vUV).r;\n    #else\n    float roughness = _Roughness;\n    #endif\n    #else\n    float roughness = .95;\n    #endif\n    #ifdef USE_METALLIC\n    #ifdef USE_METALLIC_MAP\n    float metallic = texture(_MetallicMap, vUV).r;\n    #else\n    float metallic = _Metallic;\n    #endif\n    #else\n    float metallic = 0.;\n    #endif\n\n    #ifdef USE_EMISSIVE\n    #ifdef USE_EMISSIVE_MAP\n    vec3 emissive = texture(_EmissiveMap, vUV).rgb;\n    #else\n    vec3 emissive = _Emissive;\n    #endif\n    #else\n    vec3 emissive = vec3(0.);\n    #endif\n\n    // calculate lighting params\n    vec3 N      = getNormal();\n    vec3 V      = normalize(_CamPos - vWorld);// vector to eye in world space\n    vec3 R      = reflect(-V, N);\n    float NdotV = max(0.0, dot(N, V));\n\n    float l = light(N, _LightDirection);\n\n    vec3 F0 = mix(vec3(0.04), albedo, metallic);\n\n    vec3 F = modifiedFresnel(NdotV, F0, roughness);\n\n    //counter aliasing\n    /*\t#ifdef USE_NORMAL_MAP\n            vec3 R2 = reflect(-V, normalize(vWorldNormal));\n             float curvature = length(fwidth(R2));\n        #else\n             float curvature = length(fwidth(R));\n        #endif\n         roughness = clamp(max(curvature * 1., roughness), 0., 1.);*/\n\n    vec3 prefilteredColor = getSpecularLightColor(R, roughness * _MaxLod).rgb;\n\n    vec2 envBRDF = texture(_brdfLUT, vec2(NdotV, roughness)).rg;\n\n    vec3 specular = prefilteredColor * (F * envBRDF.x + envBRDF.y);\n\n    vec3 kD = vec3(1.0) - F;\n\n    kD *= 1.0 - metallic;\n\n    vec3 irradiance = getDiffuseLightColor(N).rgb;\n    vec3 diffuse = kD * albedo * irradiance;\n\n    //less specular in shadowed areas\n    vec3 color = diffuse + specular * (l * .6 + .4);\n\n    //uncomment back when figured out what it does\n    //\tvec2 dist = abs(vWorld.xz) - vec2(1.7, 2.6);\n    //\tcolor *= mix(1., smoothstep(0., 1., length(max(dist, vec2(0)))), .7 * smoothstep(.1, 0., vWorld.y));\n\n    color += l * directionalLight(N, V, F0, albedo, metallic, roughness, _LightDirection, _SunStrength, vec3(1., .75, .5));\n\n    #ifdef GLASS\n    alpha *= 1. - F.x;\n    color = kD * diffuse * alpha + specular;\n    #endif\n    //\n    #ifndef TRANSPARENT\n    #ifdef LIGHTMAP\n    float lm = texture(_LightMap, vUVLightmap).r;\n    #ifdef FLOOR\n    color *= lm * lm;\n    #else\n    color *= mix(1., lm, _LightMapAmount);\n    #endif\n    #endif\n    #endif\n\n    #ifdef WHEEL\n    //fake AO for wheels\n    float wheelAO = abs(N.x) * .5 + .5;\n    wheelAO *= smoothstep(- _TrackWidth* 1.5, _TrackWidth, abs(vWorld.x) - _TrackSpacing);\n    color *= wheelAO;\n    #endif\n\n    #ifdef TRANSPARENT\n    #ifdef GLASS\n    vec4 c = vec4(color, alpha);\n    #else\n    vec4 c = vec4(color, 1.) * alpha;\n    #endif\n    #else\n    vec4 c = vec4(color, 1.);\n    #endif\n\n    #ifdef AFTERBURNER\n    const mat3 m3 = mat3( 0.00,  0.80,  0.60,\t-0.80,  0.36, -0.48,-0.60, -0.48,  0.64 );\n    vec3 q = vWorld;\n    q.z += _Moved * -5.;\n    float f = 2.;\n    vec3 sum = vec3(0);\n    for(int i = 0; i < 5 ; i++){\n        q = m3 * q;\n        vec3 s = sin( q.yxz * f) / f;\n        q += s;\n        sum += s;\n        f *= 1.7;\n    }\n    float b = exp(-dot(abs(sum), vec3(1.5)));\n    c.xyz *= vec3(1.5, 1., .5);\n    c.xyz += vec3(b, b * b, b * b * b) * 4.;\n    #endif\n\n    #ifdef FLOOR\n    float a = smoothstep(1., .5, length(vUV * 2. - 1.));\n    c.w = a;\n    c = vec4(0, 0, 0, (1. - lm) * a);\n    #endif\n\n    #ifdef USE_EMISSIVE\n    c.xyz += emissive;\n    c.w = clamp(1.-dot(c.xyz, c.xyz)/3., 0., 1.);\n    #endif\n\n    //\tc.xyz = F;\n\n    #ifdef DEBUG_ENABLED\n    if (_DebugMap > 0.){\n        if (_DebugMap < 1.5){\n            #ifdef USE_NORMAL_MAP\n            c.xyz = texture(_NormalMap, vUV).xyz;\n            #else\n            c.xyz = normalize(vWorldNormal) * 0.5 + 0.5;\n            #endif\n        } else if (_DebugMap < 2.5){\n            #ifdef USE_NORMAL_MAP\n            c.xyz = normalize(vTBN[2]) * 0.5 + 0.5;\n            #else\n            c.xyz = normalize(vWorldNormal) * 0.5 + 0.5;\n            #endif\n        } else if (_DebugMap < 3.5){\n            c.xyz = N * 0.5 + 0.5;\n        } else if (_DebugMap < 4.5){\n            c.xyz = albedo;\n        } else if (_DebugMap < 5.5){\n            c.xyz = vec3(roughness);\n        } else if (_DebugMap < 6.5){\n            c.xyz = vec3(metallic);\n        } else if (_DebugMap < 7.5){\n            c.xyz = prefilteredColor;\n        } else if (_DebugMap < 8.5){\n            c.xyz = irradiance;\n        } else if (_DebugMap < 9.5){\n            c.xyz = diffuse;\n        } else if (_DebugMap < 10.5){\n            c.xyz = specular;\n        } else if (_DebugMap < 11.5){\n            #ifdef USE_EMISSIVE\n            c.xyz = emissive;\n            #else\n            c.xyz = vec3(envBRDF.x + envBRDF.y);\n            #endif\n        } else if (_DebugMap < 12.5){\n            #ifdef WHEEL\n            c.xyz = vec3(wheelAO);\n            #else\n            #ifdef LIGHTMAP\n            c.xyz = vec3(texture(_LightMap, vUVLightmap).r);\n            #else\n            c.xyz = vec3(1.);\n            #endif\n            #endif\n        } else if (_DebugMap < 13.5){\n            c.xyz = vec3(l);\n        } else {\n            c.xyz = kD;\n        }\n    }\n    #endif\n    //end unlit\n    #endif\n    fragColor = c;\n    #endif\n}\n\n\n"},54838:function(e){"use strict";e.exports="#version 300 es\n\nin vec3 aPos;\nin vec3 aNormal;\nin vec2 aUV0;\nin vec2 aUV1;\n\n#ifdef SKINNED_MATRICES\nin vec4 aSkinIndex;\nin vec4 aSkinWeight;\n#endif\n\nuniform vec4 _LightmapScaleOffset;\nuniform mat4 _ViewProjection;\nuniform mat4 _Model;\nuniform float _Moved;\nuniform float _WheelNormalMode;\n\nout vec2 vUV;\nout vec3 vWorld;\nout vec3 vWorldNormal;\nout vec2 vUVLightmap;\n\n#ifdef USE_UV1_FOR_AO_MAP\nin vec2 aUV1;\nout vec2 vUV1;\n#endif\n\n#ifdef USE_NORMAL_MAP\nin vec4 aTangent;\nout mat3 vTBN;\n#endif\n\n#ifdef SKINNED_MATRICES\n#ifdef SKINNED_MATRICES_TEXTURE\nuniform sampler2D _BoneTexture;\nuniform float _BoneTextureWidth;\n\nmat4 getBoneMatrix(const float i) {\n    float dx = 1.0 / _BoneTextureWidth;\n\n    float x = i * 4.;\n    vec4 v1 = texture(_BoneTexture, vec2(dx * (x + 0.5), .5));\n    vec4 v2 = texture(_BoneTexture, vec2(dx * (x + 1.5), .5));\n    vec4 v3 = texture(_BoneTexture, vec2(dx * (x + 2.5), .5));\n    vec4 v4 = texture(_BoneTexture, vec2(dx * (x + 3.5), .5));\n\n    return mat4(v1, v2, v3, v4);\n}\n#else\nuniform mat4 _BoneMatrices[BONE_COUNT];\nmat4 getBoneMatrix(const float i) {\n    return _BoneMatrices[int(i)];\n}\n#endif\n#endif\n\n\n/*#ifdef SKINNED_MATRICES\n\tuniform mat4 _BoneMatrices[BONE_COUNT];\n\tmat4 getBoneMatrix( const in float i ) {\n\t\treturn _BoneMatrices[int(i)];\n\t}\n#endif*/\n\nvec3 hash33(vec3 p3) {\n    p3 = fract(p3 * vec3(.1031, .1030, .0973));\n    p3 += dot(p3, p3.yxz+33.33);\n    return fract((p3.xxy + p3.yxx)*p3.zyx);\n}\n\nfloat heightField(vec3 p) {\n    float h = 0.;\n    h += sin(p.z*1.2) * .04;\n    h += (1. - cos(p.x * 0.1));\n    h += hash33(p).x * .05;\n    return h;\n}\n\nfloat ao(vec3 p) {\n    return hash33(p).x;\n}\n\nvec3 heightFieldNormal(vec3 p) {\n    vec3 n = vec3(0.);\n    float e = 0.1;// epsilon for numerical gradient\n    //\tfloat strength = 50.; // scale for normal vector\n    // Calculate the gradient using central differences\n    n.x = (heightField(vec3(p.x + e, p.y, p.z)) - heightField(vec3(p.x - e, p.y, p.z))) / (2. * e);\n    n.y = .5;\n    n.z = (heightField(vec3(p.x, p.y, p.z + e)) - heightField(vec3(p.x, p.y, p.z - e))) / (2. * e);\n    return normalize(n);\n}\n\nvoid main(void) {\n    vUV = aUV0;\n\n    vec3 normal = aNormal;\n\n    #ifdef SKINNED_MATRICES\n    mat4 skinMatrix = aSkinWeight.x * getBoneMatrix(aSkinIndex.x);\n    skinMatrix += aSkinWeight.y * getBoneMatrix(aSkinIndex.y);\n    skinMatrix += aSkinWeight.z * getBoneMatrix(aSkinIndex.z);\n    skinMatrix += aSkinWeight.w * getBoneMatrix(aSkinIndex.w);\n\n    vec4 world = skinMatrix * vec4(aPos, 1.0);\n\n    vWorldNormal =  mat3(skinMatrix) * aNormal;\n    #else\n    vec4 world = _Model * vec4(aPos, 1.0);\n    vWorldNormal = mat3(_Model) * aNormal;\n    #endif\n\n    vWorld = world.xyz;\n\n    #ifdef USE_NORMAL_MAP\n    vec3 B = normalize(cross(aTangent.xyz, aNormal));\n    B *= aTangent.w;\n\n    vTBN = mat3(aTangent.xyz, B, aNormal);\n    //TODO: mat3(_Model) can go wrong with very extreme scales\n    #ifdef SKINNED_MATRICES\n    vTBN = mat3(skinMatrix) * vTBN;\n    #else\n    //to keep the wheel front normal map from spinning, the inverse matrix is needed\n    #ifdef WHEEL\n    if (_WheelNormalMode < .5)    {\n        //switching inverse and transpose does not seem to mke a difference\n        vTBN = transpose(inverse(mat3(_Model))) * vTBN;
2\n        //vTBN = inverse(transpose(mat3(_Model))) * vTBN;\n    } else {\n        //om the PZH this works but the inverse transpose does not\n        vTBN = inverse(mat3(_Model)) * vTBN;\n    }\n    #else\n    vTBN = mat3(_Model) * vTBN;\n    #endif\n    #endif\n    #endif\n\n    #ifdef USE_UV1_FOR_AO_MAP\n    vUV1 = aUV1;\n    #endif\n\n    gl_Position = _ViewProjection * world;\n\n    #ifdef UV_Y_MOVE\n    vUV.y += UV_Y_MOVE * _Moved;\n    #endif\n\n    vUVLightmap = _LightmapScaleOffset.zw + _LightmapScaleOffset.xy * aUV1;\n    //\tvUVLightmap = aUV1;\n}\n"},36602:function(e){"use strict";e.exports="#version 300 es\n#ifdef GL_ES\nprecision mediump float;\nout vec4 fragColor;\n#endif\n\nin vec2 vUV;\nin float vDepth;\n\n#ifdef COLOR\nuniform vec4 _Color;\n#endif\n\n#ifdef TEXTURED\nuniform sampler2D _Texture;\nuniform vec4 _MainTex_ST;\n#endif\n\nvoid main(void) {\n    #ifdef COLOR\n    vec4 c = _Color;\n    #else\n    vec4 c = vec4(1, 1, 1, 1);\n    #endif\n    #ifdef TEXTURED\n    #ifdef TRANSPARENT\n    vec2 uvST = vUV * _MainTex_ST.xy + _MainTex_ST.zw;\n    c *= texture(_Texture, uvST);\n    #else\n    vec2 uvST = vUV * _MainTex_ST.xy + _MainTex_ST.zw;\n    c.xyz *= texture(_Texture, uvST).xyz;\n    #endif\n    #endif\n\n    fragColor = c;\n    fragColor.w = vDepth;\n    //\tfragColor = vec4(vUV, 0., 0.);\n    //\tfragColor = texture(_Texture, vUV);\n    //\t  fragColor = vec4(vUV, 0., 1.);\n}\n\n"},44618:function(e){"use strict";e.exports="#version 300 es\nin vec3 aPos;\nin vec2 aUV0;\n\nuniform mat4 _ViewProjection;\nuniform mat4 _View;\nuniform float _MaxDepth;\nuniform mat4 _Model;\nout float vDepth;\n\n#ifdef UV_SCALE_OFFSET\nuniform vec4 _ScaleOffset;\n#endif\n#ifdef SKINNED_MATRICES\nin vec4 aSkinIndex;\nin vec4 aSkinWeight;\n#endif\n\nout vec2 vUV;\n\n#ifdef SKINNED_MATRICES\nuniform mat4 _BoneMatrices[BONE_COUNT];\nmat4 getBoneMatrix(const in float i) {\n    return _BoneMatrices[int(i)];\n}\n#endif\n\nvoid main(void) {\n    #ifdef SKINNED_MATRICES\n    mat4 skinMatrix = mat4(0.0);\n    skinMatrix += aSkinWeight.x * getBoneMatrix(aSkinIndex.x);\n    skinMatrix += aSkinWeight.y * getBoneMatrix(aSkinIndex.y);\n    skinMatrix += aSkinWeight.z * getBoneMatrix(aSkinIndex.z);\n    skinMatrix += aSkinWeight.w * getBoneMatrix(aSkinIndex.w);\n\n    vec4 pos = skinMatrix * vec4(aPos, 1.0);\n    #else\n    vec4 pos = vec4(aPos, 1.0);\n    #endif\n\n    vUV = aUV0;\n    #ifdef UV_SCALE_OFFSET\n    vUV *= _ScaleOffset.xy;\n    vUV += _ScaleOffset.zw;\n    #endif\n\n    vec4 world = _Model * pos;\n    gl_Position = _ViewProjection * world;\n\n    vec4 view = _View * world;\n    vDepth = abs(view.z) / _MaxDepth;\n}\n\n\n"},61171:function(e){"use strict";e.exports=JSON.parse('{"name":"Rocks","transforms":[{"name":"Rocks","id":30510,"parentId":-1,"position":[0,0,0],"rotation":[0,0,0,1],"scale":[1,1,1]},{"name":"SM_RockGroup01_A_1_LOD0 (1)","id":30480,"parentId":30510,"position":[1.96,0,-2.93],"rotation":[0,0,0,1],"scale":[1,1,1]},{"name":"SM_RockGroup01_A_2_LOD0 (1)","id":30514,"parentId":30510,"position":[-10.48,0,-2.93],"rotation":[0,0,0,1],"scale":[1,1,1]},{"name":"SM_RockGroup01_A_3_LOD0 (1)","id":30522,"parentId":30510,"position":[-4.64,0,-2.93],"rotation":[0,0,0,1],"scale":[1,1,1]},{"name":"SM_RockGroup01_C_LOD0 (1)","id":30472,"parentId":30510,"position":[-3.07,0,5.21],"rotation":[0,0,0,1],"scale":[1,1,1]},{"name":"SM_RockGroup01_B_LOD0 (1)","id":30488,"parentId":30510,"position":[3.36,0,5.15],"rotation":[0,0,0,1],"scale":[1,1,1]}],"animators":[],"boneHierarchies":[],"clips":[],"materials":[{"name":"MI_RockGroup01_A","id":27478,"shaderName":"Webgl/Standard","properties":[{"name":"_Color","sValue":"","vValue":[1,1,1,1]},{"name":"_MainTex","sValue":"T_RockGroup01_1_D","vValue":[1,1,0,0]},{"name":"_Roughness","sValue":"","vValue":[1]},{"name":"_Metallic","sValue":"","vValue":[0]},{"name":"_UseUV1ForAO","sValue":"","vValue":[0]}]},{"name":"MI_RockGroup01_C","id":27524,"shaderName":"Webgl/Standard","properties":[{"name":"_Color","sValue":"","vValue":[1,1,1,1]},{"name":"_MainTex","sValue":"T_RockGroup01_3_D","vValue":[1,1,0,0]},{"name":"_Roughness","sValue":"","vValue":[1]},{"name":"_Metallic","sValue":"","vValue":[0]},{"name":"_UseUV1ForAO","sValue":"","vValue":[0]}]},{"name":"MI_RockGroup01_B","id":27492,"shaderName":"Webgl/Standard","properties":[{"name":"_Color","sValue":"","vValue":[1,1,1,1]},{"name":"_MainTex","sValue":"T_RockGroup01_2_D","vValue":[1,1,0,0]},{"name":"_Roughness","sValue":"","vValue":[1]},{"name":"_Metallic","sValue":"","vValue":[0]},{"name":"_UseUV1ForAO","sValue":"","vValue":[0]}]}],"meshes":[{"name":"SM_RockGroup01_A_1_LOD0","instanceId":"id_278740","indices":[0,2,1,0,1,3,1,4,3,4,1,5,6,4,5,7,6,5,6,7,8,9,6,8,10,9,8,6,11,4,6,9,11,4,11,12,12,3,4,12,13,3,0,3,14,14,3,13,0,14,15,15,14,13,15,16,0,16,15,17,17,18,16,9,10,19,20,19,10,9,21,11,12,11,21,22,19,20,20,23,22,24,9,19,9,24,21,25,22,23,26,25,23,22,27,19,24,19,27,22,25,28,27,22,28,29,27,28,25,29,28,30,24,27,29,30,27,21,24,31,30,31,24,21,32,12,21,31,32,33,31,30,33,30,29,31,33,32,32,34,12,13,12,34,33,35,32,32,35,34,36,35,33,34,35,37,36,37,35,37,36,38,37,38,39,37,39,34,39,13,34,38,36,40,33,40,36,29,40,33,39,41,13,42,39,38,42,41,39,43,13,41,13,43,15,44,41,42,43,41,44,45,15,43,15,45,17,46,42,38,46,44,42,44,47,43,47,45,43,48,44,46,48,47,44,49,40,29,50,49,29,49,51,40,40,51,38,51,49,52,50,52,49,53,50,29,25,53,29,54,38,51,52,54,51,55,53,25,26,55,25,56,55,26,56,26,57,56,57,58,59,54,52,59,60,54,61,59,52,61,62,59,63,61,52,61,63,62,52,50,63,64,53,55,56,64,55,60,65,54,38,54,65,66,38,65,65,67,66,66,46,38,66,67,46,65,60,68,67,65,68,69,68,60,59,69,60,70,46,67,70,48,46,67,68,71,69,71,68,70,67,72,73,48,70,70,72,73,71,74,67,67,74,72,69,75,71,74,71,75,76,72,74,74,75,76,77,69,59,77,75,69,77,78,75,73,79,48,79,47,48,72,80,73,80,72,76,76,75,81,81,75,78,80,76,82,81,82,76,83,79,73,47,79,84,84,79,83,85,73,80,73,85,83,8
20,86,85,86,80,82,85,86,83,82,87,86,82,81,88,82,88,87,78,89,81,88,81,89,78,90,89,47,84,91,47,91,45,91,92,45,17,45,92,91,93,92,91,84,93,94,17,92,94,92,93,89,95,88,87,88,96,95,96,88,89,90,97,97,95,89,90,98,97,95,97,98,99,96,95,87,96,99,95,100,99,100,95,98,99,101,87,100,101,99,102,93,84,84,103,102,103,84,83,104,103,83,86,104,83,86,87,105,86,105,104,106,103,104,106,104,105,87,107,105,107,87,101,107,106,105,101,108,107,100,109,101,109,108,101,110,102,103,103,106,110,102,110,111,107,112,106,112,107,108,113,110,106,112,113,106,111,114,102,93,102,114,115,93,114,111,115,114,115,94,93,115,116,94,116,115,111,110,117,111,117,110,113,118,94,116,94,118,17,112,119,113,113,120,117,113,119,120,111,117,121,117,120,121,112,122,119,122,112,108,123,120,119,119,122,123,124,116,111,111,121,124,121,120,125,120,123,125,124,121,126,121,125,126,126,125,123,116,124,126,126,123,127,122,127,123,127,116,126,118,116,128,116,127,129,129,128,116,130,127,122,127,131,129,131,127,130,131,132,129,129,132,128,130,122,133,133,122,108,134,131,130,134,132,131,133,135,130,135,134,130,136,118,128,118,136,137,138,137,136,118,137,17,137,139,17,138,139,137,139,18,17,128,140,136,140,138,136,141,128,132,141,140,128,18,139,142,142,143,18,144,141,132,134,144,132,141,145,140,144,145,141,142,139,146,139,138,146,142,147,143,146,147,142,147,148,143,149,140,145,140,149,138,138,149,150,138,151,146,150,151,138,147,152,148,148,152,153,147,146,154,146,151,154,147,154,155,152,147,155,155,154,156,151,156,154,155,157,152,157,155,156,157,158,152,153,152,158,159,157,156,158,157,159,156,151,160,159,156,161,160,161,156,159,162,158,159,161,162,163,153,158,163,158,162,163,164,153,164,165,153,164,166,
2165,164,163,167,162,167,163,164,168,166,168,164,167,167,162,169,168,167,169,170,162,161,162,170,169,168,171,166,171,172,166,173,170,161,161,160,173,174,169,170,173,174,170,168,169,175,175,171,168,169,174,175,176,173,160,173,176,177,174,173,177,160,178,176,176,178,177,178,160,151,151,150,178,178,179,177,150,179,178,180,175,174,177,181,174,181,180,174,182,177,179,177,182,181,175,180,183,183,171,175,181,184,180,182,184,181,180,184,183,179,150,185,179,185,182,183,186,171,187,183,184,186,183,187,188,171,186,188,172,171,189,188,186,187,189,186,188,190,172,189,190,188,172,190,191,190,189,192,192,191,190,193,191,192,193,194,191,195,193,192,189,195,192,195,189,187,187,196,195,184,196,187,196,193,195,196,184,197,193,196,197,197,184,182,198,197,182,198,193,197,182,185,198,193,199,194,199,193,200,194,199,201,199,200,201,201,200,202,202,200,203,198,204,193,193,204,200,205,198,185,204,198,205,200,204,206,206,204,205,200,207,203,200,206,207,185,208,205,208,185,150,209,208,150,149,209,150,210,205,208,210,208,209,211,206,205,205,210,211,210,212,211,213,210,209,213,209,149,212,210,213,214,206,211,206,214,207,215,214,211,212,215,211,215,216,214,216,207,214,217,213,149,145,217,149,218,215,212,216,215,218,217,145,219,144,219,145,220,213,217,221,217,219,221,220,217,144,222,219,222,221,219,212,213,223,220,223,213,223,224,212,223,220,224,225,220,221,225,224,220,212,226,218,224,226,212,227,222,144,134,227,144,228,221,222,228,225,221,229,228,222,227,229,222,230,227,134,134,135,230,231,225,228,228,229,231,225,232,224,231,232,225,226,224,233,224,232,233,233,234,226,218,226,234,232,235,233,234,233,235,229,227,236,230,236,227,231,237,232,237,235,232,235,237,238,237,231,239,238,237,239,240,231,229,231,240,239,241,229,236,241,240,229,242,236,230,236,242,241,239,240,243,238,239,243,234,235,244,235,238,244,230,245,242,135,245,230,246,240,241,240,246,243,247,234,244,238,248,244,244,248,247,249,234,247,249,218,234,218,249,216,250,216,249,216,250,251,216,251,207,251,252,207,207,252,203,203,252,253,251,254,252,252,254,253,254,251,250,253,254,255,254,256,255,250,256,254,250,257,256,256,257,258,257,259,258,260,259,257,261,260,257,260,261,262,262,261,263,261,264,263,265,263,264,265,264,266,265,266,267,267,266,268,269,268,266,269,270,268,271,270,269,272,270,271,271,273,272,269,266,274,269,274,271,274,266,275,264,275,266,276,273,271,276,277,273,275,278,274,271,274,278,271,278,279,280,276,271,271,279,280,275,281,278,281,279,278,282,275,264,283,281,275,282,283,275,284,282,264,264,261,284,285,283,282,285,282,284,276,280,286,287,277,276,286,287,276,280,288,286,280,279,288,288,289,286,289,287,286,279,290,288,288,290,289,291,290,279,281,291,279,281,283,292,293,283,285,293,292,283,281,292,294,291,281,294,293,295,292,292,295,294,296,293,285,295,293,296,295,297,294,291,294,297,295,296,298,298,297,295,299,290,291,297,300,291,291,300,299,301,297,298,297,301,300,298,302,301,298,296,302,301,303,300,301,302,303,304,290,299,304,289,290,299,300,305,303,305,300,304,299,306,305,306,299,304,307,289,304,306,307,307,308,289,308,287,289,296,246,302,302,309,303,246,309,302,246,296,310,285,310,296,241,309,246,310,243,246,311,310,285,311,285,284,241,312,309,241,242,312,309,313,303,313,309,312,312,242,314,313,312,314,314,242,245,315,243,310,311,315,310,284,316,311,284,261,316,303,313,317,317,305,303,318,313,314,317,313,318,319,314,245,318,314,319,320,243,315,243,320,238,315,311,321,315,321,320,311,316,321,238,320,322,320,321,322,322,248,238,305,317,323,323,317,318,324,321,316,324,322,321,322,325,248,325,322,324,324,316,326,326,316,261,326,327,324,324,327,325,261,328,326,327,326,328,328,261,257,325,329,248,247,248,329,330,325,327,327,328,330,325,330,329,331,328,257,331,330,328,250,331,257,247,329,332,249,247,332,329,330,333,331,333,330,333,332,329,250,334,331,249,334,250,334,333,331,333,334,332,249,332,334,335,318,319,323,318,335,323,335,336,335,319,336,337,323,336,337,336,338,337,305,323,305,337,306,306,337,338,339,306,338,306,339,307,307,339,340,340,308,307,336,319,341,336,342,338,342,336,341,343,341,319,319,245,343,343,245,135,135,344,343,344,341,343,135,133,344,341,345,342,341,344,345,344,133,346,346,345,344,345,347,342,338,342,347,346,133,348,133,108,348,349,345,346,345,349,347,350,346,348,350,349,346,350,348,351,352,348,108,351,348,352,108,109,352,349,350,353,353,350,351,349,354,347,353,354,349,109,355,352,100,355,109,356,355,100,352,355,356,98,356,100,357,352,356,351,352,357,98,358,356,356,358,357,354,359,347,353,360,354,359,354,360,359,361,347,347,361,338,362,338,361,339,338,362,3
263,358,98,358,364,357,364,358,363,365,364,363,364,365,366,357,364,366,366,351,357,367,363,98,367,98,90,368,367,90,366,369,351,365,369,366,370,363,367,365,363,370,369,371,351,351,371,353,367,372,370,372,367,368,372,373,370,373,365,370,372,368,373,369,365,374,369,374,371,353,371,375,375,360,353,374,376,371,376,375,371,365,377,374,377,376,374,365,378,377,378,365,373,376,377,379,377,378,379,376,379,380,380,375,376,375,380,381,380,379,382,379,378,382,360,375,383,381,383,375,360,383,384,384,383,381,382,385,380,385,381,380,360,384,386,386,359,360,386,387,359,361,359,387,361,387,388,362,361,388,386,389,387,387,389,388,390,362,388,390,388,389,390,339,362,384,391,386,389,386,391,391,384,392,392,384,381,392,381,393,394,391,392,389,391,394,390,389,394,393,381,395,390,394,396,381,385,395,339,390,397,397,390,396,397,396,398,340,339,397,399,397,398,385,400,395,385,382,400,401,395,400,400,402,401,401,402,403,404,403,402,340,397,405,405,397,399,308,340,405,400,382,406,402,400,406,382,378,406,407,405,399,308,405,407,408,407,399,407,287,308,409,406,378,402,406,409,409,378,373,410,407,408,407,410,287,411,410,408,287,410,277,410,411,412,277,410,412,413,412,411,414,277,412,412,413,415,412,415,414,373,416,409,373,368,416,409,416,417,418,416,368,416,418,417,417,419,409,402,409,419,420,402,419,402,420,404,420,421,404,419,417,422,420,419,422,421,420,423,423,420,422,422,417,424,418,424,417,425,424,418,423,426,421,421,426,427,426,428,427,422,429,423,429,422,424,426,423,430,429,430,423,428,426,431,430,431,426,432,428,431,433,429,424,434,424,425,433,424,434,433,434,435,436,429,433,429,436,430,435,436,433,430,436,437,436,435,437,431,430,438,430,437,438,439,434,425,435,434,439,440,432,431,441,431,438,431,441,440,442,440,441,443,438,437,441,438,443,444,437,435,443,437,444,441,443,445,445,442,441,446,445,443,444,446,443,445,446,447,447,442,445,432,440,448,449,432,448,450,449,448,444,451,446,451,447,446,435,452,444,451,444,453,452,453,444,451,453,454,453,452,454,447,451,455,451,454,455,452,435,456,456,435,439,452,457,454,456,457,452,458,447,455,458,455,459,458,442,447,460,455,454,457,460,454,460,459,455,457,461,460,459,460,461,457,462,461,463,457,456,462,457,463,464,456,439,465,463,456,456,464,465,439,466,464,439,425,466,467,459,461,461,462,468,461,468,467,468,469,467,459,467,470,469,470,467,471,468,462,469,468,471,472,459,470,470,469,473,473,472,470,474,469,471,474,473,469,462,475,471,475,474,471,474,475,476,472,477,459,477,458,459,458,477,478,478,442,458,479,478,477,479,477,472,442,478,480,478,479,480,481,473,474,476,481,474,480,482,442,442,482,440,483,440,482,440,483,448,484,448,483,450,448,484,485,483,482,485,484,483,482,480,486,485,482,486,479,487,480,487,486,480,488,486,487,489,485,486,489,486,488,450,484,490,450,490,491,490,492,491,493,484,485,485,489,493,494,493,489,495,484,493,490,484,495,495,493,494,495,496,490,492,490,496,495,494,496,496,494,497,492,496,498,498,496,497,498,499,492,499,498,500,489,501,494,501,489,488,488,502,501,500,498,503,498,497,504,504,503,498,500,503,505,505,506,500,507,506,505,503,508,505,503,504,508,508,509,505,505,509,507,504,510,508,510,509,508,497,511,504,511,510,504,512,507,509,509,510,513,512,509,513,510,514,513,510,511,514,511,515,514,514,515,516,516,513,514,516,512,513,512,517,507,517,518,507,517,519,518,512,516,520,521,517,512,521,512,520,517,522,519,517,521,522,523,520,516,523,516,515,520,524,521,520,523,524,525,519,522,525,526,519,526,525,527,522,521,528,524,528,521,529,524,523,515,529,523,530,527,525,531,527,530,531,530,532,522,533,525,528,533,522,533,530,525,528,524,534,533,528,534,524,529,534,533,535,530,532,530,535,534,535,533,532,535,536,536,535,534,532,536,537,537,536,538,538,536,539,534,529,540,536,534,540,541,539,536,541,542,539,541,543,542,543,544,542,545,540,529,545,546,540,515,545,529,543,547,544,544,547,548,547,549,548,549,547,543,549,550,548,549,551,550,550,551,552,551,553,552,551,554,553,555,554,551,556,554,555,549,557,551,555,551,557,543,558,549,558,557,549,559,557,558,560,555,557,560,557,559,561,555,560,561,556,555,560,559,561,559,562,561,563,558,543,559,558,563,561,564,556,556,564,565,566,561,562,566,564,561,543,567,563,541,567,543,541,568,567,563,567,568,569,565,564,565,569,570,571,570,569,572,568,541,541,536,572,573,572,536,536,540,573,540,574,573,574,572,573,546,574,540,575,572,574,546,575,574,576,568,572,572,575,576,575,546,577,577,576,575,568,576,578,563,568,578,578,579,563,563,579,559,579,580,559,562,559,580,580,579,581,579,578,582,582,581,579,580,583,562,580,581,583,578,576,584,577,585,576,576,585,584,586,578,584,586,582,578,587,584,585,586,584,587,577,588,585,588,587,585,589,586,587,586,589,582,588,589,587,588,577,590,577,546,590,588,591,589,590,591,588,589,592,582,592,589,591,546,593,590,590,593,591,581,582,594,582,592,594,595,581,594,592,595,594,591,596,592,593,596,591,597,593,546,546,545,597,597,598,593,598,597,545,598,596,593,515,598,545,595,599,581,599,583,581,592,600,595,596,600,592,599,595,600,598,601,596,601,598,515,601,600,596,602,599,600,601,602,600,603,601,515,511,603,515,604,583,599,604,599,602,601,605,602,605,601,603,606,603,511,511,497,606,607,604,602,605,607,602,608,583,604,608,604,607,609,603,606,609,605,603,497,610,606,606,610,609,611,583,608,611,562,583,608,562,611,605,612,607,612,605,609,613,608,607,613,607,612,608,614,562,614,608,613,614,566,562,609,615,612,612,615,613,609,610,615,613,616,614,613,615,616,610,497,617,494,617,497,610,618,615,615,618,616,616,619,614,619,566,614,617,494,620,501,620,494,620,501,618,501,502,618,618,502,616,502,619,616,617,621,610,621,617,620,618,621,620,618,610,621,619,622,566,623,619,502,623,622,619,622,624,566,624,564,566,625,624,622,622,623,625,564,624,626,625,626,624,569,564,626,625,627,626,627,625,623,628,569,626,627,628,62
26,569,628,571,628,629,571,629,630,571,627,631,628,631,629,628,632,627,623,631,627,632,629,633,630,630,633,634,634,633,635,623,636,632,636,623,502,637,629,631,629,637,633,632,638,631,638,632,636,631,639,637,638,639,631,637,640,633,639,640,637,633,641,635,641,633,640,642,635,641,635,642,643,636,502,644,502,488,644,645,641,640,645,642,641,640,639,646,638,647,639,639,647,646,648,640,646,645,640,648,647,649,646,649,648,646,638,650,647,649,647,650,651,638,636,651,650,638,652,636,644,636,652,651,644,488,653,652,644,653,650,654,649,650,651,654,651,652,655,653,655,652,654,651,655,488,656,653,656,655,653,656,488,487,655,656,657,487,657,656,657,654,655,649,658,648,654,658,649,657,487,659,487,479,659,654,657,660,660,657,659,658,654,660,659,479,661,659,661,660,661,479,472,661,662,660,662,658,660,663,661,472,663,662,661,663,472,473,658,664,648,645,648,664,658,662,665,662,663,665,658,665,664,663,473,666,665,663,666,481,666,473,664,667,645,667,642,645,664,665,668,666,668,665,667,664,668,666,481,669,669,668,666,667,670,642,642,670,643,670,671,643,643,671,672,672,671,58,667,673,670,670,673,671,58,671,674,671,673,674,674,56,58,675,56,674,675,674,673,64,56,675,667,676,673,676,675,673,668,676,667,676,64,675,668,669,677,677,676,668,64,676,678,676,677,678,669,678,677,678,53,64,669,481,678,678,679,53,678,481,679,53,679,50,481,476,679,50,679,476,680,50,476,680,63,50,63,680,681,476,681,680,62,63,681,682,681,476,475,682,476,683,681,682,682,475,684,684,683,682,475,685,684,685,475,462,685,686,684,462,686,685,684,686,683,686,462,463,463,683,686,465,683,463,683,465,681,62,681,465,62,465,464,687,62,464,687,464,688,464,466,688,62,687,689,689,59,62,690,689,687,690,687,688,689,690,59,691,688,466,688,691,690,692,59,690,690,691,692,77,59,692,693,77,692,693,692,691,78,77,693,691,466,694,694,466,425,695,691,694,425,695,694,691,695,693,696,695,425,425,418,696,696,418,697,697,695,696,368,697,418,695,698,693,695,697,698,78,693,699,699,693,698,697,368,700,700,368,90,90,78,701,701,78,699,90,701,700,699,698,702,698,697,702,702,697,700,702,700,701,702,701,699],"attributes":[{"name":"aPos","stride":3,"data":[1.9829,-0.0337,0.2312,2.0439,-0.0313,-0.0848,2.045,-0.0453,0.1738,1.8706,0.212,-0.0337,1.9713,0.2018,-0.2473,2.1256,-0.0282,-0.264,2.0282,0.062,-0.4242,2.0502,-0.0493,-0.5014,1.8952,0.0045,-0.6925,1.8118,0.1448,-0.689,1.7582,-0.0199,-0.794,1.9077,0.3134,-0.4809,1.8201,0.437,-0.3424,1.7209,0.2677,0.0613,1.8193,0.1719,0.1309,1.7313,0.206,0.3303,2.0548,-0.0302,0.405,1.7323,0.204,0.592,2.0484,-0.029,0.524,1.6641,0.0531,-0.7703,1.5905,-0.0455,-1.0489,1.637,0.3662,-0.69,1.5257,0.0046,-0.9704,1.45,-0.0482,-1.3383,1.5459,0.2175,-0.731,1.2672,0.0939,-1.209,1.2814,-0.0705,-1.487,1.4906,0.1657,-0.7526,1.4684,0.1294,-0.8325,1.3147,0.1617,-0.6726,1.4386,0.2546,-0.5776,1.5017,0.3869,-0.6145,1.5353,0.4317,-0.506,1.4185,0.2739,-0.442,1.567,0.4086,-0.2487,1.4198,0.3783,-0.3706,1.2643,0.2214,-0.3513,1.3002,0.2916,-0.2453,1.1427,0.2328,-0.2661,1.4778,0.2967,-0.0938,1.2066,0.2094,-0.4332,1.5893,0.2588,0.0701,1.4853,0.3124,0.0307,1.5718,0.2775,0.2734,1.489,0.3201,0.1839,1.5408,0.3223,0.4542,1.4198,0.3493,0.0956,1.4818,0.4268,0.3705,1.4966,0.4939,0.205,1.0243,0.1446,-0.6045,0.8851,0.1177,-0.6974,1.0306,0.1877,-0.3943,0.8772,0.1784,-0.3618,1.0796,0.1156,-1.0972,0.9867,0.2,-0.2508,1.1336,0.0893,-1.3041,1.0704,0.0525,-1.6047,1.1999,-0.0629,-1.6754,1.0983,-0.0611,-1.8481,0.8208,0.3627,-0.2791,0.974,0.3136,-0.2433,0.7707,0.2446,-0.3135,0.5542,0.2285,-0.4218,0.8033,0.2183,-0.5183,0.9792,0.0901,-1.4163,1.1447,0.3505,-0.1024,1.2713,0.315,-0.0232,1.3335,0.4728,0.018,1.1318,0.4568,-0.1351,0.9947,0.4627,-0.2286,1.4709,0.4953,0.0896,1.1393,0.6053,-0.1076,1.4771,0.6504,0.0747,1.5437,0.6703,0.2496,1.3239,0.6698,0.0053,1.0652,0.6816,-0.0287,1.3363,0.7516,0.0959,0.7868,0.5685,-0.16,0.8895,0.8113,0.1523,1.4961,0.5742,0.4083,1.514,0.7624,0.252,1.1023,0.8482,0.2363,1.3682,0.8466,0.3055,1.5152,0.6905,0.6095,1.4478,0.5087,0.6334,1.5295,0.8283,0.4504,1.4394,0.841,0.4925,1.2735,0.8686,0.5111,1.0626,0.8422,0.4251,0.7937,0.8254,0.3639,0.5751,0.8997,0.4096,1.4379,0.3692,0.5362,1.5542,0.3167,0.6021,1.4124,0.4394,0.656,1.4673,0.3441,0.7979,0.7898,0.7849,0.736,1.0134,0.8575,0.5903,0.6717,0.8122,0.6156,0.4081,0.83,0.8928,0.9533,0.8387,0.766,0.6148,0.8103,0.9612,0.9595,0.7814,0.9063,1.3324,0.5337,0.7774,1.3995,0.6292,0.7854,1.4797,0.7708,0.7223,1.3635,0.7
2735,0.7462,1.2475,0.7225,0.9273,1.1674,0.773,0.8343,0.9452,0.6912,1.1689,0.749,0.7868,1.0825,1.235,0.6049,0.9033,1.2993,0.4697,0.886,1.1469,0.6794,1.0812,1.1604,0.5915,1.045,1.2983,0.429,0.7424,1.3793,0.4502,0.7998,1.4521,0.2894,0.9606,1.1827,0.5226,0.9648,1.5943,0.2213,0.8666,1.1594,0.5463,1.142,1.2178,0.5343,1.059,1.349,0.5238,0.9951,1.0444,0.49,1.2488,1.2629,0.5423,1.1603,1.3303,0.4467,0.9415,1.3478,0.5736,1.0801,1.3659,0.4554,1.0959,1.2806,0.4092,1.1278,1.5226,0.2199,1.1401,1.3704,0.2779,1.1162,1.0262,0.3339,1.2811,1.1306,0.2648,1.284,1.2426,0.264,1.346,0.8922,0.5159,1.2698,1.0818,0.2664,1.3993,0.9701,0.3465,1.4307,1.6602,0.209,1.0078,1.766,0.2129,0.7402,1.8595,0.2625,1.3343,1.8942,0.1479,0.7151,1.7018,0.2335,1.2776,1.4544,0.2481,1.3477,2.0461,0.0794,0.7724,2.4162,-0.0112,0.957,1.2926,0.3141,1.5169,1.4984,0.3609,1.4432,2.0271,0.2322,1.1302,2.2564,0.1216,1.0332,2.4293,-0.0057,1.0773,1.7384,0.3442,1.4318,1.8666,0.4267,1.6745,1.9701,0.2867,1.3419,2.3516,0.155,1.1594,2.5692,-0.0474,1.3405,2.1285,0.2774,1.1926,2.2623,0.3084,1.1595,2.1352,0.3849,1.2075,2.2305,0.2754,1.2378,2.3835,0.3262,1.3015,2.2665,0.4303,1.3,2.0251,0.4041,1.337,2.1401,0.5155,1.2826,2.3482,0.525,1.3901,2.456,0.3672,1.3581,2.55,0.1419,1.4942,2.6471,-0.0947,1.7599,2.6327,-0.0249,1.7478,2.4811,0.4644,1.487,2.5062,0.4421,1.6373,2.335,0.5684,1.492,2.137,0.5582,1.4457,2.5205,0.4679,1.7764,2.6907,-0.0287,1.8551,2.0199,0.5448,1.4851,2.1153,0.6083,1.6495,2.3587,0.5923,1.6736,1.9926,0.4756,1.5248,2.0157,0.5439,1.6527,1.9736,0.3732,1.5805,2.0002,0.4894,1.7533,2.2335,0.6358,1.7681,2.1392,0.5496,1.7822,2.1359,0.4653,1.8628,2.3674,0.6285,1.7771,2.2928,0.6019,1.9611,1.9731,0.4355,1.8573,2.4861,0.6084,1.8786,2.4061,0.6193,1.9709,2.5929,0.473,1.8638,2.5976,0.4623,2.0106,2.6522,0.1065,1.9538,2.5647,-0.0669,2.0315,2.5204,0.3291,2.1286,2.3809,0.3031,2.1151,2.4856,-0.0565,2.1727,2.4415,0.448,2.0717,2.3573,0.54,2.1449,2.3115,0.4153,1.9771,2.2024,0.4392,2.0423,2.389,0.1015,2.1687,2.3585,0.2525,2.2823,2.484,-0.0238,2.3058,2.4606,0.0045,2.5749,2.4969,-0.0609,2.6787,2.2543,0.4184,2.1855,2.0806,0.5189,2.1375,2.2499,0.4928,2.3388,2.297,0.385,2.5911,1.8605,0.5538,1.8818,1.76,0.5654,1.7477,1.7533,0.7095,1.9959,2.0771,0.628,2.2491,1.7135,0.7455,2.072,1.5159,0.6949,1.7179,2.1594,0.5852,2.4838,2.0033,0.6423,2.3319,2.1069,0.5357,2.5705,1.5092,0.5238,1.5438,1.863,0.6081,2.4165,1.4348,0.4667,1.5405,1.3781,0.6663,1.7363,1.4132,0.5489,1.637,1.3949,0.3993,1.6643,1.4691,0.7517,1.8133,1.4282,0.7033,1.97,1.3635,0.5197,1.8637,1.6307,0.6772,2.1264,1.2529,0.3318,1.637,1.4419,0.4454,1.7298,1.2984,0.3823,1.8424,1.062,0.3267,1.6263,1.4285,0.3854,1.931,1.4483,0.4486,2.1726,1.5592,0.5174,2.2653,1.6554,0.4904,2.4327,1.484,0.3426,2.4151,1.1953,0.353,1.7586,1.4837,0.3401,2.153,1.4452,0.2533,2.4087,1.4155,0.2878,2.0881,1.3276,0.3456,1.9893,1.2709,0.4332,1.9409,1.1579,0.4799,1.7602,1.2925,0.2362,2.2354,1.5895,0.3679,2.5494,0.9839,0.4707,1.609,1.2197,0.2912,2.2868,1.7121,0.3555,2.6173,1.5811,0.2471,2.6072,1.8489,0.3913,2.7147,2.0324,0.12,2.985,2.2212,0.2982,2.8238,2.3502,0.1696,2.8401,2.4538,-0.0525,2.9711,2.2786,-0.0038,3.0772,2.3701,-0.094,3.0606,2.2406,-0.0845,3.1283,1.8856,0.033,3.0573,1.9583,-0.0862,3.2829,1.6937,-0.0563,3.3041,1.6511,-0.0449,3.1596,1.341,0.0568,2.8304,1.2073,-0.019,2.9941,1.0262,-0.0259,2.9806,0.7912,-0.006,2.8237,0.692,-0.0398,2.8702,0.599,0.012,2.8096,0.5021,-0.0723,3.0062,0.394,-0.0759,2.945,0.5122,0.0343,2.7818,0.3597,-0.0764,2.8141,0.3847,-0.0105,2.6278,0.2039,-0.0937,2.7712,0.1634,-0.0685,2.6042,0.5441,0.0652,2.6502,0.7171,0.0971,2.4968,0.1836,-0.0096,2.507,0.0086,-0.0542,2.5486,0.5168,0.1222,2.4514,0.4747,0.1139,2.3726,0.2895,0.0966,2.504,0.6106,0.1196,2.3529,0.8076,0.0465,2.5863,0.824,0.1315,2.4204,1.0885,0.0498,2.6731,1.0097,0.0859,2.4679,0.2039,0.1148,2.4163,0.0359,0.1447,2.3138,0.3476,0.1526,2.3821,0.2491,0.1527,2.239,0.3851,0.1683,2.2543,0.4786,0.2246,2.2568,0.6862,0.1821,2.342,0.9813,0.2038,2.3362,0.5862,0.2412,2.3368,0.7695,0.3172,2.3498,1.046,0.3,2.3508,0.6081,0.3545,2.3577,0.8394,0.4214,2.3748,0.3886,0.2643,2.1503,0.5044,0.4156,2.2692,0.7259,0.4588,2.3652,0.9208,0.4653,2.2827,0.652,0.5746,2.1962,0.4013,0.1848,2.1596,0.5301,0.507,2.0837,0.33,0.229,1.9692,0.2371,0.1102,2.0419,0.0993,0.1625,2.1199,1.0506,0.5312,2.1187,1.1814,0.1925,2.3411,1.1313,0.0609,2.5055,1.1702,0.5412,1.9462,1.0231,0.6385,1.8943,1.1086,0.602,1.7917,1.194,0.1534,2.4728,1.2775,0.0781,2.6656,0.6952,0.5913,1.9843,0.905,0.5571,1.7801,0.8543,0.527,1.5785,1.3513,0.2475,2.465,1.2755,0.1612,2.614,1.4218,0.2668,2.6361,0.6017,0.4796,1.8373,1.4455,0.1725,2.7267,1.5994,0.2188,2.6969,1.4193,0.0553,2.7346,1.5354,0.0997,2.6776,1.6117,0.0659,2.789,1.7037,0.233,2.6111,1.6663,0.1191,2.7005,1.7775,0.0724,2.7934,1.7515,0.2431,2.705,1.7755,0.1332,2.6663,1.8449,0.2033,2.8144,0.7664,0.5108,1.7061,0.5988,0.5011,1.6254,0.4569,0.4135,1.8927,0.3349,0.2586,1.7298,0.1383,0.1263,1.8676,0.0579,0.0928,2.0093,0.703,0.4532,1.4487,0.5045,0.3708,1.4853,0.879,0.3728,1.4694,0.7822,0.4114,1.3187,0.5879,0.366,1.3685,0.6711,0.4992,1.2995,0.3919,0.1516,1.3729,0.6773,0.6094,1.2595,0.5282,0.3277,1.2676,0.53,0.4581,1.2352,0.3141,0.7216,1.1665,0.5117,0.7314,1.197,0.2801,0.2656,1.1899,0.3419,0.1869,1.1993,0.5967,0.8451,1.0982,0.4818,0.8088,1.0749,0.369,0.872,1.1933,0.3526,0.8668,1.0209,0.2454,0.0668,1.3732,0.0007,0.0697,1.2584,0.2774,0.1185,1.6154,0.1764,0.1052,1.7045,0.2227,0.891,0.9824,0.249,0.8902,1.1171,0.0198,0.8788,1.0034,0.2231,0.8447,1.1874,0.3608,0.9186,0.6371,0.3037,0.8629,0.3973,0.0497,0.7983,1.1399,0.0988,0.868,0.8888,0.0767,0.6741,1.1326,0.1386,0.8172,0.6021,-0.0644,0.6771,0.6896,-0.0607,0.7234,1.1291,-0.018,0.217,1.1616,-0.0352,0.5017,1.1247,-0.0784,0.7124,1.0416,-0.1107,0.6795,0.9186,-0.
21321,0.4997,1.0876,-0.1613,0.2169,1.1177,-0.1989,0.0087,1.1204,-0.1711,0.2099,0.9791,-0.0627,0.0991,1.1905,-0.1203,0.0606,1.2685,-0.1969,0.047,1.0201,-0.0164,0.0872,1.4005,0.1897,0.1037,1.4836,0.1223,0.0645,1.579,-0.0353,0.0957,1.5589,-0.0601,-0.0028,1.6586,-0.1893,0.0412,1.381,-0.269,-0.062,1.2625,-0.3147,-0.0581,1.1058,-0.2555,-0.0712,1.5182,-0.2873,-0.0208,1.0092,-0.2417,-0.0957,1.6507,-0.0491,0.0244,1.8738,-0.2651,-0.0952,1.8234,-0.2454,-0.0288,2.0407,-0.2484,0.0393,0.7657,-0.3466,-0.0312,0.7642,-0.2263,0.1221,0.4061,-0.3463,-0.0036,0.399,-0.3075,-0.0203,0.2748,-0.066,0.0983,2.0055,-0.2024,0.2731,0.7387,-0.0221,0.1827,2.163,-0.3143,-0.0067,2.2305,-0.161,0.3966,0.5192,-0.2185,0.0327,2.4358,-0.3608,-0.0501,2.3579,-0.2682,-0.0292,2.5221,-0.4913,-0.0859,2.619,-0.165,-0.0731,2.6062,-0.2523,-0.0803,2.7224,0.1037,0.638,0.321,0.011,0.4231,0.1196,0.0379,0.4952,0.0337,-0.0593,0.3623,0.3,-0.1905,0.1165,0.2216,-0.3938,-0.0227,0.0728,-0.1109,0.32,0.0612,-0.1937,0.1695,0.0485,0.0331,0.3809,-0.0485,0.1674,0.4031,-0.0435,-0.3927,0.0459,-0.1241,-0.4802,-0.0087,-0.0339,-0.6231,-0.0103,-0.3788,-0.1386,0.2786,-0.0663,-0.2713,0.1974,-0.1535,-0.4429,0.1124,-0.4364,-0.7256,-0.0319,-0.5537,-0.0525,0.2918,-0.1753,0.0595,0.2774,-0.1989,-0.0057,0.249,-0.3632,-0.1145,0.2507,-0.2291,-0.1927,0.2243,-0.3263,-0.3644,0.1754,-0.3954,0.1903,0.2963,-0.2444,-0.5169,0.212,-0.6374,-0.3671,0.3335,-0.6057,-0.3673,0.3373,-0.8013,-0.2874,0.1998,-0.5547,-0.1065,0.2352,-0.5119,-0.3089,0.2766,-0.6893,-0.1631,0.3276,-0.6464,-0.1611,0.3758,-0.725,-0.7448,0.0666,-0.7682,-0.8302,-0.0167,-0.72,-0.9112,0.0051,-0.7744,0.0212,0.3696,-0.6446,0.1123,0.1959,-0.5086,0.0134,0.2488,-0.5836,0.107,0.2753,-0.6509,0.0436,0.381,-0.7813,0.2279,0.2439,-0.472,0.2612,0.1522,-0.601,-0.0473,0.3248,-0.8659,0.1372,0.2241,-0.9252,0.1084,0.2457,-0.7715,0.2299,0.1619,-0.7742,0.3667,0.1893,-0.7036,0.3848,0.2163,-0.5728,0.342,0.2572,-0.2968,0.3971,0.223,-0.437,0.2454,0.2918,-0.1129,0.2708,0.1735,-0.8751,0.3386,0.2765,-0.8049,0.3631,0.1432,-0.9218,0.2372,0.1307,-0.9519,0.4346,0.2388,-0.8586,0.1253,0.1358,-1.1303,0.3886,0.1058,-1.0616,0.5338,0.1372,-0.9522,0.5276,0.1969,-0.7927,0.7118,0.1217,-0.8521,-0.0206,0.2229,-1.0381,-0.2569,0.285,-0.9789,-0.1915,0.1809,-1.1083,-0.379,0.2628,-1.0108,0.5928,0.1251,-1.1293,-0.5272,0.3639,-0.8644,-0.7367,0.1945,-0.8393,-0.8775,0.1521,-0.9383,-0.6706,0.2492,-0.9494,-0.5533,0.2931,-0.9932,-0.4389,0.2141,-1.0997,-0.5931,0.2403,-1.2357,-0.7192,0.2233,-1.1782,-1.1048,0.0605,-0.9102,-1.0981,0.0064,-0.8221,-1.3542,-0.033,-0.9194,-0.8137,0.2162,-1.04,-1.1025,0.178,-1.1291,-1.0997,0.2237,-1.0739,-1.2754,0.1027,-1.0683,-1.3682,0.1639,-1.3009,-1.4446,0.0623,-1.1499,-1.4993,-0.0282,-0.9564,-1.5544,-0.0171,-1.0625,-0.9075,0.1898,-1.3768,-0.7578,0.2041,-1.5824,-1.5641,0.0841,-1.2006,-1.5137,0.1845,-1.3052,-1.6292,0.0604,-1.1153,-1.6524,-0.0041,-1.0218,-1.7629,-0.0278,-1.0447,-1.6102,0.1578,-1.2165,-1.7406,0.2219,-1.2223,-1.6028,0.2566,-1.3171,-1.5578,0.1823,-1.4186,-1.8405,0.1634,-1.2494,-1.7508,0.2895,-1.3249,-1.6196,0.3089,-1.4311,-1.6441,0.2227,-1.499,-1.7155,0.2402,-1.4073,-1.9227,0.088,-1.2014,-1.9138,-0.0333,-1.0213,-2.1288,-0.0248,-1.1583,-1.8312,0.1516,-1.3398,-1.9561,0.1969,-1.3804,-2.0685,0.1221,-1.3427,-1.7403,0.1568,-1.4445,-1.8894,0.2226,-1.4848,-2.3277,0.0872,-1.301,-2.3822,-0.0202,-1.1345,-2.5457,0.0193,-1.2357,-2.0586,0.2085,-1.4757,-1.7505,0.171,-1.5267,-2.4879,0.1333,-1.411,-2.6972,-0.028,-1.3027,-2.6424,-0.0359,-1.4967,-2.2751,0.1719,-1.537,-2.1568,0.1799,-1.6654,-2.4229,0.1088,-1.5473,-2.2643,0.1063,-1.8081,-2.4543,-0.0394,-1.8311,-2.4765,-0.0398,-1.9436,-2.3722,-0.0392,-2.0615,-2.1092,0.2548,-1.7795,-2.1841,0.0689,-2.1533,-2.3785,-0.0546,-2.2475,-2.1194,-0.0037,-2.5863,-2.2517,-0.0922,-2.7208,-1.7675,0.2639,-1.5667,-2.069,0.33,-1.8603,-2.0641,-0.0405,-2.7506,-2.1343,-0.
20959,-2.853,-1.8858,0.0392,-2.824,-2.1152,-0.1143,-3.2365,-1.7378,0.0259,-2.9678,-1.8727,-0.1033,-3.2679,-1.6914,-0.0922,-3.1927,-1.4618,-0.0847,-3.2232,-1.4627,0.0056,-3.0203,-1.0604,-0.0561,-2.98,-1.6435,0.0514,-2.7764,-1.7565,0.0447,-2.6056,-1.5031,0.0675,-2.4994,-1.457,0.0468,-2.7907,-1.2214,0.0694,-2.735,-1.1742,0.1411,-2.0197,-1.8129,0.079,-2.3903,-0.9313,0.0512,-2.7976,-0.8927,-0.0419,-3.0326,-0.9408,0.1291,-2.3591,-1.9593,0.113,-2.3655,-1.915,0.1396,-2.2789,-0.4219,0.0593,-2.7109,-0.481,-0.0383,-2.8624,-0.2188,-0.0284,-2.6311,-2.0993,0.1367,-2.1326,-2.2059,0.1493,-1.8852,-2.1857,0.2834,-1.9262,-2.0674,0.2692,-2.1289,-1.9724,0.2173,-2.3122,-1.9569,0.2824,-2.2049,-1.7926,0.1331,-2.3003,-1.6102,0.0855,-2.3662,-1.3739,0.1155,-2.0469,-1.5637,0.0776,-2.05,-1.6766,0.1103,-2.1861,-1.3788,0.1529,-1.9598,-1.7781,0.1937,-2.3702,-1.8827,0.2683,-2.3793,-1.6672,0.2422,-2.2985,-1.7481,0.2874,-2.3203,-1.8042,0.3075,-2.2575,-1.6825,0.282,-2.2106,-1.8032,0.3461,-2.0066,-1.6442,0.3294,-2.0083,-1.5982,0.2272,-2.028,-1.7296,0.3518,-1.7103,-1.6674,0.1055,-2.0157,-1.5976,0.1283,-1.9019,-1.6231,0.3285,-1.7087,-1.8336,0.3478,-1.6332,-1.6859,0.3404,-1.569,-1.514,0.1465,-1.8529,-1.6068,0.2119,-1.7583,-1.6194,0.1922,-1.6051,-1.4839,0.16,-1.7252,-1.5123,0.2106,-1.5366,-1.4278,0.1943,-1.8522,-1.4362,0.1753,-1.6341,-1.4162,0.1923,-1.4833,-1.3495,0.1458,-1.755,-1.3137,0.1686,-1.85,-1.4103,0.262,-1.5982,-1.2548,0.2907,-1.4322,-1.2491,0.2172,-1.9147,-1.3035,0.2496,-1.7323,-1.2229,0.1455,-1.7564,-1.0135,0.1593,-1.8476,-1.1734,0.2635,-1.6719,-0.8946,0.1783,-1.7231,-1.2335,0.2165,-1.3261,-1.0396,0.2051,-1.4722,-0.8312,0.2006,-1.9769,-1.1106,
20.1771,-1.305,-1.0876,0.2688,-1.3693,-0.7572,0.1322,-2.2565,-0.6801,0.1502,-2.0948,-0.8386,0.1396,-2.4586,-0.6309,0.1334,-2.4047,-0.5716,0.1441,-2.5502,-0.4388,0.1487,-2.2735,-0.3675,0.1057,-2.4552,-0.1689,0.0846,-2.3232,0.189,-0.0288,-2.2079,-0.3129,0.2248,-2.1182,-0.5667,0.1766,-2.0517,0.168,0.0512,-2.0964,0.3465,-0.0359,-2.1768,0.429,-0.0439,-2.0431,-0.6567,0.2537,-1.7327,-0.0682,0.1875,-2.0908,-0.4826,0.302,-1.8058,-0.1935,0.2913,-1.9394,0.1728,0.1903,-1.9157,0.2785,0.0734,-1.9874,0.4057,0.081,-1.8653,0.5742,-0.0651,-2.0872,-0.5397,0.282,-1.3436,0.2708,0.1637,-1.8367,0.05,0.2192,-1.8621,-0.1226,0.3178,-1.805,0.1164,0.1819,-1.7648,-0.0187,0.3081,-1.6705,-0.231,0.3677,-1.6747,-0.3663,0.3758,-1.5027,-0.4308,0.3933,-1.4037,-0.4517,0.2894,-1.2756,-0.1264,0.3761,-1.5337,-0.2868,0.3318,-1.339,-0.3978,0.2031,-1.2099,-0.2428,0.1923,-1.3139,0.1331,0.2835,-1.5514,-0.1671,0.1718,-1.2303,-0.0862,0.255,-1.3969,0.0338,0.1386,-1.2678,0.1008,0.2024,-1.3964,0.2804,0.095,-1.3228,0.2166,0.1631,-1.6996,0.2464,0.1297,-1.5151,0.3992,0.1249,-1.4551,0.4113,0.2037,-1.7087,0.3697,0.1174,-1.5965,0.6038,0.1279,-1.3787,0.6337,0.1525,-1.8452,0.8151,0.0615,-1.8771,0.9538,-0.0676,-2.0153,0.8499,0.2201,-1.7574,1.0468,0.0887,-1.746,0.9269,0.1946,-1.614,0.8066,0.19,-1.5893,0.7296,0.106,-1.5145,0.8264,0.1232,-1.3225,0.8712,0.128,-1.0268,0.8082,0.1794,-0.7032,0.7321,0.1305,-0.6265,0.6315,0.1524,-0.7516,0.529,0.1782,-0.5994,0.576,0.2593,-0.7054,0.422,0.2612,-0.7285,0.4742,0.2917,-0.6518,0.5161,0.2694,-0.2988,0.487,0.296,-0.2107,0.5977,0.2996,-0.3232,0.6076,0.3254,-0.2153,0.3946,0.3749,-0.1577,0.6739,0.4902,-0.2194,0.5876,0.5903,-0.0746,0.2825,0.3866,-0.0791,0.281,0.5137,-0.0267,0.1631,0.5405,0.0627,0.3365,0.8375,0.2674,0.3795,0.6966,0.1547,0.6332,0.6801,0.0507,0.4539,0.9101,0.3371,0.6667,0.814,0.2029,0.5093,0.7767,0.1812]},{"name":"aNormal","stride":3,"data":[0.6607,0.7473,0.0708,0.7956,0.5672,0.2127,0.6127,0.7776,0.1414,0.7921,0.549,0.2667,0.797,0.505,0.3314,0.8717,0.4869,0.055,0.8657,0.4014,-0.2991,0.7869,0.4879,-0.3777,0.6232,0.4023,-0.6706,0.5117,0.3936,-0.7637,0.4019,0.6069,-0.6857,0.7241,0.5431,-0.425,0.4723,0.8658,0.1653,0.1413,0.8947,0.4238,0.5457,0.696,0.4666,0.6222,0.7797,-0.0709,0.5518,0.8277,-0.1025,0.5454,0.8378,-0.0237,0.4966,0.8434,-0.2049,0.3545,0.5908,-0.7247,0.4172,0.8817,-0.2204,0.1577,0.615,-0.7726,0.4876,0.8336,-0.2595,0.5026,0.7854,-0.3613,-0.1811,0.3228,-0.929,0.3161,0.9166,-0.2449,0.4726,0.7719,-0.4253,0.0315,0.7488,-0.6621,0.3392,0.8834,-0.3234,-0.134,0.9857,-0.1025,-0.7272,0.6008,-0.332,-0.565,0.6984,-0.4394,-0.3703,0.914,-0.1655,-0.7935,0.4714,-0.385,-0.2515,0.888,0.3851,-0.6366,0.7702,-0.0393,-0.2679,0.8827,-0.3862,-0.4074,0.901,0.1489,-0.1971,0.9619,-0.1892,-0.237,0.9478,0.2133,0.0473,0.953,-0.2993,0.2361,0.9445,0.2283,0.2125,0.9602,-0.181,0.5209,0.8129,-0.2604,0.8483,0.4948,-0.1885,0.527,0.8416,0.118,0.644,0.4005,-0.6518,0.9751,0.1966,0.1022,0.9887,-0.1491,-0.0157,-0.
vendor: 13,476 bytes, line 2
2126,0.9768,-0.1733,-0.0236,0.9907,-0.1337,-0.292,0.939,-0.1815,0.3547,0.9066,-0.2286,-0.0393,0.9989,-0.0236,0.1182,0.733,-0.6699,0.1733,0.9455,-0.2758,0.6364,0.7699,-0.0471,0.5588,0.795,-0.2361,0.5755,0.678,-0.4573,0.2522,0.2679,-0.9299,0.2051,-0.0394,-0.978,0.4178,0.6464,-0.6385,-0.1572,0.8801,-0.4479,0.1571,0.9191,-0.3614,0.1657,0.9862,0,0.6139,0.2755,-0.7398,0.4247,0.5741,-0.7,0.4429,-0.1819,-0.8779,0.7327,0.063,-0.6776,0.0471,0.3064,-0.9507,0.7955,-0.1654,-0.5829,0.4713,0.4163,-0.7776,0.7014,0.2207,-0.6778,0.9868,-0.1184,-0.1105,0.2691,0.4116,-0.8707,0.063,0.7869,-0.6138,0.1421,0.8212,-0.5527,-0.0157,0.7226,-0.6911,-0.0552,0.875,-0.4809,0.9376,-0.3388,0.0788,0.6829,0.6437,-0.3454,-0.0158,0.9378,-0.3468,0.2128,0.9301,-0.2995,0.9756,-0.0551,0.2124,0.9055,-0.2756,0.3228,0.7769,0.62,0.1099,0.2906,0.9348,0.2042,0.166,0.9645,0.2055,-0.2369,0.9715,0.0079,0.0947,0.9707,0.221,0.3066,0.9435,0.1258,0.887,0.4396,0.1413,0.5604,0.8208,-0.1105,0.8364,0.4734,0.2762,0.6138,0.724,0.3148,-0.0712,0.9963,-0.0474,-0.3231,0.9379,-0.1261,0.2917,0.9459,0.1419,0.2677,0.9448,0.189,-0.1102,0.9838,0.1417,0.0236,0.9897,-0.1414,0.1731,0.9128,0.3698,0.787,-0.244,0.5666,0.6749,-0.2982,0.6749,0.6703,0.5441,0.5047,0.173,0.9279,0.3303,0.5492,0.4708,0.6905,0.1573,0.9125,0.3776,0.2044,0.8489,0.4874,0.3152,0.8669,0.3862,0.7458,-0.0942,0.6595,0.8656,0.4957,0.0708,0.5732,0.6282,0.5261,0.9364,0.2361,0.2597,0.6624,0.5993,0.4495,0.3223,0.9276,0.1887,0.7244,0.6693,0.1653,0.6297,0.7321,0.2598,0.3152,0.93,0.1891,0.4088,0.676,0.6131,0.2051,0.978,-0.0394,0.5375,0.7272,-0.4269,0.4237,0.2746,0.8632,0.1808,0.6211,0.7626,0.8042,0.5519,-0.2208,0.6538,0.7563,0.0236,0.8944,0.1029,0.4353,0.5202,-0.134,0.8434,0.1804,0.9805,0.0784,0.4417,0.7572,0.4812,0.51,0.5963,0.6199,0.2749,0.9031,0.3298,0,0.9963,-0.0863,0.0786,0.2436,0.9667,0.3378,0.9348,-0.11,0.4417,0.8913,-0.1025,-0.0393,0.9991,-0.0157,0.2288,0.9703,-0.0789,-0.1258,0.9596,-0.2517,0.4087,0.9039,-0.1258,-0.0709,0.9539,-0.2917,0,0.9082,-0.4186,0.4743,0.7905,-0.3874,0.3307,0.8425,-0.4252,-0.3225,0.881,-0.3461,-0.2675,0.4957,-0.8262,0,0.9354,-0.3537,0.4243,0.7071,-0.5657,0.7098,0.6546,-0.2603,0.3874,0.7432,-0.5455,0.2518,0.8264,-0.5037,-0.5509,0.7791,-0.2991,0.6359,0.5338,-0.5574,0.8857,0.3242,-0.3322,-0.2672,0.5894,-0.7623,0.5185,0.7856,-0.3378,-0.2129,0.4495,-0.8675,0.6604,0.6446,-0.3852,0.4652,0.3864,-0.7964,0.4102,0.4576,-0.7889,-0.8337,0.3225,-0.4483,-0.2045,0.6843,-0.7,0.4107,0.7425,-0.5292,0.6848,0.3384,-0.6454,0.9519,0.2045,-0.2281,0.9711,0.1974,-0.1342,0.9423,0.212,-0.2591,0.8246,0.5497,-0.1335,0.9041,0.4167,-0.0943,0.2826,0.9421,-0.1806,-0.0631,0.9783,-0.1972,0.8073,0.3762,-0.4546,0.9957,0.079,-0.0474,-0.6836,0.7072,-0.1807,-0.2995,0.9457,-0.1261,0.4243,0.8722,-0.2436,-0.9597,0.2675,-0.0865,-0.7727,0.6308,0.071,-0.6058,0.7002,-0.3777,-0.6079,0.75,0.2605,-0.2353,0.9648,0.1177,-0.4959,0.6061,0.6219,-0.3536,0.7937,0.4951,0.3072,0.898,-0.3151,-0.6373,0.5901,0.4957,0.2201,0.9747,-0.0393,0.6347,0.7679,-0.0862,0.2676,0.9051,0.3305,0.8605,0.3868,-0.3316,0.7228,0.4478,0.5264,0.9329,0.0553,0.3558,0.598,-0.1888,0.7789,0.3383,0.0944,0.9363,0.4165,0.3458,0.8408,0.8992,0.3944,0.1893,0.166,0.4347,0.8852,0.2909,0.4559,0.8411,-0.5813,0.5263,0.6206,0.079,0.9957,0.0474,0.7949,0.4171,0.4407,0.9325,0.3556,-0.0632,0.8594,0.4888,-0.1498,0.8757,0.4812,0.0394,0.878,0.4782,0.0235,0.7525,0.6506,-0.1019,0.518,0.6279,-0.5808,0.8109,0.5511,-0.1968,0.8441,0.4812,0.2367,0.6999,0.6291,-0.3382,0.5114,0.653,-0.5586,0.5191,0.8259,-0.2202,0.4385,0.8534,-0.2819,0.1572,0.959,0.2358,0.2608,0.7429,-0.6165,0.4094,0.8503,0.3307,0.079,0.9878,0.1343,0.1185,0.766,0.6318,-0.0473,0.6782,-0.7334,-0.2053,0.8921,0.4026,-0.6284,0.5655,-0.5341,-0.8031,0.4252,-0.4173,-0.8832,0.2129,-0.4179,-0.7637,0.6298,0.1417,-0.2199,0.9426,-0.2514,-0.6257,0.5861,0.5148,-0.9351,-0.3536,0.0236,-0.3935,0.7476,0.5351,-0.26,0.9453,-0.1969,-0.9841,0.1732,-0.0394,0.1974,0.9634,-0.1816,0.4799,0.7395,-0.472,-0.8408,0.4794,0.2515,-0.9344,0.0864,0.3455,-0.5344,0.6208,0.5736,-0.5213,0.7345,0.4344,-0.8928,0.4346,0.1185,0.3293,0.7449,-0.5802,-0.9229,0.2209,0.3155,-0.5841,0.8051,-0.1026,-0.4327,0.7632,0.4799,0.3245,0.8627,0.3878,0.7186,0.6791,0.15,0.683,0.2591,-0.683,0.2992,0.9135,0.2756,-0.4182,0.4498,0.7891,0.5759,0.3077,-0.7574,0.5068,0.6731,0.5385,-0.6373,0.3383,0.6924,-0.071,0.8602,0.505,-0.2517,0.6055,0.755,-0.3237,0.6158,0.7184,0.2669,0.7378,0.6201,0.7781,0.5344,0.3301,0.6931,0.5986,0.4017,0.2998,0.5364,0.7889,0.5127,0.2997,0.8045,0.2755,0.6139,0.7398,-0.0473,0.9307,0.3628,0.1662,0.9339,0.3166,-0.0472,0.9602,0.2755,-0.1027,0.9405,0.324,-0.0395,0.9646,0.2609,-0.0633,0.9411,0.3322,-0.0942,0.9338,0.3453,-0.1658,0.9394,0.3,0.0157,0.9352,0.3537,0.1496,0.9372,0.315,-0.0632,0.8459,0.5296,-0.5967,0.6909,0.4082,-0.1577,0.9855,0.0631,-0.4565,0.8658,0.2047,-0.3229,0.8743,0.3623,-0.1973,0.9472,0.2526,-0.2042,0.9034,0.3771,-0.2845,0.8377,0.4662,0.2518,0.9205,0.299,-0.2982,0.6905,0.6591,-0.0158,0.812,0.5834,-0.283,0.9434,0.173,-0.0157,0.9352,0.3537,-0.0552,0.71,0.7021,-0.2044,0.8096,0.5502,0.0236,0.9768,0.2127,-0.1262,0.7964,0.5914,-0.0315,0.9987,-0.0393,0.0157,0.8184,0.5744,-0.2444,0.875,0.4178,-0.0471,0.8395,0.5413,0.0474,0.9552,0.2921,0,0.9989,-0.0472,-0.3152,0.8669,0.3862,-0.3864,0.1183,0.9147,0.0158,0.2444,0.9696,-0.1183,0.5362,0.8358,-0.4566,0.0157,0.8895,0.1256,-0.2277,0.9656,0.1023,0.2597,0.9602,-0.4311,-0.0392,0.9014,0.1811,0.2992,0.9369,-0.9051,0.3305,0.2676,-0.7502,0.3238,0.5765,0.0629,0.6527,0.755,0.3244,0.6884,0.6488,-0.126,0.9295,0.3466,-0.7813,0.6156,0.1026,-0.7254,0.6781,-0.1183,-0.8187,0.5038,0.2755,-0.3161,0.9482,0.0316,0.3146,0.8808,-0.3539,0.4499,0.7419,0.4972,0.0314,0.6989,0.7146,-0.2673,0.8489,0.4559,0.7736,0.5447,0.3237,0.0236,0.9997,-0.0079,0.4171,0.7949,-0.4407,-0.5839,0.7181,0.3788,-0.4714,0.7856,0.4007,-0.2914,0.9136,-0.2835,-0.3155,0.9229,-0.2209,0.1102,0.8658,-0.488,-0.3793,0.9244,-0.0395,-0.6833,0.5577,0.4713,-0.2669,0.887,0.3768,-0.2982,0.9415,-0.1569,-0.118,0.4091,0.9048,0.2124,0.3697,0.9046,0.0078,0.8308,0.5565,0.1099,0.4319,0.8952,-0.0709,0.9691,0.2364,-0.3852,0.3223,0.8647,0.0473,0.7181,0.6944,-0.3773,0.8017,0.4637,-0.8271,0.0551,0.5593,-0.5692,0.4506,0.6878,-0.5336,0.3688,0.7611,-0.1885,0.9818,-0.0236,-0.3766,0.9179,-0.1255,-0.6538,0.7563,0.0236,-0.8199,0.5282,-0.2207,-0.2995,0.9457,0.1261,0,0.9317,-0.3632,-0.0631,0.8911,-0.4495,-0.6783,0.6389,-0.3628,0.4963,0.7011,-0.512,0.1805,0.816,0.5492,-0.5691,0.8221,-0.0158,-0.1573,0.3381,0.9279,-0.7758,0.6112,-0.1567,-0.0628,0.3297,0.942,-0.5745,0.5981,0.5588,-0.3923,0.1334,0.9101,-0.1421,-0.0789,0.9867,0.0157,0.4628,0.8863,-0.1727,0.1492,0.9736,-0.4014,0.3778,0.8343,0.0237,0.956,0.2923,0.2122,0.9588,0.1886,0.2515,0.6522,0.7151,0.3871,0.8294,-0.4029,-0.1026,0.9946,-0.0158,-0.0236,0.8183,0.5744,-0.5511,0.8109,-0.1968,-0.2992,0.9135,-0.2756,0.1182,0.993,0.0079,-0.1103,0.9372,0.3308,-0.505,0.8602,0.071,-0.2364,0.4964,0.8353,0,0.9939,0.1104,-0.5679,0.7809,-0.2603,-0.3476,0.4661,0.8136,-0.3628,0.8992,-0.2445,-0.1413,-0.0471,0.9889,-0.5601,0.781,-0.2761,-0.6597,0.6204,-0.4241,-0.6853,0.1969,0.7011,-0.1811,0.2441,0.9527,-0.1976,0.0237,0.98,-0.919,0.2828,0.2749,-0.9511,0.2987,0.0786,-0.8109,0.1732,0.559,-0.7566,0.1734,0.6305,-0.7038,0.514,0.4903,-0.9885,0.1107,0.1028,-0.518,0.6279,0.5808,-0.5103,0.8557,-0.0864,-0.8637,0.5025,0.0393,0.071,0.9463,-0.3154,-0.0236,0.9986,-0.0472,-0.1178,0.9818,0.1492,-0.1811,0.8349,0.5198,-0.4809,0.875,0.0552,-0.64,0.7664,-0.0553,-0.622,0.7715,-0.1338,-0.4586,0.7749,0.4349,-0.7031,0.5688,0.4266,-0.5502,0.8332,-0.055,-0.4566,0.8896,0.0079,-0.4969,0.8518,-0.1656,-0.3784,0.9223,-0.0788,-0.6313,0.6629,-0.4025,-0.7943,0.5662,0.2202,-0.644,0.7226,0.2513,-0.8263,0.543,-0.1495,-0.6928,0.7086,-0.1338,-0.6857,0.7251,-0.0631,-0.3397,0.7664,-0.5452,-0.9884,0.1344,0.0712,-0.4181,0.9072,-0.0473,-0.5679,0.8046,-0.1735,-0.8736,0.3069,-0.3778,-0.2913,0.7874,0.5433,-0.5338,0.8243,0.1884,-0.0551,0.9756,0.2124,-0.3072,0.9452,0.1103,0.1338,0.9605,0.2441,0.1183,0.9388,0.3235,-0.6948,0.679,-0.2369,-0.8751,0.473,-0.1025,-0.6043,0.6593,-0.4474,-0.8637,0.4004,-0.3062,-0.8021,0.5897,0.0944,-0.5516,0.7723,0.3152,-0.6231,0.7256,0.2918,-0.7938,0.5895,0.1493,-0.268,0.7726,-0.5755,0.0393,0.4247,-0.9045,-0.5345,0.8018,0.2673,-0.3298,0.9031,0.2749,-0.4251,0.8974,0.1181,-0.7179,0.6627,-0.213,-0.5741,0.7864,0.2281,-0.6444,0.7073,0.2908,-0.41,0.7491,0.5204,-0.2451,0.8221,-0.5138,-0.055,0.9276,-0.3695,-0.1887,0.9749,-0.1179,-0.0785,0.9969,-0.0078,-0.221,0.9551,-0.1973,-0.3858,0.8897,0.2441,-0.0472,0.9981,0.0393,-0.5641,0.5955,0.572,0.1498,0.8358,0.5283,-0.071,0.9943,-0.0789,0.1805,0.918,0.3531,-0.2591,0.9107,0.3219,0.2049,0.8434,0.4966,-0.3918,0.7444,0.5407,-0.2745,0.957,0.0941,-0.6464,0.6385,0.4178,-0.3469,0.8436,0.41,0.212,0.7066,0.6752,0.3948,0.8054,0.4422,0.1891,0.9692,-0.1576,0.307,0.7401,0.5984,0.6368,0.7232,0.2673,0.3788,0.9075,-0.1815,-0.0079,0.8404,-0.5419,0.0158,0.9696,-0.2444,-0.0236,0.8812,-0.4721,0.589,0.6675,-0.4555,0.7868,0.6058,0.118,-0.0158,0.9562,0.2924,-0.4246,0.9042,0.0472,-0.0948,0.9954,0.0158,0.3305,0.9364,-0.118,0.165,0.9665,-0.1964,-0.1106,0.8692,-0.482,-0.0315,0.7633,-0.6453,0.0473,0.9851,0.1655,-0.0158,0.8532,-0.5214,0.2677,0.9448,-0.189,0.4092,0.8892,-0.2046,0.2847,0.9412,-0.1819,-0.1259,0.9915,-0.0315,0.0863,0.9812,-0.1727,0.244,0.787,-0.5666,0.1334,0.9885,-0.0706,0.1738,0.8451,-0.5055,-0.0079,0.8121,-0.5835,-0.0394,0.931,-0.3629,0.2045,0.7628,-0.6134,-0.0315,0.9995,0.0079,-0.1649,0.9818,0.0943,-0.6969,0.6108,0.3759,-0.0395,0.805,0.5919,-0.5587,0.8263,-0.0708,-0.1336,0.8956,-0.4243,0.2611,0.9414,-0.2136,-0.1336,0.982,0.1336,-0.0869,0.9954,-0.0395,-0.4486,0.6847,0.5745,-0.4084,0.7619,0.5027,-0.1729,0.8647,0.4716,-0.0946,0.9774,0.1892,-0.1024,0.9922,-0.0709,-0.2755,0.9605,0.0394,-0.2823,0.8077,0.5176,-0.2838,0.8908,0.3548,-0.4094,0.8031,0.433,-0.2042,0.9348,0.2906,0.1258,0.8809,0.4562,-0.1182,0.9927,0.0236,-0.2438,0.9672,-0.0708,0.8581,0.2992,0.4173,0.3305,0.8578,0.3935,0.2982,0.6749,0.6749,0.1256,0.7615,0.6359,-0.3143,0.5658,0.7623,0.3141,0.6674,0.6752,-0.15,0.7186,0.6791,0.4953,0.7862,0.3695,0.4183,0.9077,0.0316,-0.4978,0.798,0.3397,-0.512,0.8429,0.1654,0.3372,0.9095,-0.2431,-0.0314,0.9975,-0.0628,-0.6478,0.5767,-0.4977,-0.236,0.8495,0.4719,0.3537,0.8253,0.4402,-0.2448,0.8369,0.4895,-0.1733,0.9847,0.0158,-0.0079,0.8497,0.5272,-0.221,0.7499,0.6236,-0.3695,0.9276,-0.055,0.1501,0.9875,-0.0474,0.1657,0.7889,0.5917,0.1413,0.9186,0.369,-0.314,0.7851,0.5339,-0.1423,0.9883,0.0553,-0.1735,0.8594,0.481,-0.4816,0.8764,0.0079,-0.52,0.8273,0.2127,-0.5027,0.7619,-0.4084,-0.1657,0.9861,-0.0158,-0.0947,0.9944,-0.0474,-0.5207,0.7652,-0.3787,-0.6309,0.7414,-0.2287,-0.5412,0.8315,-0.1255,-0.4882,0.8584,-0.1575,-0.4244,0.8803,-0.2122,-0.5345,0.5817,0.6131,-0.5502,0.8096,-0.2044,-0.4729,0.8669,-0.1576,-0.3161,0.9326,-0.1739,-0.3389,0.9064,-0.2522,-0.3458,0.3458,0.8723,-0.2591,0.9656,-0.0236,-0.3768,0.8714,-0.314,-0.505,0.8602,-0.071,-0.2749,0.9583,-0.0785,-0.2291,0.9479,-0.2212,-0.0316,0.9312,-0.363,0.0394,0.9217,-0.386,-0.0236,0.9123,-0.4089,0.0549,0.9182,-0.3924,0.071,0.9228,-0.3786,0.1495,0.8812,-0.4485,0.1026,0.9947,0.0079,-0.0707,0.9975,-0.0079,-0.0869,0.9871,-0.1343,-0.0946,0.9935,-0.0631,-0.0079,0.991,-0.1337,-0.0235,0.996,-0.0863,0.0314,0.9349,-0.3535,-0.1102,0.9056,-0.4095,-0.0236,0.9538,-0.2995,-0.1418,0.9846,-0.1024,-0.1417,0.8976,-0.4173,-0.4728,0.3782,-0.7959,0.3004,0.7985,-0.5218,0.1816,0.8528,-0.4896,0.4245,0.8491,-0.3145,-0.7655,0.5366,-0.3551,-0.8112,0.5198,-0.2678,-0.755,0.6055,-0.2517,-0.6551,0.6393,-0.4025,-0.6682,0.0865,-0.7389,-0.3614,0.8721,-0.33,0.3385,0.2834,-0.8973,0.0314,0.9883,-0.149,-0.1579,0.9872,-0.0237,0.0314,0.998,-0.055,0.6738,0.6111,-0.4153,-0.1893,0.7652,-0.6153,0.2846,-0.3478,-0.8933,-0.2598,0.4723,-0.8423,0.8905,0.1103,-0.4413,0.3067,0.7708,-0.5584,-0.0628,0.9735,-0.2198,0.7479,0.6141,-0.2519,0.0158,0.9946,-0.1026,0.622,0.7715,-0.1338,0.9819,0.0157,-0.1885,0.1337,0.991,-0.0079,0.8769,0.4345,-0.2054,0.6062,0.6456,-0.4645,0.7218,0.6905,0.0471,-0.3067,0.7471,0.5898,0.3313,0.7651,0.5521,-0.1733,0.9455,-0.2758,0.8579,0.5116,0.0472,0.5264,0.8485,-0.055,-0.0079,0.9995,0.0315,0.1813,0.9694,-0.1655,-0.3065,0.951,-0.0393,-0.3785,0.8989,-0.2208,-0.3628,0.8992,0.2445,0.0947,0.9468,-0.3077,0.2356,0.9502,0.2042,-0.6141,0.7873,-0.0551,-0.0945,0.969,0.2285,0.3146,0.9437,-0.1022,-0.2443,0.6778,-0.6935,0.1027,0.8612,-0.4978,-0.1883,0.981,-0.0471,0.291,0.8888,-0.354,-0.0393,0.9977,-0.055,-0.1343,0.8613,0.4899,0.3398,0.9405,0.0079,-0.0157,0.9968,-0.0785,0.0864,0.9344,0.3455,0.5508,0.7318,0.4013,0.1655,0.9771,-0.134,-0.0079,0.9737,-0.2277,-0.0079,0.9995,-0.0315,-0.1024,0.9927,0.063,0.0315,0.9857,-0.1656,-0.0236,0.9972,-0.0707,0.3541,0.9049,-0.2361,0.3307,0.8503,-0.4094,0.3326,0.8236,-0.4593,-0.1022,0.8959,-0.4323,-0.2357,0.8957,-0.3771,0.3468,0.7804,-0.5203,0.3388,0.8746,-0.3467,0.2195,0.8547,-0.4705,-0.5453,0.8298,-0.1185,0.4256,0.7566,-0.4965,-0.1499,0.9704,-0.1893,0.1259,0.9754,-0.1809,0.2986,0.88,-0.3693,0.4893,0.7893,-0.371,0,0.799,-0.6013,0.0711,0.8775,-0.4743,-0.4643,0.8578,0.2204,0.6246,0.7512,-0.2135,0.3944,0.8992,-0.1893,0.1263,0.9232,-0.363,0.212,0.9735,-0.0864,0.5832,0.7881,-0.197,-0.1418,0.953,-0.2678,-0.1336,0.9744,-0.1807,-0.2528,0.9558,0.1501,-0.1102,0.7557,0.6455,0.2128,0.9221,0.3231,0.4885,0.5594,0.6697,0.2998,0.8756,0.3787,0.2913,0.7874,0.5433,0.5438,0.8355,-0.0788,0.071,0.9778,0.1971,0.1973,0.7814,0.592,0.2759,0.9539,0.1182,0.4643,0.5981,0.6532,-0.0157,0.9998,0.0157,0.5958,0.729,0.3371,0.5212,0.8529,-0.0316,-0.1024,0.9927,-0.063,-0.3139,0.9494,0.0078,-0.2283,0.9445,0.2361,0.1099,0.9895,-0.0942,
2-0.0237,0.7187,-0.695,0.1966,0.6529,-0.7315,0.2438,0.8337,-0.4955,0.2121,0.8878,-0.4085,0.7098,0.5836,-0.3943,0.3079,0.908,0.2842,0.0549,0.8235,0.5647,-0.0471,0.9428,0.33,0.0632,0.9878,-0.1422,0.0552,0.9932,0.1025,0.1177,0.8786,-0.4628,-0.0079,0.9715,-0.2369,0.3942,0.9067,-0.1498,0.3919,0.8621,0.3213,0.5986,0.7955,0.0945,-0.4638,0.794,-0.3931,0.0079,0.9518,0.3068,-0.6706,0.6785,-0.2998,-0.3932,0.6055,-0.692,-0.2448,0.8924,-0.3791,-0.3225,0.6371,-0.7,-0.3148,0.2597,-0.9129,-0.2292,0.5454,-0.8062,-0.3004,0.7825,-0.5454,-0.4556,0.3535,-0.817,-0.2688,0.6404,-0.7195,-0.2603,0.7098,-0.6546,-0.3851,0.7467,-0.5423,-0.0631,0.6938,-0.7174,-0.3067,0.7708,-0.5584,-0.0786,0.9434,-0.3223,-0.0079,0.8056,-0.5924,-0.1418,0.5436,-0.8273]},{"name":"aUV0","stride":2,"data":[0.94043,0.3916,0.96094,0.43018,0.9502,0.39746,0.93457,0.43555,0.95459,0.45947,0.97705,0.45264,0.97217,0.47803,0.98633,0.48486,0.96533,0.51782,0.95117,0.51758,0.95117,0.54199,0.95361,0.49023,0.93896,0.47803,0.91406,0.42822,0.92383,0.41406,0.90625,0.39014,0.94043,0.3667,0.896,0.354,0.93359,0.34814,0.93848,0.54126,0.93701,0.58081,0.93262,0.521,0.92725,0.57349,0.93164,0.62036,0.92236,0.53882,0.90479,0.61206,0.91797,0.64526,0.91602,0.54907,0.9165,0.55957,0.89209,0.54785,0.90332,0.52783,0.91699,0.51953,0.91602,0.50635,0.89551,0.51367,0.90869,0.47754,0.89844,0.49902,0.875,0.51123,0.87744,0.49414,0.85889,0.50659,0.89014,0.46191,0.87109,0.52368,0.89893,0.43213,0.88623,0.4458,0.89014,0.40625,0.88232,0.42334,0.87891,0.38135,0.87549,0.44189,0.87012,0.396,0.86475,0.41846,0.85449,0.55273,0.84131,0.56934,0.84961,0.52759,0.83008,0.53027,0.87891,0.60742,0.83984,0.51416,0.89307,0.62964,0.89746,0.66797,0.91602,0.6709,0.91162,0.69604,0.80908,0.51562,0.83057,0.50537,0.81104,0.52954,0.78809,0.55078,0.82227,0.55005,0.87988,0.64941,0.8501,0.4834,0.86475,0.46826,0.85596,0.45215,0.83838,0.479,0.82227,0.49316,0.86182,0.43311,0.82715,0.46777,0.84766,0.43164,0.84814,0.41162,0.83691,0.4458,0.81396,0.46289,0.82959,0.43604,0.79395,0.49365,0.78516,0.45068,0.85449,0.39404,0.83838,0.41406,0.7998,0.43359,0.8208,0.4165,0.8335,0.38037,0.84766,0.36621,0.82861,0.39941,0.82031,0.39746,0.80615,0.40039,0.78955,0.41553,0.76709,0.43164,0.74316,0.43555,0.86475,0.37207,0.87354,0.36084,0.84912,0.35791,0.85352,0.3374,0.75391,0.3916,0.77979,0.39893,0.74707,0.40918,0.71484,0.39258,0.76953,0.38232,0.73047,0.37451,0.7666,0.36523,0.82812,0.35107,0.82422,0.35986,0.82178,0.37549,0.81006,0.37305,0.79834,0.354,0.79004,0.3667,0.75684,0.33447,0.73877,0.35547,0.80811,0.34424,0.82422,0.33691,0.78271,0.33936,0.79199,0.33545,0.83643,0.34717,0.83984,0.34082,0.84277,0.31445,0.80322,0.33691,0.8667,0.32031,0.78662,0.32227,0.79736,0.32861,0.81494,0.32715,0.76904,0.30908,0.79883,0.31836,0.82471,0.3291,0.80762,0.32227,0.81592,0.31348,0.80762,0.30566,0.84326,0.28857,0.82422,0.2959,0.77051,0.2915,0.78613,0.28418,0.79785,0.27295,0.74707,0.31055,0.77539,0.27539,0.75586,0.27832,0.86719,0.30127,0.89307,0.33252,0.87793,0.25439,0.90869,0.33105,0.86084,0.26758,0.82568,0.2666,0.92285,0.31836,0.9585,0.28271,0.7959,0.25098,0.82715,0.24902,0.90723,0.2749,0.93848,0.27832,0.96143,0.26953,0.85889,0.24365,0.87207,0.2085,0.89111,0.25049,0.94971,0.25635,0.98145,0.23389,0.91797,0.26367,0.93701,0.25732,0.92285,0.25049,0.9375,0.24951,0.95215,0.23584,0.93799,0.23486,0.9043,0.24121,0.92188,0.23389,0.94287,0.21875,0.95752,0.22412,0.9707,0.20752,0.98828,0.17627,0.97754,0.17334,0.95654,0.20557,0.95264,0.18555,0.93945,0.20703,0.91895,0.21729,0.94629,0.16992,0.96924,0.15088,0.90527,0.21777,0.91016,0.19678,0.93604,0.18652,0.89697,0.21826,0.89746,0.20117,0.88428,0.21924,0.8877,0.19238,0.91846,0.17969,0.90381,0.17969,0.89551,0.16846,0.93311,0.1748,0.91748,0.15625,0.87939,0.1792,0.94043,0.16113,0.92871,0.15381,0.95166,0.1582,0.94629,0.14453,0.95801,0.14062,0.94385,0.11426,0.93262,0.12939,0.91357,0.12305,0.92188,0.09521,0.92676,0.13623,0.91846,0.13574,0.90527,0.14502,0.89502,0.14258,0.91113,0.10742,0.896,0.10107,0.91064,0.0835,0.88574,0.05664,0.88135,0.03955,0.89355,0.12109,0.875,0.13916,0.87744,0.10645,0.86279,0.07666,0.8623,0.17871,0.85498,0.19824,0.84131,0.16846,0.86133,0.12793,0.83301,0.16309,0.82666,0.20361,0.85547,0.10059,0.84863,0.12305,0.84521,0.0918,0.82617,0.22754,0.82764,0.11963,0.81494,0.23291,0.81201,0.20361,0.81201,0.21924,0.79492,0.22656,0.82129,0.19336,0.80859,0.18311,0.79248,0.19824,0.81885,0.1582,0.7832,0.23975,0.79395,0.2168,0.76953,0.21143,0.7627,0.25244,0.77588,0.19238,0.78223,0.15967,0.79639,0.14502,0.79785,0.12305,0.77002,0.12939,0.76855,0.22998,0.77051,0.16064,0.75684,0.13037,0.76367,0.17041,0.76221,0.18896,0.75781,0.20166,0.75439,0.22949,0.74219,0.15576,0.77979,0.11133,0.74365,0.25537,0.73242,0.15723,0.78955,0.09668,0.76709,0.1001,0.80566,0.08301,0.80371,0.03613,0.83887,0.05225,0.85059,0.04346,0.85205,0.01465,0.82764,0.01758,0.83594,0.00244,0.81934,0.00928,0.7793,0.0293,0.77979,0.00146,0.74951,0.00732,0.74658,0.02441,0.7207,0.07617,0.69922,0.06348,0.67822,0.07275,0.65576,0.09961,0.64209,0.09863,0.63281,0.11133,0.61182,0.08984,0.60352,0.10352,0.62354,0.11621,0.60254,0.12061,0.6123,0.14111,0.58594,0.13086,0.58594,0.15088,0.63281,0.13281,0.65967,0.14111,0.59424,0.16602,0.56982,0.16455,0.63721,0.1582,0.63525,0.16943,0.60986,0.16943,0.65137,0.16309,0.6665,0.125,0.6748,0.14502,0.69678,0.10449,0.69482,0.13037,0.60303,0.18164,0.58643,0.19824,0.62109,0.17969,0.61475,0.20166,0.63135,0.19287,0.64453,0.18896,0.66406,0.16162,0.69873,0.15088,0.65674,0.17627,0.67822,0.16992,0.70996,0.15918,0.66602,0.18359,0.69043,0.17773,0.6416,0.21045,0.6626,0.2002,0.68213,0.18555,0.70361,0.18262,0.68359,0.20752,0.63379,0.20801,0.67188,0.22021,0.6377,0.23486,0.61963,0.22705,0.59961,0.22021,0.72412,0.19531,0.72314,0.14404,0.70801,0.12256,0.74365,0.20947,0.72852,0.22314,0.74
2121,0.229,0.72119,0.12793,0.7207,0.09912,0.69336,0.22607,0.72119,0.24072,0.72656,0.2627,0.74414,0.12646,0.72803,0.10938,0.74902,0.10596,0.68555,0.24512,0.74365,0.09229,0.76172,0.08984,0.73389,0.08301,0.75049,0.08154,0.75391,0.06787,0.77686,0.08984,0.76367,0.07715,0.77344,0.06201,0.78564,0.08008,0.77539,0.07617,0.79102,0.06445,0.70996,0.25391,0.69531,0.26758,0.66504,0.24219,0.64795,0.26318,0.61377,0.25146,0.6001,0.23633,0.71387,0.28564,0.68359,0.28613,0.7417,0.27783,0.72998,0.29883,0.69678,0.2998,0.7168,0.31396,0.65723,0.30225,0.72168,0.32861,0.68652,0.31104,0.69678,0.32275,0.6875,0.36035,0.7085,0.35156,0.65625,0.33008,0.65674,0.3208,0.72363,0.3623,0.71338,0.36914,0.69727,0.36914,0.7041,0.38379,0.6377,0.30664,0.61621,0.3335,0.63623,0.27979,0.62207,0.271,0.69336,0.39453,0.69092,0.38232,0.67383,0.39844,0.68604,0.37598,0.71533,0.42188,0.7168,0.44775,0.6709,0.38477,0.68262,0.40771,0.6626,0.37549,0.69238,0.43555,0.6626,0.43652,0.65869,0.38867,0.62354,0.35303,0.64258,0.37744,0.65479,0.39648,0.65088,0.41064,0.63916,0.39014,0.62109,0.38184,0.60596,0.36963,0.625,0.40283,0.61279,0.34717,0.604,0.33936,0.61328,0.39648,0.6084,0.31787,0.62793,0.29688,0.61768,0.2876,0.59961,0.29932,0.59326,0.28369,0.59033,0.3291,0.5835,0.34717,0.59326,0.37402,0.57471,0.31006,0.60205,0.3999,0.57227,0.28857,0.58984,0.25684,0.56592,0.26855,0.56299,0.24023,0.61523,0.43896,0.60498,0.44434,0.64014,0.4873,0.62744,0.49365,0.63916,0.50879,0.58496,0.23828,0.62842,0.43799,0.58496,0.21826,0.54834,0.21924,0.64551,0.46533,0.5498,0.18848,0.53271,0.19775,0.53613,0.17432,0.50781,0.17285,0.54541,0.16113,0.53027,0.15234,0.69238,0.47217,0.68652,0.5061,0.69971,0.50781,0.66553,0.49268,0.65479,0.50903,0.646,0.53931,0.67676,0.52173,0.66748,0.53027,0.70166,0.5249,0.71924,0.52075,0.65771,0.56006,0.64307,0.55518,0.64307,0.59888,0.68262,0.53882,0.67285,0.55737,0.66553,0.59692,0.63965,0.62451,0.69824,0.54639,0.71338,0.54688,0.71436,0.56836,0.69385,0.55762,0.69043,0.57251,0.67383,0.58887,0.73193,0.54785,0.66699,0.62451,0.68262,0.61572,0.69238,0.63525,0.69092,0.60059,0.71045,0.58862,0.69482,0.61743,0.71045,0.60913,0.71338,0.61938,0.64746,0.65063,0.63574,0.64917,0.62842,0.65845,0.72949,0.60571,0.73779,0.58057,0.72803,0.5918,0.7417,0.59888,0.73584,0.61768,0.74902,0.5708,0.75977,0.58521,0.73193,0.63135,0.75781,0.63013,0.75098,0.61157,0.76562,0.60522,0.77637,0.59351,0.77393,0.57593,0.75391,0.54834,0.76855,0.56079,0.73389,0.53247,0.77393,0.61914,0.77881,0.6084,0.78857,0.62207,0.7749,0.6311,0.79004,0.60864,0.76855,0.65454,0.79736,0.6355,0.80908,0.61523,0.80029,0.59717,0.82666,0.59473,0.74463,0.64966,0.71289,0.6521,0.72852,0.66602,0.70068,0.66211,0.82373,0.63232,0.67725,0.65063,0.65332,0.65771,0.64062,0.67676,0.66455,0.66919,0.68018,0.66821,0.69873,0.67725,0.68604,0.69971,0.66895,0.698,0.61035,0.68188,0.60742,0.67236,0.58252,0.69556,0.65186,0.68652,0.62158,0.70874,0.61865,0.69922,0.59814,0.7085,0.59521,0.73926,0.58203,0.72437,0.56641,0.70605,0.56055,0.72095,0.6543,0.729,0.6792,0.7478,0.56836,0.73584,0.57666,0.74634,0.55225,0.73047,0.54443,0.72168,0.53125,0.73071,0.55859,0.74121,0.54443,0.74731,0.56396,0.75171,0.57764,0.76208,0.53027,0.75745,0.54785,0.75745,0.56543,0.76416,0.56641,0.77808,0.55273,0.76978,0.51611,0.75623,0.50684,0.73706,0.4895,0.76379,0.53271,0.76917,0.51904,0.77917,0.50488,0.7804,0.54834,0.77734,0.53027,0.78748,0.47461,0.78955,0.46021,0.7738,0.44458,0.79285,0.51123,0.79443,0.54736,0.78406,0.46094,0.80957,0.43311,0.80945,0.44922,0.82666,0.49048,0.81323,0.5083,0.82263,0.47559,0.8219,0.50488,0.84753,0.48584,0.85876,0.48926,0.87402,0.50732,0.88501,0.52197,0.83252,0.53467,0.88702,0.52197,0.90796,0.5708,0.92914,0.56396,0.95065,0.55078,0.79272,0.53418,0.83911,0.58545,0.94382,0.5835,0.95862,0.6084,0.94257,0.60498,0.99843,0.63135,0.95026,0.63232,0.9894,0.64746,0.97212,0.67334,0.96402,0.66357,0.94223,0.70557,0.91888,0.63232,0.9248,0.61133,0.91211,0.63477,0.8877,0.65332,0.9173,0.67725,0.90002,0.65137,0.81726,0.59424,0.89087,0.71191,0.89319,0.72705,0.91754,0.69238,0.84485,0.57471,0.89661,0.57471,0.8866,0.76514,0.86121,0.76465,0.88055,0.78467,0.84485,0.5415,0.88043,0.51465,0.85413,0.52734,0.85095,0.54736,0.86865,0.56836,0.88318,0.55957,0.86938,0.59131,0.87842,0.61
2719,0.87775,0.63135,0.8302,0.61182,0.83887,0.60352,0.85962,0.62598,0.81873,0.58691,0.87341,0.5752,0.87872,0.58643,0.8606,0.58154,0.86646,0.57422,0.8634,0.58447,0.85437,0.56445,0.84045,0.58057,0.83484,0.59131,0.83655,0.56299,0.80981,0.60303,0.83789,0.60107,0.82288,0.57422,0.80493,0.54932,0.80688,0.5625,0.79492,0.60547,0.8125,0.58838,0.80566,0.57812,0.7876,0.60205,0.79602,0.58789,0.77429,0.61523,0.8064,0.60107,0.78296,0.59521,0.76404,0.61963,0.79163,0.62891,0.80078,0.60596,0.77393,0.61426,0.75024,0.63672,0.80688,0.62256,0.78052,0.63525,0.78857,0.66162,0.78931,0.63428,0.77136,0.66943,0.76965,0.6123,0.73682,0.64355,0.74536,0.68799,0.79614,0.62744,0.72827,0.62988,0.73901,0.70947,0.82507,0.71094,0.80359,0.7085,0.85144,0.72949,0.8363,0.74219,0.84985,0.74658,0.81348,0.76172,0.83093,0.77979,0.80774,0.81836,0.77832,0.75488,0.78967,0.72217,0.79419,0.81201,0.76599,0.83545,0.76721,0.84131,0.74854,0.69873,0.75989,0.78223,0.77649,0.72266,0.76062,0.76074,0.76379,0.8042,0.74585,0.82178,0.7478,0.83252,0.729,0.86035,0.74854,0.69629,0.71143,0.81299,0.73071,0.78809,0.74561,0.76367,0.74609,0.79248,0.73022,0.76953,0.72705,0.74561,0.73584,0.72461,0.72314,0.71436,0.71558,0.70459,0.70044,0.75146,0.71704,0.72607,0.70337,0.7085,0.68652,0.73096,0.68848,0.78174,0.70752,0.73633,0.67749,0.75146,0.6958,0.7627,0.67261,0.77441,0.68848,0.79492,0.66943,0.80371,0.71729,0.79932,0.69238,0.81396,0.67822,0.82861,0.71021,0.81689,0.69629,0.83496,0.65991,0.85791,0.71655,0.88086,0.71387,0.90234,0.72388,0.87744,0.69604,0.89648,0.68555,0.88037,0.67676,0.86621,0.67847,0.85352,0.67041,0.8584,0.64502,0.85254,0.60815,0.83057,0.57056,0.82031,0.56714,0.81299,0.58667,0.79443,0.5708,0.7998,0.58472,0.78564,0.59082,0.7876,0.58301,0.77539,0.53955,0.76758,0.53174,0.78662,0.53613,0.78125,0.52515,0.75293,0.52344,0.78613,0.50732,0.76758,0.49463,0.73486,0.52124,0.73047,0.50659,0.71289,0.5,0.7251,0.45996,0.73438,0.47754,0.76562,0.47754,0.73438,0.44678,0.76074,0.45557,0.74658,0.46533]},{"name":"aUV1","stride":2,"data":[0.50732,0.39307,0.52783,0.43115,0.51709,0.39941,0.50195,0.43652,0.52148,0.45996,0.54346,0.45361,0.53906,0.47852,0.55273,0.48486,0.53223,0.51758,0.51855,0.51733,0.51807,0.54126,0.52051,0.49023,0.50635,0.47803,0.48169,0.4292,0.49146,0.41553,0.47412,0.3916,0.50732,0.36865,0.46411,0.35645,0.50098,0.35059,0.50586,0.54077,0.50391,0.57959,0.5,0.52075,0.49463,0.57227,0.49902,0.61841,0.48999,0.53809,0.47241,0.61035,0.48584,0.64307,0.48389,0.54834,0.48389,0.55859,0.46021,0.54712,0.47119,0.52734,0.48462,0.51929,0.48364,0.5061,0.46362,0.51343,0.47656,0.47803,0.46631,0.49902,0.44336,0.51123,0.44556,0.49414,0.42749,0.50635,0.4585,0.4624,0.43921,0.52344,0.4668,0.43359,0.45435,0.44678,0.45801,0.40771,0.45044,0.4248,0.44727,0.38281,0.44385,0.44287,0.43823,0.39746,0.43311,0.41992,0.4231,0.55176,0.41016,0.56836,0.41821,0.5271,0.39893,0.53003,0.44727,0.60571,0.40894,0.51392,0.46118,0.62769,0.46533,0.66528,0.4834,0.66821,0.47949,0.69312,0.37817,0.51538,0.39966,0.50537,0.38013,0.5293,0.35742,0.55005,0.39136,0.54932,0.448,0.64722,0.4187,0.4834,0.43311,0.46875,0.42456,0.45312,0.40698,0.479,0.3916,0.49316,0.43018,0.43408,0.39624,0.46826,0.4165,0.43262,0.41675,0.41309,0.40576,0.44678,0.3833,0.46338,0.39868,0.43701,0.36353,0.49365,0.35474,0.45117,0.4231,0.396,0.40723,0.41553,0.36938,0.43457,0.38989,0.41748,0.40259,0.38232,0.41626,0.36816,0.39771,0.40088,0.38965,0.39893,0.37524,0.40186,0.35913,0.4165,0.33691,0.43262,0.31348,0.43652,0.43311,0.37402,0.44189,0.36279,0.41797,0.35986,0.42212,0.33984,0.32397,0.39355,0.34961,0.40039,0.31714,0.41064,0.2854,0.39404,0.33936,0.38379,0.30103,0.37646,0.33667,0.36719,0.39697,0.35303,0.39355,0.36182,0.39062,0.37744,0.37964,0.375,0.36768,0.35596,0.35986,0.36865,0.3269,0.3374,0.30933,0.35742,0.37744,0.34668,0.39331,0.33936,0.35254,0.3418,0.36157,0.33838,0.40527,0.34961,0.40869,0.34326,0.41162,0.31738,0.37256,0.33936,0.4353,0.32275,0.3562,0.32471,0.3667,0.33154,0.38403,0.32959,0.33911,0.31201,0.36816,0.3208,0.39355,0.33203,0.37695,0.3252,0.38477,0.31641,0.37671,0.30859,0.41187,0.29199,0.39307,0.29932,0.34058,0.29492,0.35596,0.2876,0.36719,0.27637,0.31714,0.31348,0.34521,0.27881,0.32593,0.28174,0.43579,0.3042,0.46118,0.33496,0.44604,0.2583,0.47632,0.3335,0.4292,0.271,0.39453,0.27002,0.49023,0.3208,0.52539,0.28564,0.36523,0.25488,0.396,0.25293,0.4751,0.27832,0.50
2586,0.28174,0.52832,0.27295,0.42749,0.24756,0.44019,0.21289,0.45923,0.25391,0.51709,0.26025,0.54785,0.23779,0.4856,0.26709,0.50439,0.26074,0.49023,0.25439,0.50488,0.25342,0.51904,0.23975,0.50537,0.23877,0.47192,0.24512,0.48926,0.23828,0.51025,0.22314,0.52441,0.22852,0.53711,0.21191,0.55469,0.18115,0.54443,0.17822,0.52344,0.21045,0.51953,0.19043,0.50684,0.21143,0.48633,0.22168,0.51367,0.1748,0.53613,0.15576,0.47314,0.22217,0.47803,0.20117,0.50342,0.19092,0.46484,0.22266,0.46533,0.20557,0.45239,0.22363,0.45557,0.19678,0.48633,0.18457,0.47168,0.18457,0.46313,0.17334,0.5,0.18018,0.48511,0.16162,0.44727,0.18408,0.50781,0.1665,0.49609,0.15918,0.51855,0.16357,0.51367,0.1499,0.5249,0.14648,0.51074,0.12012,0.5,0.13477,0.48145,0.12842,0.48975,0.10107,0.49414,0.1416,0.48584,0.14111,0.47314,0.15039,0.46289,0.14795,0.479,0.11328,0.46411,0.10742,0.47827,0.08936,0.45361,0.06348,0.44971,0.04639,0.46143,0.12695,0.44312,0.14453,0.4458,0.1123,0.4314,0.08301,0.43091,0.18359,0.42358,0.20264,0.41016,0.17334,0.42993,0.1333,0.4021,0.16797,0.39575,0.20801,0.42407,0.10645,0.41699,0.12891,0.41382,0.09814,0.39526,0.23145,0.39673,0.12549,0.38428,0.2373,0.38135,0.20801,0.3811,0.22363,0.36426,0.23096,0.39014,0.19824,0.37817,0.1875,0.36206,0.20312,0.38818,0.16357,0.35278,0.24365,0.36328,0.22119,0.33911,0.21582,0.33276,0.25635,0.3457,0.19727,0.35181,0.16504,0.36572,0.15039,0.36719,0.12891,0.34009,0.13477,0.33862,0.23438,0.34033,0.16602,0.32666,0.13623,0.3335,0.17529,0.33203,0.19336,0.32812,0.20605,0.32446,0.23389,0.31274,0.16113,0.34937,0.11719,0.31396,0.25928,0.30273,0.16211,0.35913,0.10254,0.33716,0.10645,0.375,0.08936,0.37305,0.04346,0.40796,0.05908,0.41943,0.05029,0.4209,0.02197,0.39673,0.0249,0.40454,0.01025,0.38843,0.0166,0.34888,0.03613,0.34937,0.00879,0.31958,0.01514,0.31689,0.03174,0.2915,0.08301,0.27026,0.07031,0.24976,0.0791,0.22742,0.10547,0.21411,0.10498,0.20496,0.11719,0.18408,0.09619,0.17615,0.10938,0.1958,0.12207,0.17493,0.12646,0.18469,0.14648,0.15845,0.13623,0.15869,0.15625,0.20459,0.13818,0.23108,0.14648,0.16699,0.1709,0.14282,0.16943,0.20935,0.16309,0.20728,0.17432,0.18237,0.17432,0.22302,0.16797,0.23779,0.13086,0.24634,0.15039,0.26782,0.11035,0.26587,0.13623,0.17542,0.18652,0.15918,0.20264,0.19348,0.18457,0.18701,0.20605,0.20349,0.19775,0.21643,0.19336,0.23535,0.1665,0.26978,0.15625,0.22852,0.18115,0.24963,0.1748,0.28101,0.16455,0.23755,0.18848,0.26172,0.18262,0.21338,0.21484,0.23389,0.20508,0.25317,0.18994,0.27441,0.1875,0.25488,0.21191,0.20593,0.2124,0.24329,0.22461,0.20972,0.23877,0.19165,0.23096,0.17236,0.22461,0.29468,0.2002,0.29395,0.14941,0.27856,0.12842,0.31396,0.21387,0.29907,0.22754,0.31152,0.23291,0.29199,0.1333,0.29126,0.10498,0.2644,0.23047,0.29199,0.24463,0.29712,0.26611,0.31445,0.13184,0.29858,0.11523,0.31909,0.1123,0.25659,0.24902,0.31372,0.09863,0.33154,0.0957,0.30444,0.08936,0.32056,0.08789,0.32397,0.07471,0.34644,0.0957,0.33374,0.0835,0.34326,0.06885,0.35547,0.08643,0.34521,0.08252,0.3606,0.0708,0.28052,0.25781,0.26611,0.27148,0.23657,0.24609,0.21985,0.2666,0.18616,0.25537,0.17261,0.24023,0.28442,0.28906,0.25488,0.28906,0.31201,0.28125,0.30054,0.30225,0.26758,0.30273,0.28735,0.31689,0.22888,0.30518,0.29224,0.33105,0.25732,0.31396,0.26782,0.32568,0.25879,0.3623,0.2793,0.35352,0.22815,0.33252,0.22839,0.32324,0.29419,0.36426,0.28418,0.37109,0.26831,0.37109,0.27466,0.38525,0.20947,0.30957,0.1886,0.33594,0.20813,0.2832,0.19446,0.27441,0.26465,0.39648,0.26221,0.38428,0.24524,0.3999,0.25708,0.37793,0.28589,0.42285,0.28735,0.44873,0.24219,0.38623,0.25391,0.40918,0.23389,0.37744,0.26343,0.43652,0.23413,0.4375,0.2301,0.39062,0.19543,0.35547,0.21436,0.37939,0.22644,0.39795,0.22253,0.41211,0.21094,0.39209,0.19336,0.3833,0.17822,0.37158,0.19702,0.4043,0.1853,0.34961,0.17639,0.3418,0.18579,0.39795,0.18079,0.32031,0.2002,0.2998,0.1897,0.29053,0.17224,0.30225,0.16589,0.28711,0.16296,0.33154,0.15613,0.34961,0.16577,0.37598,0.14758,0.31299,0.17456,0.40137,0.14539,0.29199,0.16272,0.26025,0.13916,0.27197,0.13611,0.24414,0.18738,0.43994,0.17749,0.44531,0.21216,0.4873,0.19971,0.49365,0.21094,0.50879,0.15759,0.24268,0.20032,0.43896,0.15747,0.22266,0.12164,0.22363,0.21741,0.46582,0.12305,0.19336,0.10608,0.20215,0.10944,0.1792,0.08197,0.17773,0.11859,0.16602,0.10388,0.15771,0.26367,0.47266,0.25757,0.50586,0.27075,0.50757,0.23718,0.49268,0.22656,0.50903,0.21765,0.53882,0.24805,0.52148,0.23889,0.52979,0.27271,0.52441,0.28979,0.52051,0.22937,0.55908,0.21472,0.55444,0.21484,0.59741,0.25391,0.53833,0.24451,0.5564,0.23718,0.59546,0.21155,0.62256,0.26929,0.5459,0.28394,0.54614,0.2854,0.56738,0.26514,0.55688,0.26123,0.57129,0.24512,0.5874,0.30225,0.54712,0.23828,0.62256,0.25366,0.61377,0.26318,0.63306,0.26196,0.59912,0.28101,0.5874,0.26587,0.61572,0.28125,0.60767,0.28418,0.61743,0.21924,0.64844,0.20789,0.64697,0.20044,0.65601,0.2998,0.604,0.30811,0.57935,0.29858,0.59058,0.31177,0.59741,0.3064,0.61597,0.31909,0.56958,0.32959,0.58398,0.30225,0.62939,0.32788,0.62817,0.32104,0.60986,0.33545,0.60376,0.34595,0.59204,0.34351,0.57471,0.32422,0.54761,0.33862,0.55981,0.3042,0.53198,0.34375,0.61743,0.34863,0.60669,0.35791,0.62012,0.34497,0.62915,0.35986,0.60693,0.33862,0.6521,0.3667,0.63354,0.37817,0.61353,0.36963,0.5957,0.39575,0.59326,0.31494,0.64746,0.28345,0.64966,0.29883,0.66357,0.27148,0.65967,0.39258,0.63037,0.24854,0.64844,0.22485,0.65527,0.2124,0.67407,0.23621,0.66675,0.25122,0.66577,0.26953,0.67456,0.25708,0.69678,0.24023,0.69507,0.18262,0.67896,0.17957,0.66968,0.15515,0.69263,0.22351,0.68359,0.19385,0.70557,0.1908,0.69604,0.1709,0.70532,0.16772,0.7356,0.15491,0.72095,0.13953,0.70288,0.13342,0.71753,0.22607,0.72559,0.25024,0.74414,0.14111,0.73242,0.14978,0.74268,0.12561,0.72705,0.1178,0.71826,0.10486,0.72705,0.13184,0.73755,0.11768,0.74365,0.13708,0.74805,0.15063,0.75818,0.10382,0.75354,0.12097,0.75354,0.13818,0.76013,0.13928,0.77393,0.12573,0.76
2562,0.09015,0.75232,0.08069,0.7334,0.0636,0.75977,0.10632,0.76514,0.09277,0.77502,0.07892,0.77625,0.1217,0.77307,0.10388,0.78308,0.04892,0.78516,0.03473,0.76965,0.01941,0.78845,0.08496,0.79004,0.12054,0.77966,0.03558,0.80493,0.00806,0.80481,0.02385,0.82178,0.06464,0.80859,0.08234,0.81775,0.04999,0.81702,0.07874,0.84229,0.06006,0.85327,0.06342,0.86841,0.08112,0.87921,0.09583,0.82751,0.10834,0.88116,0.09552,0.90179,0.14392,0.92267,0.13721,0.94385,0.12415,0.78833,0.1076,0.83398,0.1582,0.93713,0.15601,0.95166,0.18079,0.93585,0.17737,0.99088,0.20337,0.94345,0.2041,0.98199,0.21924,0.965,0.24463,0.957,0.23511,0.93555,0.27661,0.91254,0.20422,0.91833,0.18347,0.90588,0.20667,0.88184,0.2251,0.91095,0.24829,0.89398,0.22327,0.8125,0.16687,0.88495,0.28247,0.88727,0.29761,0.91119,0.26318,0.8396,0.14758,0.89062,0.14746,0.88074,0.33496,0.85571,0.33472,0.87476,0.35449,0.8396,0.11499,0.87476,0.08856,0.84875,0.10083,0.8457,0.12073,0.86304,0.14111,0.87738,0.13269,0.86389,0.16406,0.87268,0.18921,0.87207,0.20325,0.8252,0.18396,0.83374,0.1759,0.85413,0.19812,0.81384,0.15942,0.8678,0.14795,0.87305,0.15894,0.8551,0.15442,0.86084,0.14722,0.85791,0.15698,0.849,0.13745,0.83533,0.15356,0.82971,0.16406,0.83142,0.13599,0.80518,0.17566,0.83276,0.17383,0.81799,0.14734,0.80029,0.12256,0.80225,0.13538,0.79053,0.17773,0.80774,0.16101,0.80103,0.15112,0.78333,0.17444,0.7915,0.1604,0.77014,0.18738,0.80176,0.17346,0.77869,0.1676,0.76013,0.19189,0.78723,0.20081,0.79626,0.17834,0.76978,0.18677,0.74658,0.20837,0.80225,0.19458,0.77637,0.20715,0.78418,0.2334,0.78491,0.20605,0.76721,0.24097,0.7655,0.18481,0.73315,0.21521,0.7417,0.25903,0.79175,0.19946,0.72485,0.20203,0.73535,0.28003,0.82007,0.28149,0.79907,0.27905,0.84619,0.30005,0.83118,0.31274,0.8446,0.31689,0.80872,0.33154,0.82593,0.34961,0.8031,0.38745,0.77417,0.32471,0.78528,0.29297,0.78979,0.3811,0.76196,0.40454,0.76318,0.41016,0.74487,0.26953,0.75586,0.35205,0.77234,0.29297,0.75671,0.33081,0.75977,0.37354,0.74219,0.39087,0.74414,0.40137,0.72559,0.42896,0.74487,0.26733,0.70825,0.38232,0.72705,0.35742,0.74194,0.3335,0.74243,0.36206,0.72656,0.3396,0.72363,0.31592,0.73242,0.29517,0.71973,0.28516,0.7124,0.27563,0.69727,0.32153,0.71387,0.29688,0.7002,0.2793,0.68384,0.30176,0.68579,0.35132,0.70435,0.30688,0.6748,0.32178,0.69287,0.33252,0.67017,0.34424,0.68555,0.3645,0.66699,0.3728,0.71411,0.3689,0.68945,0.3833,0.67554,0.39746,0.70703,0.38623,0.69336,0.40381,0.65747,0.42651,0.71338,0.44873,0.71069,0.47021,0.72046,0.4458,0.69312,0.4646,0.68286,0.44824,0.67407,0.43457,0.67578,0.42188,0.66797,0.42676,0.64282,0.4209,0.60645,0.39966,0.56934,0.3894,0.56616,0.38208,0.58521,0.36377,0.56958,0.3689,0.5835,0.35522,0.5896,0.35718,0.58179,0.34497,0.53906,0.3374,0.53125,0.35645,0.53564,0.35107,0.52466,0.32324,0.52295,0.35571,0.50732,0.33765,0.49463,0.30518,0.521,0.30103,0.50635,0.28369,0.5,0.29541,0.46045,0.30469,0.47754,0.33569,0.47754,0.30469,0.44775,0.33081,0.45605,0.31665,0.46582]}]},{"name":"SM_RockGroup01_A_2_LOD0","instanceId":"id_277460","indices":[0,2,1,2,0,3,3,4,2,3,0,5,0,6,5,4,3,7,3,5,7,6,8,5,9,8,6,4,7,10,4,10,11,7,5,12,8,12,5,9,13,8,13,9,14,11,10,15,16,11,15,7,17,10,17,7,12,15,10,17,18,12,8,18,8,13,16,15,19,16,19,20,21,17,12,18,21,12,17,22,15,17,21,22,15,22,19,19,22,23,19,24,20,23,24,19,20,24,25,21,26,22,21,18,26,22,26,23,24,27,25,28,25,27,27,29,28,30,27,24,24,23,30,29,27,31,31,27,30,29,31,32,32,31,33,33,34,32,30,35,31,33,31,35,33,35,36,30,37,35,30,23,37,37,38,35,35,38,36,23,39,37,38,37,39,40,38,39,23,41,39,26,41,23,34,33,42,34,42,43,42,44,43,43,44,45,46,42,33,44,42,46,47,46,33,36,47,33,38,40,48,36,38,48,39,41,49,40,39,49,44,50,45,50,51,45,50,52,51,52,53,51,53,52,54,52,55,54,54,55,56,57,56,55,57,58,56,59,58,57,60,55,52,55,60,57,44,61,50,50,62,52,62,50,61,63,62,61,64,61,44,64,63,61,46,64,44,47,64,46,62,65,52,65,60,52,63,66,62,66,65,62,67,64,47,68,63,64,67,68,64,69,67,47,69,47,36,70,67,69,70,69,36,67,71,68,67,70,71,36,72,70,48,72,36,48,73,72,48,40,73,68,71,74,71,70,75,75,74,71,70,76,75,76,70,72,68,77,63,74,77,68,75,78,74,78,75,76,79,77,74,63,77,79,74,78,79,80,63,79,63,80,66,79,81,80,79,78,81,66,80,82,82,80,81,78,83,81,81,83,82,76,84,78,78,84,83,83,84,85,82,86,66,86,65,66,83,87,82,87,83,85,87,86,82,76,88,84,76,72,88,84,88,89,89,85,84,72,90,88,88,90,89,90,72,73,65,86,91,87,92,86,91,86,92,85,93,87,93,92,87,94,92,93,95,65,91,65,95,60,95,96,60,60,96,57,91,97,95,97,96,95,92,98,91,92,94,99,99,98,92,98,100,91,100,97,91,101,98,99,94,101,99,101,100,98,96,102,57,96,97,103,96,103,102,97,100,104,103,97,104,102,105,57,57,105,59,103,106,102,106,105,102,107,59,105,108,59,107,109,106,103,109,103,104,110,105,106,105,110,
2107,110,106,109,111,108,107,107,110,111,112,108,111,113,110,109,113,111,110,111,114,112,113,114,111,112,114,115,112,115,116,117,116,115,109,104,118,113,109,118,114,113,119,115,114,119,120,119,113,113,118,120,119,121,115,120,121,119,104,122,118,123,120,118,122,123,118,121,120,124,124,120,123,125,115,121,124,125,121,122,104,126,100,126,104,126,100,101,127,123,122,128,124,123,123,127,128,126,129,122,127,122,129,101,130,126,129,126,130,124,128,131,124,131,125,132,128,127,132,131,128,130,101,133,134,130,133,94,133,101,133,135,134,133,94,135,129,136,127,130,137,129,136,129,137,132,127,138,138,127,136,139,130,134,137,130,139,137,139,140,139,134,140,137,141,136,137,140,141,136,142,138,136,141,142,140,143,141,143,140,134,144,142,141,141,143,144,142,145,138,142,144,145,138,146,132,138,145,147,138,147,146,132,146,148,148,131,132,149,143,134,144,143,150,149,150,143,144,151,145,150,151,144,145,151,152,153,147,145,153,145,152,147,154,146,147,153,154,151,150,155,152,151,155,146,156,148,154,156,146,157,149,134,157,134,135,150,149,158,155,150,158,159,158,149,158,159,155,155,160,152,155,159,160,149,157,161,149,161,159,160,159,162,162,152,160,163,159,161,163,162,159,135,164,157,165,161,157,165,157,164,166,164,135,135,94,166,167,163,161,161,165,167,168,164,166,168,165,164,94,169,166,94,93,169,170,166,169,170,169,93,166,170,168,93,171,170,171,168,170,171,93,85,168,172,165,172,168,171,85,173,171,173,172,171,174,172,173,174,173,175,85,175,173,85,89,175,89,176,175,176,174,175,89,90,176,172,177,165,177,167,165,177,172,178,172,174,178,167,177,179,179,177,178,174,180,178,179,178,180,181,167,179,181,163,167,163,181,182,162,163,182,162,182,183,183,152,162,184,152,183,184,153,152,182,185,183,183,185,184,182,181,186,186,185,182,187,185,186,181,179,188,188,186,181,179,180,189,179,189,188,184,190,153,190,154,153,184,185,191,185,187,191,190,184,192,192,184,191,154,190,193,192,193,190,180,194,189,180,174,194,193,195,154,156,154,195,196,156,195,197,196,195,195,193,198,195,198,197,193,192,199,199,198,193,192,191,200,200,199,192,200,191,201,187,201,191,201,202,200,202,199,200,198,199,203,203,197,198,203,204,197,199,205,203,202,205,199,202,201,206,206,201,187,187,207,206,208,207,187,209,203,205,209,204,203,205,202,210,209,205,210,210,202,206,187,211,208,186,211,187,211,186,212,186,188,212,208,211,213,211,212,213,188,214,212,188,189,214,214,215,212,212,215,213,213,215,216,217,216,215,214,217,215,189,217,214,194,217,189,213,218,208,208,218,207,219,218,213,219,213,216,218,219,207,217,194,220,216,217,220,221,207,219,221,219,216,222,221,216,223,220,194,194,174,223,174,224,223,224,220,223,174,176,224,207,221,225,225,221,222,226,224,176,176,90,226,90,227,226,227,228,226,227,90,73,73,229,227,73,40,229,229,230,227,230,228,227,229,40,231,229,231,230,231,40,232,49,232,40,233,230,231,233,231,232,234,228,230,230,233,234,224,226,235,228,236,226,235,226,236,235,237,224,220,224,237,236,238,235,235,238,237,220,237,239,239,216,220,236,228,240,236,240,238,237,241,239,237,238,241,216,239,242,242,222,216,239,243,242,239,241,243,244,222,242,242,243,244,241,238,245,246,243,241,245,246,241,244,243,247,247,243,246,248,238,240,238,248,245,222,244,249,244,247,249,245,250,246,248,251,245,251,250,245,251,252,250,253,246,250,253,247,246,252,253,250,254,248,240,251,248,254,255,247,253,256,249,247,247,255,256,253,252,257,253,257,255,249,258,222,249,256,259,258,249,259,260,222,258,260,225,222,261,255,257,262,256,255,255,261,262,263,259,256,263,256,262,259,263,264,258,259,264,265,263,262,265,264,263,266,258,264,264,265,266,260,258,267,258,266,267,268,261,257,268,257,252,262,269,265,261,269,262,261,270,269,268,271,261,271,268,252,270,261,271,265,269,272,266,265,273,265,272,273,272,274,273,269,275,272,270,275,269,272,276,274,275,276,272,277,271,252,270,271,278,277,278,271,277,252,279,251,279,252,280,279,251,280,251,254,280,281,279,281,277,279,282,280,254,280,282,281,254,283,282,240,283,254,240,284,283,228,284,240,285,284,228,228,234,285,284,286,283,285,286,284,287,277,281,281,282,288,287,281,288,289,277,287,289,278,277,283,290,282,282,291,288,290,291,282,292,291,290,290,283,293,283,286,293,290,293,292,294,287,288,291,294,288,287,295,289,295,287,294,293,286,296,293,296,292,296,286,297,286,298,297,285,298,286,299,294,291,295,294,300,299,300,294,292,301,291,291,301,299,289,295,302,300,303,295,302,295,303,302,304,289,303,305,302,305,304,302,304,306,289,278,289,306,306,307,278,278,307,270,303,300,308,309,303,308,305,303,309,3
210,308,300,310,300,311,312,305,309,311,300,299,313,305,312,304,305,313,314,313,312,311,299,315,311,315,316,315,299,301,313,317,304,314,317,313,317,306,304,318,316,315,301,318,315,318,319,316,319,318,320,321,320,318,321,322,320,323,318,301,323,321,318,323,301,292,321,323,292,317,324,306,307,306,324,321,325,322,326,322,325,325,327,326,327,325,328,325,321,328,327,328,329,292,330,321,330,328,321,296,330,292,330,296,331,331,328,330,297,331,296,331,332,328,332,329,328,332,331,297,332,333,329,333,332,297,333,334,329,334,333,335,334,335,336,335,337,336,333,338,335,297,338,333,337,335,339,338,339,335,339,340,337,340,339,341,340,341,342,341,14,342,339,338,343,341,339,343,344,338,297,344,343,338,341,345,14,345,13,14,346,341,343,346,345,341,346,343,344,346,344,347,344,297,348,348,297,298,349,344,348,349,348,298,347,344,349,350,13,345,346,350,345,298,351,349,285,351,298,351,352,349,352,347,349,353,351,285,351,353,352,353,285,234,353,354,352,354,353,234,354,347,352,233,354,234,354,233,355,354,355,347,233,232,355,346,347,356,350,346,356,347,357,356,357,347,355,356,357,350,355,232,358,355,358,357,232,49,358,357,359,350,13,350,359,359,18,13,18,359,26,360,359,357,360,26,359,358,360,357,26,360,41,49,361,358,41,361,49,360,358,361,360,361,41,204,209,362,210,362,209,362,210,363,362,364,204,363,364,362,363,210,365,210,206,365,366,365,206,206,207,366,367,366,207,366,367,365,207,225,367,365,367,368,369,367,225,368,367,369,368,370,365,370,363,365,371,369,225,260,371,225,372,368,369,370,368,372,372,369,371,373,371,260,267,373,260,372,371,374,370,372,374,371,373,374,370,375,363,374,375,370,376,374,373,376,373,267,375,374,376,377,376,267,377,375,376,375,378,363,363,378,364,375,379,378,375,377,379,380,364,378,379,380,378,267,381,377,266,381,267,382,364,380,382,204,364,383,381,266,273,383,266,384,379,377,385,380,379,379,384,385,386,377,381,384,377,386,380,385,387,382,380,387,388,386,381,388,381,383,389,386,388,389,384,386,390,385,384,390,387,385,388,383,391,391,389,388,273,392,383,392,391,383,393,384,389,393,390,384,392,273,394,274,394,273,395,394,274,394,396,392,394,395,396,396,397,392,397,391,392,391,398,389,393,389,398,399,393,398,400,398,391,400,391,397,400,399,398,390,393,401,399,401,393,402,397,396,395,402,396,403,400,397,397,402,403,404,390,401,390,404,387,400,405,399,400,403,405,406,399,405,387,404,407,408,404,401,408,407,404,409,407,408,410,408,401,409,408,410,401,399,411,410,401,411,412,411,399,399,406,412,413,411,412,413,410,411,414,413,412,414,412,406,413,414,415,410,413,415,416,414,406,417,410,415,417,409,410,417,415,418,418,419,417,417,419,409,419,418,420,419,420,421,422,419,421,422,421,423,424,422,423,406,425,416,416,425,426,406,427,425,425,427,426,428,409,419,422,428,419,424,429,422,429,424,430,429,430,117,406,431,427,431,432,427,405,431,406,433,426,427,434,426,433,431,405,435,403,435,405,431,435,436,403,436,435,436,432,431,436,403,402,427,437,433,437,427,432,433,438,434,438,433,437,436,402,439,432,436,439,440,434,438,434,440,441,442,438,437,442,440,438,443,439,402,443,402,395,440,444,441,444,445,441,432,446,437,446,442,437,447,432,439,443,447,439,440,442,448,444,440,448,445,444,449,450,445,449,451,450,449,442,452,448,442,446,452,448,453,444,449,444,453,453,448,452,454,451,449,453,454,449,455,451,454,454,453,456,456,453,452,457,456,452,458,452,446,452,458,457,459,455,454,456,459,454,460,458,446,432,460,446,460,432,447,460,461,458,447,461,460,462,458,461,458,462,457,463,461,447,462,461,463,463,447,443,455,459,464,465,455,464,464,466,465,457,462,467,467,462,463,467,463,468,463,443,469,468,463,469,469,443,395,469,395,470,470,468,469,395,471,470,471,468,470,274,471,395,471,274,472,472,468,471,472,274,473,276,473,274,473,474,472,276,474,473,475,468,472,474,476,472,472,476,475,276,477,474,477,476,474,468,478,467,478,468,475,477,276,479,479,276,275,480,479,275,270,480,275,481,477,479,479,480,481,482,476,477,481,482,477,483,475,476,483,476,482,475,484,478,484,475,483,485,480,270,480,485,486,487,480,486,481,480,487,485,270,307,481,487,488,488,489,481,481,489,482,483,482,489,485,307,490,490,486,485,324,490,307,491,490,324,317,491,324,486,492,487,488,487,492,493,486,490,491,493,490,494,491,317,317,314,494,495,494,314,314,496,495,497,491,494,497,493,491,495,497,494,498,493,497,495,498,497,493,498,499,499,486,493,498,495,499,492,486,500,500,488,492,500,486,501,501,486,499,501,499,502,503,500,501,488,500,503,495,496,504,504,496,505,506,499,495,499,506,502,507,506,495,504,507,495,506,507,502,508,503,501,501,502,508,505,509,504,507,504,510,509,510,504,505,511,509,511,505,512,513,502,507,510,513,507,514,510,509,509,511,514,513,510,515,515,510,514,516,502,513,515,516,513,517,508,502,502,516,517,518,503,508,508,517,518,519,515,514,514,511,519,516,515,520,520,517,516,515,519,520,521,503,518,521,488,503,522,518,517,517,520,522,522,521,518,523,520,519,520,523,522,519,511,524,519,524,523,511,525,524,511,512,525,526,525,512,524,525,527,524,527,523,528,525,526,525,528,527,526,529,528,530,522,523,530,521,522,523,527,531,530,523,531,532,527,528,527,532,531,533,528,529,528,533,532,529,534,533,533,534,466,533,466,535,532,533,535,466,464,535,530,536,521,531,537,530,530,537,536,532,538,531,537,531,538,532,535,539,538,532,539,464,540,535,535,540,539,536,541,521,521,541,488,537,542,536,542,541,536,543,538,539,540,543,539,464,544,540,544,464,459,538,545,537,542,537,545,545,538,546,538,543,546,540,547,543,547,540,544,459,548,544,459,456,548,457,548,456,544,548,549,457,549,548,544,549,547,546,550,545,545,550,542,542,550,551,546,543,552,552,543,547,552,550,546,549,457,553,467,553,457,547,549,554,552,547,554,549,553,554,550,552,555,554,555,552,551,550,555,556,553,467,556,554,553,555,554,556,467,478,556,556,557,555,551,555,557,478,558,556,556,558,557,551,557,558,558,478,484,551,558,484,559,551,484,483,559,484,559,560,551,560,542,551,560,541,542,483,561,559,560,559,561,541,560,561,483,489,561,561,562,541,561,489,562,541,562,488,489,488,562,563,429,117,563,117,115,115,564,563,564,429,563,125,564,115,429,564,565,565,422,429,422,565,428,125,566,564,131,566,125,567,565,564,567,428,565,566,567,564,566,131,568,566,568,567,568,131,148,428,567,569,569,409,428,567,570,569,567,568,570,569,571,409,571,569,570,571,570,572,407,409,571,407,571,572,148,573,568,156,573,148,573,156,196,568,573,196,568,196,570,572,574,407,407,574,387,387,574,382,574,575,382,572,575,574,204,382,575,204,575,576,572,576,575,204,576,197,570,577,572,196,577,570,576,572,578,572,577,578,578,197,576,196,578,577,196,197,5
279,578,196,579,197,578,579],"attributes":[{"name":"aPos","stride":3,"data":[2.2437,-0.029,-1.4917,2.3496,-0.0238,-1.5016,2.3515,-0.0198,-1.3757,2.2333,0.0567,-1.3424,2.356,-0.0402,-1.0849,2.0732,0.0701,-1.3524,2.0316,-0.0392,-1.4923,2.2071,0.1092,-1.2048,1.8014,0.0609,-1.3478,1.7168,-0.0271,-1.4219,2.1773,0.0891,-1.0812,2.2545,-0.0457,-0.9716,1.9826,0.1212,-1.2263,1.662,0.1361,-1.2732,1.5957,-0.0345,-1.4547,2.0758,0.0632,-0.9019,2.2182,-0.0405,-0.7899,2.0357,0.1285,-1.0495,1.8334,0.1719,-1.2272,2.0375,0.0546,-0.7239,2.212,-0.0274,-0.6447,1.9289,0.1106,-1.159,1.9169,0.0902,-0.8588,1.8082,0.1091,-0.6941,2.0518,0.0416,-0.5849,2.1395,-0.0449,-0.4977,1.8041,0.1643,-1.088,2.0468,0.0316,-0.3959,2.1606,-0.0304,-0.395,2.1644,-0.0252,-0.2785,1.9035,0.055,-0.5339,1.949,0.0718,-0.2922,2.0773,-0.0334,-0.1719,1.8808,0.07,-0.2107,2.1065,-0.0337,-0.0603,1.8135,0.0537,-0.3486,1.6524,0.173,-0.2641,1.784,0.0544,-0.5518,1.7025,0.1305,-0.3557,1.6593,0.0848,-0.5981,1.5239,0.2237,-0.657,1.7356,0.1157,-0.8331,1.9938,0.038,-0.0475,2.0302,-0.0386,0.1075,1.9322,0.0404,0.1139,1.9182,-0.0094,0.3232,1.887,0.1003,-0.0707,1.7815,0.0905,-0.1584,1.5395,0.2708,-0.3964,1.58,0.1386,-0.7216,1.8217,0.0472,0.3653,1.8959,-0.0288,0.4899,1.6395,0.0912,0.4489,1.803,-0.0355,0.5534,1.7756,-0.0493,0.7046,1.6631,0.0404,0.7321,1.7676,-0.0449,0.8501,1.5702,0.0523,0.7804,1.6884,-0.0633,0.9211,1.598,-0.0949,0.9839,1.4366,0.1247,0.5591,1.7973,0.0869,0.1738,1.5663,0.1234,0.2961,1.5384,0.1165,0.2004,1.7698,0.0836,0.0536,1.3896,0.1419,0.468,1.3484,0.185,0.374,1.6452,0.0945,-0.0568,1.5708,0.0894,0.0442,1.6533,0.1289,-0.1786,1.5821,0.1911,-0.1411,1.5138,0.1084,-0.0719,1.4574,0.3959,-0.2714,1.4039,0.4175,-0.4041,1.4882,0.1661,0.0588,1.5098,0.2253,-0.0409,1.4919,0.376,-0.1056,1.4619,0.0953,0.1049,1.4655,0.2946,0.0631,1.4329,0.1721,0.1512,1.3231,0.2498,0.2796,1.3332,0.3019,0.1702,1.2765,0.3339,0.2765,1.3717,0.423,0.1435,1.4222,0.487,0.0333,1.2009,0.5059,0.196,1.2535,0.2025,0.4336,1.1791,0.352,0.2928,1.4146,0.5212,-0.101,1.2441,0.585,0.0492,1.3177,0.5524,-0.117,1.266,0.1901,0.518,1.1372,0.3158,0.4326,1.1088,0.3967,0.2905,1.0439,0.4706,0.4612,1.2991,0.1063,0.5767,1.3438,0.0762,0.6484,1.2232,0.1626,0.6488,1.131,0.3411,0.5325,1.1224,0.4491,0.4804,1.1915,0.3099,0.5954,1.1423,0.4808,0.5461,1.416,0.0804,0.7525,1.2797,0.1272,0.7121,1.2038,0.2848,0.709,1.5222,-0.0288,0.9054,1.3269,0.0834,0.8208,1.4557,-0.0149,0.9927,1.5124,-0.0953,1.0927,1.2656,0.2229,0.8317,1.3773,0.116,0.9224,1.4081,0.0335,1.0525,1.3443,-0.0615,1.2131,1.2923,0.1985,0.9439,1.2782,0.0946,1.0749,1.1703,0.098,1.1724,1.2786,-0.0886,1.3335,1.1817,-0.0607,1.4205,1.1247,0.2993,0.8483,1.2031,0.1243,1.0088,1.1678,0.2641,0.9515,1.1401,0.1411,1.0637,1.0978,0.3933,0.8242,1.0442,0.3247,0.9535,1.0411,0.2073,1.0153,1.0204,0.1634,1.1329,1.1275,0.459,0.641,0.9342,0.4237,1.0185,0.9338,0.3007,1.0484,1.0481,0.5428,0.8321,1.0878,0.5772,0.6465,0.826,0.1767,1.1348,0.7925,0.305,1.0879,1.0784,0.5774,0.5462,0.9489,0.6691,0.5697,0.9222,0.5628,0.4992,0.9121,0.6047,0.9289,1.0172,0.6583,0.7701,0.7608,0.542,1.0002,1.0312,0.6837,0.6531,0.9244,0.7245,0.6589,0.9233,0.7538,0.8383,0.81,0.6707,0.9479,0.8182,0.7351,0.7124,0.7871,0.7443,0.8548,0.458,0.7966,0.875,0.328,0.3261,1.0347,0.3934,0.7006,0.9041,0.3138,0.2002,1.0727,0.7533,0.6887,0.4994,0.6928,0.7648,0.7305,0.5434,0.8474,0.8276,0.3305,0.843,0.7548,0.243,0.8067,0.8128,0.2247,0.677,0.89,0.5506,0.8154,0.7013,0.2287,0.3086,1.0013,0.7964,0.5532,0.4287,0.6725,0.7228,0.5705,0.5324,0.7539,0.4686,0.4292,0.8392,0.6498,0.6582,0.645,0.3931,0.3661,0.7739,0.5821,0.4852,0.7075,0.4219,0.8383,0.495,0.3721,0.7162,0.4978,0.3291,0.9522,0.465,0.4136,0.5953,0.5676,0.3652,0.8274,0.4228,0.3182,1.0334,0.4308,0.3574,0.9976,0.3891,0.2893,0.9278,0.4766,0.2222,0.6885,0.5073,0.2035,0.8147,0.578,0.1445,0.6499,0.5777,0.1001,0.9118,0.6284,0.0685,0.8932,0.6212,-0.0641,0.5995,0.4673,0.3061,0.5772,0.4909,0.1985,0.4775,0.4507,0.2382,0.4863,0.4688,0.1341,0.4007,0.5765,0.3459,0.3395,0.6232,0.434,0.2185,0.7453,0.6202,0.1205,0.7416,0.6343,0.1724,0.6421,0.521,0.2783,0.504,0.3446,0.071,0.4559,0.4541,0.3452,0.5071,0.2274,0.3781,0.5139,0.1227,0.1196,0.7226,0.8036,0.0445,0.6151,0.5429,0.073,0.6337,0.6985,0.1002,0.5827,0.8562,0.461,0.5623,0.0617,0.1385,0.3847,
vendor: 4,218 bytes, line 2
20.9663,0.1358,0.2313,1.0688,0.0358,0.3242,0.9644,0.0328,0.424,0.9218,0.0017,0.4169,0.8503,0.0063,0.5189,0.5831,-0.0093,0.4626,0.5043,0.0062,0.4074,0.616,-0.0198,0.3349,0.8306,-0.1245,0.334,0.9403,0.0294,0.3318,0.7299,-0.05,0.3931,0.4937,-0.0125,0.2854,0.3698,0.0664,0.3528,0.3392,-0.0469,0.3506,0.7264,-0.0655,0.3166,0.605,0.1406,0.3899,0.3845,0.2412,0.4285,0.2139,0.099,0.4017,0.2641,0.2868,0.5063,0.1087,0.1673,0.446,0.1136,0.038,0.5256,0.0488,0.2533,0.5807,0.0142,0.1,0.2733,0.3146,0.0097,0.3884,0.2021,0.1913,0.6413,-0.0449,-0.1439,0.3721,0.2728,-0.2754,0.4916,0.1622,0.5179,0.6143,-0.0018,0.5565,0.62,-0.108,-0.1692,0.2998,0.3667,0.8807,0.5792,-0.2007,1.2696,0.4172,-0.4877,1.0465,0.3284,-0.7638,1.4264,0.3394,-0.5801,1.3057,0.312,-0.6974,1.4334,0.3214,-0.7218,1.4623,0.2487,-0.7684,1.3651,0.2515,-0.8216,1.2179,0.2421,-0.9238,0.4545,0.6297,-0.2316,0.5406,0.5757,-0.325,0.1707,0.6377,-0.1569,-0.0171,0.616,-0.3346,-0.0592,0.6825,-0.0679,0.3338,0.4637,-0.6247,-0.1465,0.6705,-0.1726,-0.1488,0.6067,0.026,-0.194,0.7024,-0.0917,-0.265,0.6272,-0.0025,-0.3127,0.5537,-0.4077,-0.293,0.6554,-0.1854,-0.3342,0.5999,-0.0827,-0.0683,0.5263,-0.5104,-0.4147,0.5074,0.1544,-0.4107,0.5322,-0.4265,-0.4345,0.4491,-0.5593,-0.5594,0.4287,-0.4539,-0.4029,0.5425,-0.2473,-0.1191,0.4135,-0.7459,-0.5532,0.4037,-0.0679,-0.5471,0.4197,0.1333,-0.5966,0.383,-0.2736,-0.4828,0.3959,0.3454,-0.5324,0.4441,0.2509,-0.3362,0.3519,0.3563,-0.7648,0.2351,-0.155,-0.7486,0.246,-0.0032,-0.6615,0.3247,0.2239,-0.5691,0.3612,0.3153,-0.7477,0.2204,0.217,-0.6363,0.2724,0.3938,-0.5306,0.2975,0.4585,-0.7673,0.2688,-0.3396,-0.8615,0.1624,-0.1361,-1.0282,0.1202,-0.2988,-0.8851,0.1785,-0.4201,-0.9071,0.1632,0.1373,-0.7945,0.184,0.3372,-1.0118,0.2292,0.2448,-0.9464,0.1456,-0.0665,-1.0535,0.1958,0.0566,-0.8604,0.2158,-0.7061,-1.0081,0.1496,-0.7506,-0.6146,0.4028,-0.5961,-0.5339,0.3735,-0.6882,-0.6539,0.3067,-0.7493,0.0329,0.3205,-0.975,0.5392,0.294,-0.9844,0.8998,0.2694,-0.9352,1.0488,0.2394,-1.0036,0.8397,0.1086,-1.2316,-0.8234,0.1776,-0.9783,-0.3411,0.2722,-1.0339,-0.9434,0.129,-1.0864,0.3069,0.1859,-1.2407,-0.2055,0.1671,-1.3372,0.3268,0.0966,-1.3974,0.7096,0.1215,-1.3068,-0.4214,0.2029,-1.2281,-0.583,0.1169,-1.3477,0.7352,0.0656,-1.3612,0.9397,0.0414,-1.3895,0.9864,0.1358,-1.1922,-0.3059,0.0897,-1.4295,-0.4579,0.1063,-1.4649,-0.0142,0.0916,-1.4656,-0.7868,0.0874,-1.3868,-0.7418,0.0499,-1.5202,-0.9707,0.1113,-1.2302,-0.8611,0.0166,-1.4851,-1.1663,0.1484,-0.796,-1.1906,0.1286,-0.5876,-0.6335,-0.0445,-1.6336,-0.8679,-0.0598,-1.5994,-0.5075,-0.0397,-1.699,-0.3485,-0.0461,-1.6483,-1.353,-0.0447,-1.1734,-1.2885,0.0292,-1.096,-1.7267,-0.0286,-0.7126,-0.1959,0.0538,-1.5631,-0.0077,-0.0359,-1.7428,-1.4124,0.0952,-0.8609,0.167,0.0853,-1.6185,0.1092,-0.0038,-1.7598,0.2844,-0.0206,-1.743,0.4313,0.0744,-1.5791,0.4823,-0.0284,-1.7509,0.2213,0.1006,-1.4918,-1.2812,0.1674,-0.6823,0.6264,0.0087,-1.6968,0.6162,-0.0685,-1.8013,0.7522,-0.0629,-1.7844,0.7514,0.035,-1.5911,0.8875,-0.0708,-1.6708,0.5633,0.0728,-1.5013,0.7556,0.0506,-1.4538,0.8891,0.011,-1.5361,1.0116,0.0307,-1.6022,0.9755,-0.0584,-1.7541,1.0861,0.0222,-1.6476,1.1117,-0.053,-1.7644,1.2451,-0.0546,-1.7167,1.1013,0.0584,-1.5237,1.2873,0.0136,-1.6126,1.4107,-0.0412,-1.6914,1.4564,0.0608,-1.4757,1.5961,-0.0345,-1.5986,1.2936,0.0764,-1.5021,1.2054,0.0665,-1.3396,1.5148,0.0756,-1.3364,1.3244,0.1006,-1.2849,1.2835,0.0688,-1.1414,1.0469,0.0833,-1.2681,1.0922,0.0903,-1.1769,1.4773,0.1009,-1.246,1.0757,0.1906,-1.1663,1.2244,0.1581,-1.0946,1.1874,0.2451,-1.0238,1.2814,0.1667,-1.0054,1.4222,0.1546,-0.9781,1.3798,0.0746,-1.1957,1.5188,0.1222,-1.1017,1.5106,0.1442,-0.9211,1.6884,0.1374,-1.1417,1.6822,0.1346,-1.01,1.6226,0.0946,-0.8423,-0.1577,0.3661,0.7371,-0.2177,0.3871,0.6463,-0.2509,0.3721,0.8119,-0.1389,0.3224,0.5281,-0.0592,0.3247,0.4675,-0.0805,0.2373,0.4548,-0.1679,0.2156,0.5366,-0.1906,0.2428,0.4338,-0.2854,0.3355,0.5673,-0.3111,0.2918,0.4642,-0.2395,0.2596,0.5502,-0.4035,0.2991,0.4981,-0.3313,0.2614,0.5328,-0.4162,0.3406,0.6365,-0.4421,0.2658,0.5814,-0.5157,0.2008,0.6306,-0.393,0.3804,0.7652,-0.479,0.2649,0.7338,-0.3905,0.2953,0.8358,-0.6861,0.1872,0.5344,-0.2471,0.3076,0.9405,-0.7773,0.1917,0.4837,-0.5925,0.2051,0.7269,-0.4872,0.1778,0.777,-0.5922,0.2351,0.6513,
2-0.3637,0.1953,0.8631,-0.7279,0.1705,0.6073,-0.71,0.229,0.7205,-0.5343,0.1453,0.8647,-0.8003,0.1866,0.6421,-0.8857,0.2111,0.5218,-0.6557,0.1805,0.8351,-0.9527,0.2216,0.3291,-1.0612,0.2781,0.4109,-0.9844,0.2951,0.5033,-0.9361,0.2762,0.6047,-0.7234,0.1582,0.786,-0.7989,0.1417,0.8612,-0.8948,0.2059,0.6762,-0.6026,0.1389,0.9802,-1.141,0.2713,0.6008,-1.0581,0.2816,0.7004,-0.4311,0.137,0.927,-1.0759,0.2091,0.7934,-1.18,0.1172,0.9537,-0.3151,0.1627,1.0344,-0.4564,0.1183,1.1523,-0.2664,0.0819,1.3514,-0.6456,0.1053,1.1683,-0.7673,0.1469,1.0039,-0.9667,0.1087,1.0126,-0.808,0.1182,1.1029,-0.9278,-0.03,1.2717,-0.7852,-0.0242,1.3489,-1.2547,-0.0302,1.1388,-0.5416,0.0254,1.344,-0.6419,-0.0511,1.4196,-0.0318,0.0049,1.567,-0.2453,-0.0808,1.5972,-0.0489,-0.0701,1.6656,0.4318,0.0263,1.59,0.4276,-0.0562,1.7034,0.6718,-0.0712,1.6727,-1.3454,0.0578,1.0079,-1.5022,-0.067,1.0619,-1.3963,0.079,0.8995,0.0813,0.0878,1.4847,0.7695,0.0165,1.5133,0.9301,-0.0851,1.5703,-1.218,0.1571,0.8419,-1.325,0.1011,0.7855,-1.5386,-0.0097,0.951,-1.6756,-0.0751,1.022,-1.1799,0.2389,0.7806,-1.2352,0.1837,0.7344,-1.5277,0.0462,0.8226,-1.6283,0.0531,0.8825,-1.252,0.185,0.6097,-1.6987,0.0976,0.873,-1.8319,-0.0542,0.9475,-1.6207,0.0265,0.8182,-1.2497,0.227,0.5263,-1.8143,-0.0218,0.8608,-1.9288,-0.0879,0.9219,-1.5229,0.0806,0.6962,-1.3297,0.1454,0.5484,-1.716,0.0324,0.8315,-1.9101,0.0102,0.8215,-2.0066,-0.06,0.9213,-1.9923,-0.0153,0.8135,-1.7191,0.0283,0.7327,-1.8407,0.0326,0.7597,-1.8927,0.1089,0.7297,-2.0707,-0.0216,0.6883,-1.8227,0.0881,0.6765,-1.6936,0.1817,0.5909,-1.5537,0.1547,0.6181,-1.9391,0.1037,0.6423,-1.4299,0.1364,0.6085,-1.4717,0.1688,0.5317,-1.5028,0.2592,0.534,-1.341,0.2779,0.4615,-2.0422,0.0644,0.5352,-2.1428,0.017,0.5575,-2.2657,0.0186,0.4178,-1.4414,0.3553,0.4537,-1.2234,0.359,0.434,-1.2,0.2872,0.4157,-1.1218,0.2503,0.3222,-1.0886,0.3356,0.3601,-1.1167,0.3361,0.2853,-1.0346,0.2699,0.1731,-1.1055,0.3147,0.1542,-1.2615,0.3605,0.3144,-1.2209,0.3518,0.1084,-1.1607,0.3208,0.0521,-1.3716,0.4115,0.3654,-1.1404,0.1721,-0.0524,-1.1845,0.1168,-0.206,-1.2883,0.1667,-0.0707,-1.2773,0.3913,0.0185,-1.3813,0.4092,0.065,-1.4371,0.4314,0.2248,-1.1918,0.1228,-0.3938,-1.3912,0.1117,-0.3464,-1.3496,0.1356,-0.2267,-1.4248,0.2424,-0.154,-1.3371,0.3963,-0.058,-1.2704,0.1722,-0.4977,-1.387,0.1696,-0.6321,-1.4427,0.1046,-0.204,-1.4328,0.1332,-0.4902,-1.54,0.0864,-0.708,-1.6639,0.11,-0.5214,-1.808,-0.0289,-0.6243,-1.4945,0.1284,-0.5788,-1.4794,0.1775,-0.5247,-1.5186,0.1636,-0.4316,-1.4968,0.103,-0.2475,-1.5667,0.1372,-0.3066,-1.6337,0.223,-0.3194,-1.5582,0.1771,-0.1943,-1.8681,0.0872,-0.4948,-2.0621,-0.0258,-0.5157,-1.6399,0.1313,-0.3799,-1.733,0.2065,-0.4562,-1.6223,0.1659,-0.2451,-1.9875,0.1448,-0.3926,-1.871,0.1924,-0.4357,-2.1037,0.1371,-0.2869,-2.276,-0.0074,-0.3278,-1.7423,0.289,-0.3917,-1.9387,0.2195,-0.3229,-1.8624,0.3024,-0.402,-1.7807,0.3671,-0.3344,-1.738,0.2986,-0.2476,-1.6584,0.2587,-0.1655,-1.9636,0.3181,-0.2352,-1.8674,0.3957,-0.2957,-1.6645,0.2711,-0.0776,-1.8,0.356,-0.1827,-1.9195,0.2901,-0.119,-2.0778,0.2112,-0.1482,-2.2297,0.1314,-0.1652,-2.4445,-0.0148,-0.2261,-2.1183,0.2126,-0.0106,-2.2848,0.0845,-0.0827,-2.4008,-0.0135,-0.0657,-1.8483,0.2856,-0.0129,-2.0745,0.2498,0.0795,-2.1951,0.1986,0.1886,-2.2775,0.0866,0.221,-2.356,0.0273,0.2834,-2.1998,0.0927,0.3423,-1.8073,0.4137,0.0369,-1.925,0.3451,0.0906,-2.08,0.3392,0.2183,-2.1452,0.274,0.3012,-2.0765,0.2358,0.394,-1.5572,0.4085,-0.0333,-1.8849,0.4981,0.0964,-2.1004,0.3941,0.3756,-1.9625,0.1725,0.5088,-2.0158,0.4723,0.1711,-2.0941,0.4578,0.276,-2.0035,0.3281,0.4843,-1.84,0.1304,0.5866,-1.8616,0.2395,0.5498,-1.9354,0.5333,0.2353,-1.5798,0.5142,0.1337,-1.9621,0.4518,0.3444,-1.7199,0.3087,0.4987,-1.8926,0.357,0.4681,-1.7996,0.48
215,0.2871,-1.5255,0.4162,0.3958,-1.6196,0.4954,0.2558,-1.4886,0.4846,0.2597,-1.4565,0.4512,0.0899,-1.5841,0.4991,0.0282,-1.413,0.4414,-0.0318,-1.4262,0.3726,-0.0966,1.0803,0.0454,1.3498,1.029,0.1271,1.2519,0.6473,0.1031,1.4366,0.7974,0.147,1.228,0.3956,0.1212,1.3748,0.2433,0.1443,1.2007,-0.0381,0.0947,1.3506,0.0638,0.1275,1.1903,-0.1614,0.1302,1.1797,-0.1413,0.136,1.068,0.2616,0.1684,1.0409,-0.2185,0.2003,0.965,-0.1462,0.2524,1.0401,-0.0506,0.269,1.0111,0.0499,0.1974,1.0786,-0.0069,0.1922,1.0166,0.0431,0.233,0.9667]},{"name":"aNormal","stride":3,"data":[0.1184,0.8684,-0.4816,0.2288,0.9153,-0.3314,0.4723,0.8658,-0.1653,0.3545,0.8982,-0.26,0.6694,0.693,0.2677,-0.0632,0.8694,-0.49,-0.1258,0.786,-0.6052,0.3533,0.9343,-0.0471,0.0631,0.7017,-0.7096,-0.0157,0.6749,-0.7377,0.4338,0.844,0.3155,0.5507,0.7631,0.3383,0.1107,0.9724,-0.2055,-0.2204,0.8817,-0.4172,0.3774,0.8491,-0.3695,0.3709,0.9075,0.1973,0.5361,0.8436,0.0315,0.0786,0.9741,0.2121,0.1731,0.9599,-0.2203,0.3068,0.9518,0.0079,0.5106,0.8562,0.0786,0.1415,0.9829,0.1179,0.2906,0.9505,0.11,0.0631,0.9783,0.1972,0.3381,0.9279,0.1573,0.5133,0.8529,0.0948,0.1497,0.9849,0.0867,0.3851,0.9195,-0.0786,0.4973,0.8605,-0.1105,0.4795,0.8647,0.1494,0.0868,0.9942,0.0631,0.1896,0.9798,0.0632,0.4579,0.8763,0.15,0.2829,0.9586,-0.0314,0.5176,0.8548,0.0392,0.2678,0.953,-0.1418,0.6226,0.7723,0.1261,0.1883,0.9806,0.0549,0.5761,0.7891,-0.2131,0.4313,0.9019,-0.0235,0.7609,0.6276,-0.1647,-0.212,0.9658,0.1492,0.551,0.8344,0.0157,0.5969,0.7619,0.2513,0.5025,0.8401,0.2041,0.5333,0.8313,0.1568,0.2515,0.9667,-0.0472,0.1578,0.9783,0.1341,0.7261,0.6787,-0.1105,0.6284,0.7619,-0.1571,0.3852,0.8962,0.2201,0.4026,0.8368,0.371,0.363,0.9155,0.1736,0.463,0.8318,0.3061,0.6225,0.7801,0.063,0.3788,0.9075,0.1815,0.4489,0.8269,0.3386,0.134,0.9223,0.3626,0.1892,0.8121,0.5519,0.3069,0.8263,0.4722,0.0472,0.976,0.2125,0.1966,0.9751,0.1022,0.2277,0.9737,0,0.2209,0.9625,-0.1578,0,1,0.0079,0.2204,0.9444,0.244,0.4989,0.8156,0.293,0.1341,0.9783,0.1578,0.2591,0.9658,0,0.4256,0.7566,0.4965,0.7472,0.5112,0.4247,0.6909,0.5967,0.4082,0.8246,0.5497,-0.1335,0.5063,0.799,-0.3244,0.8957,0.2357,0.3771,0.9345,0.1335,0.3298,0.9149,0.3943,0.0868,0.6304,0.7723,0.0788,0.8506,0.1496,0.5041,0.7018,0.6387,0.3154,0.724,0.5823,0.3698,0.7773,0.3062,0.5496,0.5659,0.5423,0.621,0.6706,0.2998,0.6785,0.7741,0.5292,0.3475,0.1812,0.5989,0.7801,0.5732,0.7774,0.2591,0.3532,0.7142,0.6043,0.6232,0.7731,-0.1183,0.2444,0.954,0.1735,0.189,0.9448,-0.2677,0.7075,0.6604,0.2516,0.7744,0.6322,0.0237,0.3476,0.8136,0.4661,0.4885,0.6697,-0.5594,0.4327,0.8418,0.3226,0.2055,0.9724,0.1107,0.8498,0.5272,0,0.8418,0.3226,-0.4327,0.7506,0.2923,-0.5926,0.9214,0.3701,-0.1181,0.88,0.3693,-0.2986,0.1813,0.9462,0.2681,0.6836,0.7072,-0.1807,0.875,0.4809,0.0552,0.3457,0.8485,0.4007,0.6528,0.7393,-0.1652,0.6843,0.7,0.2045,0.6517,0.6831,0.3298,0.684,0.7233,-0.0943,0.786,0.6052,-0.1258,0.6305,0.6542,0.4177,0.3764,0.7684,0.5175,0.4264,0.8213,0.379,0.3081,0.7505,0.5846,0.5692,0.7589,0.3162,0.4876,0.7628,0.4247,0.3788,0.7181,0.5839,0.669,0.6769,0.307,0.2052,0.7734,0.5998,0.4418,0.7416,0.5049,0.3791,0.8292,0.4107,0.8431,0.3388,0.4176,0.5983,0.4408,0.6691,0.3623,0.6143,0.701,0.1181,0.9682,0.2204,0.9088,0.3793,0.1739,0.4887,0.3389,0.8039,0.4642,0.2754,0.8418,0.8163,0.3453,0.4631,0.8805,0.4717,0.0472,0.0552,0.7406,0.6697,0.0079,0.2996,0.954,0.6219,0.6061,-0.4959,0.2603,0.7098,-0.6546,0.2913,0.6062,-0.74,0.5024,0.4239,0.7536,0.7708,0.5584,0.3067,-0.0472,0.3859,0.9213,0.6709,0.7262,-0.15,0.2283,0.929,-0.2913,0.4169,0.8338,0.3618,0.1022,0.5662,0.8179,0.0549,0.9723,-0.2274,0.2045,0.9126,0.354,-0.0158,0.5601,0.8283,-0.1576,0.2838,0.9458,-0.0791,0.3716,0.925,-0.1416,0.6921,0.7078,0.3618,0.8258,-0.4326,0.3073,0.9218,-0.2364,0.1975,0.9166,0.3477,-0.2203,0.9754,0,-0.363,0.8365,0.4104,-0.3462,0.3619,0.8655,0.354,0.9126,-0.2045,-0.1342,0.3157,0.9393,0.4014,0.5902,-0.7004,0.283,0.9276,-0.2437,0.1266,0.8385,-0.53,0.0078,0.9414,-0.3373,0.2123,0.5583,-0.802,-0.3391,0.7729,-0.5363,-0.1182,0.6145,-0.78,0.3068,0.653,-0.6924,0.2353,0.8548,-0.4627,0.2436,0.7702,-0.5894,0.063,0.496,-0.866,0.3154,0.9383,-0.1419,0.0472,0.8966,-0.4404,0.0472,0.9824,0.1808,0.0944,0.6921,0.7156,-0.0631,0.883,0.4651,-0.0473,0.8112,0.5828,-0.1807,0.8797,0.4399,0.0158,0.9632,0.2684,0.0236,0.9832,-0.1809,0.0158,0.9316,-0.3632,-0.2677,0.9133,0.307,0.0628,0.9572,-0.2825,-0.0631,0.8911,0.4495,-0.0787,0.7243,-0.685,-0.3385,0.6771,-0.6534,-0.2288,0.7731,-0.5916,-0.5604,0.7657,-0.3157,-0.2676,0.6532,-0.7083,-0.5207,0.6942,-0.497,-0.4817,0.3632,-0.7975,-0.1962,0.9652,-0.1726,-0.0157,0.8642,0.5028,-0.695,0.5607,0.4501,-0.7452,0.5334,-0.4001,-0.9138,0.386,0.126,-0.6629,0.4025,0.6313,-0.0315,0.7414,0.6704,-0.1733,0.3861,0.906,-0.0949,0.6798,0.7272,-0.2436,0.6286,0.7386,-0.6908,0.3846,0.6123,-0.9478,0.237,0.2133,-0.9402,0.3397,0.0237,-0.8209,0.371,-0.4341,-0.9583,0.1728,0.2278,-0.2601,0.9617,0.0867,-0.1107,0.9012,0.419,-0.7416,0.6706,0.0158,-0.7502,0.5765,-0.3238,-0.4244,0.9038,0.055,-0.6381,0.5751,-0.512,0.1182,0.985,-0.1261,-0.2834,0.9526,0.1102,-0.5453,0.735,-0.4031,-0.3695,0.9276,0.055,-0.2591,0.9107,0.3219,-0.2847,0.7988,0.5299,-0.
vendor: 3,528 bytes, line 2
20863,0.8314,0.549,0.1103,0.6539,0.7485,-0.1338,0.6767,0.724,-0.734,0.6787,-0.0237,0.0393,0.7946,0.6058,-0.0236,0.9049,0.4249,0.1804,0.7764,0.6039,0.1491,0.7767,0.612,0.0549,0.9339,0.3532,0.0947,0.9944,0.0474,0.2913,0.74,0.6062,0.0865,0.9282,-0.3618,0.1176,0.9091,-0.3997,0.1263,0.9232,-0.363,0.4573,0.8594,-0.2287,0.1026,0.923,-0.3708,0.3785,0.8516,-0.3627,0.5586,0.6766,-0.4799,0.174,0.854,-0.4903,0.2515,0.9039,-0.3459,0.1022,0.9751,-0.1966,0.1257,0.911,-0.3927,0.0392,0.9967,-0.0706,0.0158,0.9378,-0.3468,0.1726,0.9413,0.2902,0.055,0.9038,-0.4244,0.063,0.9444,-0.3227,0.1104,0.6623,0.7411,-0.11,0.9902,0.0864,-0.3538,0.7782,0.5188,-0.1421,0.8604,-0.4894,-0.4479,0.8801,-0.1572,-0.6134,0.7628,0.2045,-0.0868,0.8679,-0.4892,-0.2449,0.9244,0.2923,-0.3629,0.8679,-0.3393,-0.1264,0.9166,-0.3793,-0.5689,0.8218,0.0316,-0.7148,0.6991,-0.0157,-0.063,0.9136,-0.4017,-0.6614,0.748,-0.0551,-0.5974,0.8018,-0.0157,-0.5513,0.827,0.1103,-0.0946,0.8122,0.5756,-0.4423,0.8451,0.3001,0.1341,0.8282,0.5442,-0.6188,0.7755,0.1253,-0.6912,0.7226,0.0079,-0.7253,0.6701,0.1577,-0.5431,0.7241,0.425,-0.5968,0.801,0.0471,-0.5205,0.7965,0.3076,-0.3081,0.8294,0.466,-0.6314,0.7735,0.0552,-0.4086,0.9115,0.0471,-0.1579,0.9872,-0.0237,-0.5362,0.8358,0.1183,0.0629,0.9901,-0.1257,-0.2127,0.9768,-0.0236,0.6362,0.7461,-0.1964,-0.0471,0.9889,-0.1413,0.5113,0.7866,-0.3461,-0.5915,0.8044,-0.0552,-0.1807,0.982,0.055,-0.417,0.8891,-0.1888,-0.2212,0.8609,-0.4581,-0.245,0.8853,-0.3952,-0.0157,0.9289,-0.37,0.1264,0.9166,-0.3793,0.0785,0.8948,-0.4395,-0.0788,0.9533,-0.2915,0.118,0.8651,-0.4876,-0.2369,0.916,-0.3238,-0.1572,0.959,-0.2358,-0.0315,0.9857,-0.1656,0.0236,0.8728,-0.4875,0.0395,0.8841,-0.4657,0.0394,0.9625,-0.2682,0.173,0.8729,-0.4561,-0.197,0.914,-0.3546,-0.1805,0.9654,-0.1884,0.1571,0.9191,-0.3614,-0.0706,0.973,-0.2197,0.0944,0.8185,-0.5667,-0.0079,0.8677,-0.497,0.0316,0.8924,-0.4501,-0.0394,0.9605,-0.2755,-0.2057,0.9494,-0.2373,-0.1494,0.8416,-0.5191,-0.2432,0.9178,-0.3138,-0.3782,0.7959,-0.4728,-0.0472,0.9981,-0.0393,0.1731,0.9834,0.0551,-0.1259,0.7792,-0.6139,-0.37,0.7479,-0.5511,-0.0708,0.8419,-0.535,-0.0396,0.8152,-0.5778,-0.4159,0.8004,-0.4316,-0.4094,0.8031,-0.433,-0.5117,0.7716,-0.3779,-0.166,0.8852,-0.4347,-0.1575,0.8347,-0.5276,-0.3225,0.881,-0.3461,-0.0473,0.9452,-0.323,-0.0864,0.8557,-0.5103,0.1105,0.8208,-0.5604,0.0158,0.9378,-0.3468,0.0079,0.8497,-0.5272,0.0867,0.9849,-0.1497,0.0394,0.9922,-0.1181,0.0867,0.8591,-0.5044,0.0553,0.8209,-0.5683,0.2292,0.8456,-0.4821,0.2835,0.9057,-0.315,-0.0079,0.9006,-0.4345,0.1414,0.9897,-0.0236,0.1729,0.9747,-0.1415,-0.0474,0.9476,-0.3159,-0.2829,0.9115,-0.2986,-0.2517,0.8493,-0.464,-0.0395,0.9075,-0.4182,0.063,0.8423,-0.5353,0.1027,0.8372,-0.5371,-0.0472,0.9838,-0.1731,0.0629,0.8572,-0.5112,0.0786,0.8258,-0.5584,0.3067,0.9278,-0.2123,0.4182,0.8601,-0.292,-0.0158,0.9696,-0.2444,-0.0629,0.9979,-0.0157,0.0947,0.9238,-0.3711,-0.0863,0.9961,0.0157,0.1416,0.9437,-0.2989,0.0947,0.9707,-0.221,0.1973,0.7499,-0.6315,-0.0864,0.9902,-0.11,-0.0079,0.6285,-0.7778,0.4408,0.6691,-0.5983,0.3616,0.8883,-0.283,0.361,0.8004,-0.4787,0.1652,0.9045,-0.3932,-0.1337,0.991,0,-0.1025,0.9857,-0.134,0.3079,0.9395,-0.15,-0.2369,0.9715,0.0079,-0.118,0.9915,0.0551,0.1972,0.9783,0.0631,0.1885,0.9818,0.0236,0.1255,0.9412,-0.3137,0.0236,0.9515,0.3067,-0.3148,0.724,-0.6138,-0.6386,0.3784,-0.6701,-0.4982,0.8461,-0.1898,-0.0948,0.8529,-0.5133,0.2673,0.8726,0.4088,-0.1577,0.615,-0.7726,-0.1964,0.8641,0.4635,-0.0549,0.706,-0.706,0.1417,0.8976,0.4173,0.0393,0.9813,-0.1884,-0.5207,0.7652,-0.3787,-0.4185,
20.9082,0.0079,-0.3156,0.9468,0.0631,-0.4876,0.8259,0.2831,-0.7655,0.5919,0.2525,-0.639,0.3471,0.6864,-0.1886,0.9588,0.2122,-0.4418,0.5681,0.6943,-0.0394,0.9931,0.1103,-0.0471,0.958,0.2827,-0.3545,0.8114,0.4648,0.0079,0.9947,-0.1026,-0.5533,0.577,0.6007,-0.0708,0.9837,-0.1653,-0.2996,0.9382,0.1734,0.0157,0.9657,0.2591,0.1024,0.9922,0.0709,0.4405,0.8889,-0.1259,-0.0631,0.9544,0.2918,0.4416,0.8753,-0.1971,0.1336,0.9903,-0.0393,0.245,0.9641,-0.1027,0.4,0.9099,0.1098,-0.173,0.9359,0.3067,-0.0079,0.9861,0.1657,0.3482,0.8704,0.3482,0.0787,0.9916,0.1023,-0.3554,0.932,0.0711,0.0079,0.9379,0.3468,-0.2289,0.9549,0.1894,0.1419,0.7881,0.599,-0.0868,0.8679,0.4892,-0.1574,0.9678,0.1967,-0.0394,0.9854,0.1655,-0.1257,0.927,0.3535,-0.0787,0.9288,0.3621,-0.1023,0.9916,0.0787,-0.1258,0.9355,0.3302,-0.2045,0.9126,0.354,-0.2841,0.7892,0.5445,-0.1891,0.7721,0.6067,-0.197,0.7881,0.5832,-0.2052,0.8286,0.5208,-0.1888,0.8183,0.5429,-0.1894,0.7893,0.5841,-0.2202,0.7943,0.5662,-0.1337,0.7784,0.6133,-0.0157,0.8246,0.5655,0.0157,0.8018,0.5974,0.1818,0.7904,0.5849,-0.2985,0.8013,0.5185,-0.3219,0.7536,0.5731,-0.4085,0.8878,0.2121,-0.0629,0.9361,0.3461,0.2361,0.795,0.5588,0.2676,0.7555,0.5981,-0.3448,0.8699,0.3527,-0.3545,0.9295,0.1024,-0.1494,0.8416,0.5191,-0.0705,0.7131,0.6975,-0.3154,0.8595,0.4022,-0.6365,0.7622,0.1179,-0.1731,0.9599,0.2203,0.0627,0.9801,0.1882,-0.6069,0.733,0.3074,-0.2047,0.9763,0.0709,-0.299,0.8105,0.5036,-0.0784,0.9805,-0.1804,-0.2989,0.8338,0.4641,-0.3534,0.9032,0.2435,0.0314,0.7704,0.6368,-0.15,0.8763,0.4579,-0.2202,0.8493,0.4797,-0.2369,0.9633,-0.1263,-0.0553,0.8209,0.5683,0.0552,0.7406,0.6697,-0.4168,0.7863,0.4561,0.0629,0.8572,0.5112,0.1573,0.7863,0.5976,-0.0157,0.8814,0.4722,-0.6222,0.7167,0.315,0.0158,0.8588,0.5121,-0.0157,0.6062,0.7952,0.0631,0.7174,0.6938,-0.3467,0.8746,0.3388,0.0236,0.9221,0.3862,0.2441,0.6535,0.7165,0.2208,0.489,0.8439,0.0709,0.339,0.9381,-0.4808,0.7172,0.5044,-0.3855,0.8419,0.3777,-0.3856,0.8106,0.4407,0.0942,0.6123,0.785,0.4469,0.588,0.6742,0.3467,0.5437,0.7643,0.094,0.5486,0.8308,0.5092,0.7051,0.4935,0.4402,0.8962,-0.055,0.813,0.5604,-0.1579,0.5114,0.8418,-0.1731,0.2442,0.9689,-0.0394,0.3231,0.9456,-0.0394,0.4878,0.7239,-0.4878,0.2757,0.9374,0.2127,0.1419,0.8516,-0.5046,-0.0079,0.9802,-0.1976,0.3625,0.6935,-0.6226,0.55,0.7858,-0.2829,0.386,0.9138,0.126,0.5509,0.8342,-0.0236,0.0549,0.9885,0.1412,0.0315,0.9934,0.1104,0.0784,0.941,-0.3293,0.1809,0.4956,-0.8495,0.5289,0.6157,-0.5841,0.0709,0.985,0.1576,-0.1728,0.9818,-0.0785,-0.1101,0.7942,-0.5976,0.1415,0.9829,0.1179,-0.4159,0.8476,-0.3296,-0.1892,0.8121,-0.5519,-0.3313,0.7414,-0.5836,-0.2361,0.9602,-0.1495,0.2214,0.9566,-0.1897,0.0947,0.9944,-0.0474,0.1651,0.9515,-0.2595,0.5033,0.8335,0.228,0.7327,0.6776,-0.063,0.2676,0.7555,-0.5981,-0.2599,0.5907,-0.7639,-0.4327,0.6215,-0.653,0.118,0.8416,-0.527,0.2208,0.5519,-0.8042,0.6228,0.7804,-0.0552,-0.4807,0.6619,-0.5752,-0.3384,0.5037,-0.7949,-0.4816,0.7105,-0.5131,-0.4238,0.7141,-0.5572,0.4388,0.666,-0.6033,-0.7173,0.4887,-0.4966,-0.3771,0.5264,-0.7621,0.4316,0.8397,-0.3296,0.6537,0.7561,-0.0315,0.6094,0.7677,-0.1979,-0.6989,0.7067,-0.1099,-0.1889,0.9604,-0.2047,0.0473,0.8047,-0.5917,0.2291,0.94,0.2528,-0.3708,0.8915,0.2603,-0.4956,0.8495,-0.1809,-0.5499,0.8013,-0.2357,-0.5033,0.8415,-0.1966,-0.4562,0.8809,-0.1258,-0.6285,0.7778,0,-0.6402,0.7667,0.0474,-0.2681,0.8988,-0.3469,-0.41,0.8436,-0.3469,-0.7288,0.6818,-0.0627,-0.706,0.706,0.0549,-0.5921,0.8052,0.0316,-0.5968,0.6125,0.5183,-0.291,0.4247,-0.8573,-0.513,0.4578,-0.7261,-0.7863,0.4168,-0.4561,-0.8983,0.3704,0.2364,-0.7177,0.1577,0.6783,-0.2198,0.5573,-0.8007,-0.253,0.6959,-0.6721,-0.7394,0.4877,0.4641,-0.5737,0.3537,0.7388,-0.6296,0.4958,-0.5981,-0.7628,0.6449,-0.0472,-0.4241,0.3377,0.8403,-0.1806,0.7224,0.6675,-0.2124,0.3697,0.9046,-0.11,0.9743,0.1964,0.1336,0.9905,-0.0314,-0.0942,0.8085,0.5809,0.0079,0.6371,0.7708,0,0.7226,0.6912,0.055,0.8717,0.4869,0,0.7915,0.6112,0.0474,0.9476,0.3159,0.3861,0.906,0.1733,0.466,0.8846,0.0158,-0.0079,0.873,-0.4876,0.2197,0.8788,-0.4237,0.0473,0.4811,-0.8754,0.3152,0.7487,0.5832,0.1572,0.8801,0.4479,0.1025,0.9064,0.4098,0.0393,0.9584,0.2828,-0.0551,0.9834,0.1731,-0.079,0.9643,0.2529,-0.0394,0.9931,0.1103,-0.0942,0.9498,0.2983,0.0473,0.9704,0.2367,-0.0395,0.8921,0.45,-0.0552,0.7331,0.6779,-0.4728,0.5437,0.6934,-0.1889,0.4486,0.8736,0.1888,0.417,0.8891,-0.3928,0.7541,0.5263,-0.1259,0.6139,0.7792,0.0472,0.4561,0.8887]},{"name":"aUV0","stride":2,"data":[0.17993,0.60474,0.18018,0.61719,0.1947,0.61572,0.19702,0.60156,0.22888,0.61279,0.19373,0.58301,0.177,0.58032,0.21277,0.59692,0.18994,0.55103,0.17969,0.54224,0.22705,0.5918,0.24121,0.59961,0.20752,0.57031,0.19653,0.5332,0.17322,0.52759,0.24731,0.57788,0.26245,0.59326,0.229,0.5752,0.20508,0.552,0.26807,0.57104,0.28003,0.5918,0.21533,0.56348,0.25024,0.55859,0.26855,0.5437,0.2854,0.57153,0.29663,0.5813,0.22083,0.54639,0.30859,0.56982,0.30981,0.58325,0.32422,0.58276,0.29004,0.55396,0.3208,0.55713,0.33667,0.57178,0.33057,0.5481,0.35083,0.57446,0.31152,0.54199,0.32178,0.5188,0.28638,0.54028,0.31006,0.52661,0.27832,0.52637,0.27051,0.50439,0.25049,0.53564,0.35205,0.56104,0.37183,0.56445,0.3728,0.55322,0.3999,0.55005,0.34937,0.54907,0.3374,0.53662,0.30273,0.50195,0.26245,0.51587,0.40454,0.53735,0.42041,0.54443,0.41406,0.5144,0.42871,0.53198,0.44775,0.52539,0.4502,0.51147,0.46631,0.52148,0.45532,0.49951,0.47437,0.51025,0.4812,0.49658,0.42578,0.48828,0.38037,0.53711,0.39478,0.50806,0.38281,0.50684,0.36475,0.53467,0.41382,0.48389,0.40137,0.47949,0.35107,0.52197,0.36401,0.51367,0.33472,0.521,0.33667,0.50952,0.35059,0.50977,0.31567,0.48438,0.29956,0.479,0.36255,0.5,0.3479,0.49854,0.33545,0.48633,0.37036,0.50244,0.35815,0.48682,0.375,0.49414,0.38843,0.4751,0.37451,0.4751,0.38379,0.46387,0.36328,0.46875,0.3479,0.46973,0.36597,0.44727,0.40723,0.46631,0.38623,0.45117,0.33325,
20.46924,0.34644,0.44922,0.3291,0.45947,0.41821,0.46631,0.40356,0.44775,0.38379,0.43994,0.40332,0.42725,0.42749,0.47314,0.43628,0.47656,0.4353,0.46143,0.41553,0.44385,0.41064,0.43359,0.42651,0.44873,0.41943,0.43164,0.44946,0.48242,0.44409,0.46582,0.44336,0.44775,0.47046,0.48975,0.45703,0.47021,0.48145,0.47754,0.49438,0.48145,0.46118,0.45264,0.4729,0.46729,0.49023,0.46582,0.51074,0.45459,0.47632,0.45215,0.49365,0.44824,0.50586,0.43262,0.52588,0.44336,0.5376,0.42773,0.46094,0.43359,0.48657,0.44043,0.47485,0.43457,0.49292,0.43066,0.45483,0.42725,0.4729,0.41895,0.48706,0.41895,0.50244,0.41309,0.43115,0.43115,0.47339,0.40088,0.48438,0.40234,0.44995,0.41455,0.4292,0.41992,0.50391,0.38623,0.49072,0.3833,0.41797,0.4209,0.4165,0.40576,0.40381,0.40918,0.45605,0.39697,0.4397,0.4082,0.4668,0.38037,0.42798,0.41016,0.42554,0.3999,0.44165,0.396,0.45386,0.38574,0.42749,0.38916,0.44238,0.38379,0.44165,0.35303,0.48096,0.32422,0.44897,0.34424,0.49194,0.31689,0.40356,0.3877,0.42773,0.37793,0.43604,0.3623,0.42676,0.34375,0.43213,0.33545,0.44312,0.32959,0.4231,0.36475,0.47388,0.31055,0.39087,0.39795,0.40991,0.37842,0.39893,0.36377,0.41724,0.354,0.3894,0.37939,0.40869,0.34668,0.39258,0.35986,0.38525,0.40479,0.37476,0.39111,0.3938,0.41748,0.37939,0.37451,0.37671,0.40674,0.39014,0.42871,0.38037,0.42627,0.36743,0.41699,0.36011,0.38818,0.35156,0.40332,0.34448,0.3833,0.34351,0.41406,0.32861,0.4126,0.3689,0.37646,0.35791,0.37402,0.36133,0.36133,0.35181,0.3623,0.37646,0.3501,0.38745,0.34277,0.41162,0.33203,0.41406,0.32471,0.39917,0.32568,0.37354,0.33301,0.38867,0.30664,0.36108,0.34326,0.34839,0.34863,0.43091,0.32422,0.40552,0.31348,0.42212,0.31445,0.43994,0.31348,0.3396,0.36035,0.46191,0.3042,0.47998,0.29541,0.45898,0.28906,0.44971,0.29688,0.44092,0.29346,0.40845,0.30225,0.39868,0.29932,0.41211,0.2915,0.4397,0.28418,0.44922,0.271,0.42676,0.28613,0.39648,0.29102,0.3772,0.29004,0.37231,0.30176,0.42603,0.28076,0.40991,0.28076,0.37598,0.31055,0.35913,0.32764,0.36353,0.30811,0.34619,0.3374,0.34814,0.32129,0.33545,0.30957,0.33179,0.33594,0.37256,0.2959,0.35645,0.30029,0.3208,0.33057,0.36011,0.2793,0.34033,0.27002,0.33105,0.36816,0.31934,0.37402,0.37231,0.27246,0.31226,0.41309,0.28589,0.46484,0.24731,0.44531,0.27905,0.48682,0.26123,0.4751,0.26294,0.48975,0.2561,0.49707,0.24744,0.48584,0.2323,0.47021,0.30371,0.36426,0.29321,0.37598,0.30762,0.33057,0.28369,0.3125,0.31299,0.30273,0.25244,0.35791,0.30005,0.2959,0.32471,0.29004,0.30859,0.28955,0.31787,0.27881,0.27051,0.27979,0.29761,0.27979,0.30811,0.27148,0.26099,0.30908,0.33447,0.25537,0.26807,0.26807,0.25024,0.26611,0.26147,0.24854,0.28833,0.26416,0.23047,0.30664,0.30713,0.23828,0.3313,0.23682,0.28174,0.2373,0.35864,0.23877,0.34473,0.23828,0.36646,0.25342,0.29395,0.20898,0.31348,0.20801,0.34277,0.21777,0.35474,0.22803,0.34229,0.20117,0.36694,0.21436,0.37671,0.22705,0.27051,0.21582,0.29443,0.19482,0.26904,0.18066,0.25781,0.20068,0.32935,0.18311,0.35864,0.19238,0.34155,0.16846,0.30127,0.18311,0.3147,0.16748,0.22363,0.21338,0.21387,0.19531,0.2439,0.24561,0.23254,0.25586,0.22241,0.24121,0.20447,0.32861,0.2113,0.38965,0.22375,0.43213,0.2196,0.45117,0.18372,0.43262,0.19092,0.22363,0.19202,0.28418,0.17529,0.21143,0.17505,0.3667,0.15637,0.30566,0.15466,0.37305,0.17334,0.41748,0.16748,0.27734,0.14941,0.25977,0.16577,0.42236,0.1665,0.44775,0.19287,0.44922,0.14246,0.29492,0.13733,0.27686,0.14209,0.33154,0.14197,0.23584,0.12708,0.24365,0.15833,0.21143,0.12988,0.229,0.2052,0.17773,0.22888,0.16943,0.11548,0.2583,0.11646,0.23047,0.10931,0.27393,0.11682,0.29248,0.15662,0.16553,0.16699,0.17139,0.19885,0.10986,0.12842,0.31055,0.10992,0.33594,0.19092,0.15039,0.12646,0.35596,0.10846,0.35156,0.11371,0.37256,0.13562,0.38818,0.11609,0.39697,0.14221,0.36035,0.21545,0.16064,0.125,0.41455,0.11279,0.41553,0.11725,0.43115,0.13953,0.42822,0.13269,0.44629,0.14661,0.40381,0.1554,0.42676,0.14844,0.44434,0.14331,0.45996,0.125,0.45947,0.13977,0.47021,0.12683,0.47559,0.13525,0.49072,0.1543,0.46973,0.14819,0.49365,0.14185,0.51001,0.16797,0.51123,0.15625,0.52979,0.16113,0.49268,0.17786,0.47949,0.18555,0.51611,0.18738,0.49268,0.203,0.48584,0.18298,0.45898,0.19373,0.46387,0.1958,0.51025,0.20251,0.45801,0.21082,0.4751,0.22095,0.46729,0.22205,0.48145,0.22803,0.49805,0.19934,0.49756,0.21448,0.51221,0.23657,0.5083,0.21289,0.5332,0.22852,0.53076,0.24817,0.52222,0.42456,0.26953,0.41211,0.26416,0.43042,0.25928,0.39868,0.27588,0.39087,0.28662,0.38452,0.27979,0.38965,0.26904,0.38086,0.26807,0.40112,0.25684,0.3811,0.25293,0.39209,0.26074,0.38403,0.2417,0.39062,0.2514
26,0.40601,0.24219,0.39575,0.23535,0.40332,0.22168,0.4209,0.24561,0.41699,0.229,0.4314,0.24023,0.38794,0.20264,0.44604,0.25586,0.37915,0.19238,0.41504,0.21143,0.42554,0.22119,0.40503,0.2124,0.44116,0.23438,0.396,0.1958,0.41064,0.19824,0.43604,0.21338,0.39966,0.18652,0.38135,0.1792,0.42749,0.2002,0.354,0.17383,0.36377,0.15674,0.37598,0.16406,0.38965,0.16895,0.42041,0.19189,0.42896,0.18164,0.40259,0.17432,0.44775,0.20264,0.38794,0.14453,0.39966,0.15381,0.44727,0.22363,0.41431,0.1499,0.43481,0.1333,0.46387,0.23779,0.47388,0.21777,0.50391,0.2373,0.47021,0.19434,0.44678,0.18311,0.44482,0.1582,0.45825,0.17627,0.47632,0.1582,0.48804,0.17432,0.45605,0.12207,0.49438,0.20361,0.5,0.18945,0.53613,0.26172,0.53271,0.23389,0.54736,0.25684,0.55176,0.32275,0.56396,0.32031,0.56445,0.354,0.43945,0.1123,0.4458,0.09131,0.427,0.10645,0.53076,0.27832,0.54688,0.37012,0.55469,0.39062,0.41992,0.13037,0.41431,0.11523,0.43237,0.08789,0.43945,0.06934,0.40967,0.13867,0.40601,0.12988,0.41724,0.09033,0.42285,0.07666,0.39185,0.12744,0.4209,0.06689,0.4248,0.05029,0.41455,0.0791,0.38037,0.13037,0.41431,0.0542,0.41821,0.03906,0.40137,0.09229,0.38721,0.11768,0.41309,0.06689,0.40601,0.04346,0.41235,0.02783,0.39673,0.03027,0.40234,0.06787,0.40186,0.05371,0.3894,0.04346,0.37842,0.02393,0.38892,0.05566,0.37915,0.07373,0.3877,0.09033,0.37744,0.04053,0.39209,0.10498,0.38184,0.10254,0.37231,0.09863,0.36914,0.12061,0.35962,0.03027,0.3562,0.0166,0.33081,0.00732,0.35913,0.10889,0.35767,0.13379,0.36426,0.13867,0.35986,0.1499,0.35205,0.15137,0.34302,0.1499,0.33179,0.16309,0.32739,0.15381,0.34351,0.13281,0.32007,0.14111,0.31348,0.14893,0.34619,0.11816,0.2959,0.16064,0.27466,0.16113,0.28613,0.14697,0.30933,0.1333,0.31348,0.12256,0.32935,0.11426,0.25195,0.16406,0.25146,0.13916,0.26709,0.14111,0.27881,0.12695,0.30127,0.12646,0.23669,0.15674,0.21838,0.14648,0.26392,0.12988,0.23376,0.13623,0.20496,0.13086,0.22156,0.1084,0.20544,0.09521,0.22131,0.13135,0.22803,0.12988,0.23743,0.12354,0.25952,0.12549,0.25244,0.11816,0.2478,0.10645,0.26587,0.11523,0.21814,0.08203,0.2113,0.05713,0.23657,0.10938,0.23022,0.09619,0.25806,0.11084,0.22754,0.0625,0.22717,0.0791,0.23938,0.04541,0.23279,0.02637,0.23926,0.09229,0.2373,0.06494,0.23645,0.07959,0.24634,0.08447,0.2561,0.0918,0.26685,0.09961,0.25195,0.06396,0.24939,0.07568,0.27637,0.09619,0.26147,0.08105,0.2666,0.06445,0.25806,0.04541,0.25366,0.02734,0.24231,0.00439,0.27466,0.03613,0.26318,0.01904,0.26294,0.00488,0.2793,0.07129,0.28613,0.03955,0.30078,0.02344,0.3042,0.01318,0.30957,0.00293,0.32495,0.01758,0.29395,0.07617,0.28979,0.05859,0.3064,0.03955,0.31812,0.02979,0.33569,0.03174,0.2937,0.10449,0.30371,0.06885,0.32593,0.0415,0.35864,0.04102,0.30859,0.05566,0.31738,0.04688,0.3418,0.0459,0.37622,0.05469,0.36255,0.05518,0.31714,0.06299,0.31494,0.09814,0.32886,0.05713,0.36011,0.07422,0.34668,0.05811,0.32764,0.07471,0.34814,0.1001,0.32739,0.09277,0.33057,0.10596,0.31421,0.11328,0.30469,0.09961,0.30225,0.11816,0.29272,0.12012,0.52832,0.41602,0.51709,0.41113,0.53711,0.35498,0.51367,0.37939,0.52686,0.32178,0.50439,0.3042,0.51074,0.26611,0.49536,0.28174,0.48657,0.25391,0.47437,0.2583,0.48682,0.31006,0.45728,0.25,0.46191,0.26318,0.4624,0.2749,0.47998,0.28418,0.47192,0.27686,0.46753,0.28516]},{"name":"aUV1","stride":2,"data":[0.16211,0.97203,0.16272,0.99194,0.19397,0.98952,0.19885,0.96683,0.26758,0.9848,0.19189,0.93719,0.15576,0.93274,0.23279,0.95926,0.18372,0.88599,0.16174,0.87183,0.26367,0.95123,0.29419,0.96362,0.22168,0.91699,0.198,0.8573,0.14758,0.84863,0.30737,0.92914,0.33984,0.95367,0.26782,0.92468,0.21619,0.88763,0.35229,0.91797,0.37793,0.95123,0.23853,0.90601,0.31396,0.89819,0.35327,0.87451,0.3894,0.91895,0.41406,0.93451,0.25024,0.87854,0.4397,0.91595,0.44238,0.9375,0.47314,0.93665,0.39941,0.89081,0.46631,0.89569,0.5,0.91907,0.4873,0.88129,0.53076,0.92346,0.44629,0.87158,0.46802,0.83435,0.39185,0.8689,0.44287,0.84705,0.37451,0.84644,0.35742,0.81165,0.31445,0.86133,0.5332,0.90216,0.57568,0.90765,0.57764,0.8894,0.63623,0.88452,0.52734,0.88287,0.50146,0.86292,0.427,0.80774,0.34009,0.82996,0.64648,0.86426,0.68018,0.87561,0.66699,0.82739,0.69873,0.85559,0.73975,0.84497,0.74512,0.82275,0.7793,0.83875,0.75586,0.80334,0.79688,0.82068,0.81201,0.79871,0.69189,0.78564,0.59424,0.86365,0.625,0.81726,0.59961,0.81543,0.56055,0.86011,0.6665,0.7782,0.63965,0.77112,0.53076,0.8396,0.55908,0.82642,0.49585,0.83789,0.5,0.81958,0.52979,0.82019,0.45483,0.77954,0.42017,0.77026,0.55566,0.8042,0.52441,0.80176,0.49756,0.78259,0.57275,0.80835,0.54639,0.78308,0.58252,0.79456,0.61182,0.7644,0.58154,0.76453,0.60205,0.74658,0.55713,0.75391,0.52393,0.75598,0.56299,0.72021,0.65234,0.75073,0.60693,0.72632,0.49243,0.75525,0.521,0.72339,0.48389,0.73975,0.67578,0.75012,0.64404,0.72095,0.60156,0.7085,0.64355,0.6875,0.6958,0.76135,0.71484,0.76709,0.7124,0.74243,0.66992,0.71484,0.65967,0.69824,0.69385,0.72266,0.67822,0.69482,0.74316,0.776,0.73193,0.74976,0.73047,0.72046,0.78857,0.7876,0.75928,0.75647,0.81201,0.76807,0.83984,0.77441,0.76855,0.72876,0.79395,0.75195,0.83105,0.74951,0.87549,0.73145,0.80127,0.72754,0.83838,0.72168,0.86572,0.69629,0.90869,0.71338,0.93311,0.68848,0.76807,0.69824,0.82324,0.70874,0.79785,0.69971,0.83691,0.6936,0.75488,0.68823,0.79395,0.6748,0.82422,0.67432,0.85742,0.66553,0.70361,0.69434,0.79492,0.64575,0.81836,0.64844,0.74463,0.66772,0.69922,0.67651,0.86084,0.62207,0.83203,0.61743,0.67529,0.67773,0.67236,0.65381,0.64502,0.65918,0.75781,0.6394,0.72217,0.65747,0.78027,0.61304,0.69678,0.6604,0.69141,0.64453,0.72607,0.6377,0.75293,0.62134,0.6958,0.62744,0.72803,0.61865,0.72656,0.56934,0.81152,0.52344,0.74219,0.55542,0.83496,0.51172,0.64404,0.625,0.69678,0.60889,0.71436,0.58374,0.69434,0.55469,0.70605,0.54102,0.72949,0.53149,0.68652,0.58789,0.7959,0.50122,0.6167,0.64111,0.6582,0.60962,0.63428,0.58643,0.67334,0.57056,0.61377,0.61182,0.65527,0.55908,0.62061,0.58057,0.60498,0.65234,0.58203,0.62988,0.62354,0.67212,0.59229,0.60352,0.58643,0.65503,0.61523,0.69067,0.59424,0.68652,0.56641,0.67188,0.55029,0.62573,0.53223,0.64966,0.51709,0.61792,0.51465,0.66699,0.48267,0.66479,0.56934,0.60669,0.5459,0.60278,0.55322,0.58228,0.53271,0.58374,0.58594,0.56421,0.60986,0.55322,0.66211,0.53564,0.66699,0.52417,0.63477,0.52588,0.5791,0.53687,0.6123,0.49512,0.55273,0.55396,0.52539,0.56201,0.70312,0.52344,0.64893,0.50635,0.68457,0.50732,0.72266,0.50562,0.50635,0.58057,0.77002,0.49072,0.80908,0.47754,0.76367,0.4668,0.74365,0.47949,0.72461,0.47412,0.65479,0.48828,0.63379,0.4834,0.66309,0.47119,0.72217,0.45898,0.74268,0.43799,0.69434,0.46191,0.62939,0.47021,0.5874,0.46875,0.57666,0.48682,0.69287,0.45361,0.6582,0.4541,0.58496,0.50098,0.54834,0.52881,0.55762,0.49756,0.52051,0.54443,0.5249,0.5188,0.49756,0.5,0.48926,0.54175,0.57715,0.47754,0.54248,0.48486,0.46606,0.53296,0.55078,0.45117,0.50781,0.43652,0.48779,0.59326,0.46289,0.60303,0.57715,0.44043,0.44751,0.66504,0.39062,0.74829,0.30737,0.71655,0.37573,0.78308,0.33765,0.76453,0.34131,0.7876,0.32666,0.79932,0.30762,0.78198,0.27515,0.75684,0.42944,0.58716,0.40625,0.6062,0.43726,0.5332,0.38599,0.50464,0.44922,0.48926,0.31885,0.5769,0.42114,0.47803,0.47461,0.46875,0.43945,0.46777,0.45947,0.4502,0.35718,0.45215,0.41602,0.45264,0.43848,0.43896,0.33667,0.49902,0.49561,0.41309,0.35229,0.43359,0.31372,0.43018,0.33813,0.40186,0.39624,0.42773,0.271,0.49512,0.43628,0.38574,0.48828,0.38379,0.38184,0.38428,0.54736,0.38672,0.51758,0.38574,0.56445,0.41016,0.40771,0.33936,0.4502,0.3374,0.51318,0.35303,0.53906,0.36963,0.51221,0.32666,0.56494,0.34717,0.58643,0.36816,0.35742,0.34961,0.40918,0.3164
21,0.35449,0.29346,0.33008,0.32568,0.48438,0.29785,0.54736,0.31201,0.51074,0.27393,0.42383,0.29736,0.45264,0.27295,0.25635,0.34619,0.23535,0.31689,0.30005,0.39746,0.27539,0.41357,0.25366,0.39062,0.21484,0.52979,0.22961,0.62744,0.25659,0.69556,0.2478,0.72607,0.17029,0.69653,0.18579,0.3623,0.18835,0.45898,0.1521,0.34326,0.15161,0.59131,0.11121,0.49365,0.1076,0.60083,0.14795,0.67212,0.13525,0.44824,0.09644,0.41992,0.13159,0.68042,0.13306,0.7207,0.19006,0.72266,0.08136,0.47656,0.07031,0.44775,0.08057,0.53467,0.08026,0.38232,0.04819,0.39453,0.11554,0.34277,0.05432,0.37109,0.21655,0.28906,0.26758,0.27539,0.02315,0.41797,0.02518,0.37305,0.0098,0.44336,0.02599,0.47266,0.11182,0.26953,0.13428,0.27881,0.203,0.18018,0.05106,0.50098,0.01118,0.54199,0.18591,0.24561,0.04675,0.57397,0.00806,0.56689,0.01938,0.6001,0.06671,0.62549,0.02441,0.6394,0.08081,0.58105,0.23865,0.26172,0.04379,0.66748,0.01738,0.66919,0.02692,0.69434,0.07507,0.68921,0.06021,0.71826,0.09039,0.65039,0.10938,0.68701,0.09436,0.71484,0.08331,0.73999,0.04379,0.7395,0.07544,0.75647,0.04776,0.7655,0.06592,0.78918,0.10687,0.75549,0.09381,0.79431,0.07996,0.82031,0.13623,0.82251,0.11108,0.85217,0.12164,0.79236,0.15771,0.77136,0.17432,0.83032,0.1781,0.79285,0.21191,0.78125,0.16858,0.73877,0.19177,0.74609,0.19629,0.82068,0.21094,0.73682,0.22864,0.76477,0.25049,0.75171,0.25293,0.77454,0.26562,0.80139,0.20398,0.80042,0.23657,0.8241,0.28418,0.81775,0.23328,0.85742,0.26685,0.85364,0.30933,0.84009,0.68945,0.43604,0.6626,0.42725,0.70215,0.41943,0.63379,0.44629,0.6167,0.46338,0.60352,0.45215,0.61426,0.43457,0.59521,0.43359,0.63916,0.41553,0.5957,0.40918,0.61914,0.42188,0.60205,0.39111,0.61621,0.40674,0.64941,0.39209,0.62744,0.38135,0.64355,0.35889,0.68164,0.39746,0.67334,0.37109,0.7041,0.38916,0.61035,0.32861,0.73633,0.41406,0.59131,0.3125,0.66895,0.34277,0.69189,0.3584,0.64746,0.34473,0.72559,0.37939,0.62793,0.31787,0.65967,0.32129,0.71436,0.3457,0.63574,0.30273,0.59619,0.29102,0.6958,0.3252,0.5376,0.28271,0.55859,0.25488,0.58496,0.26758,0.61426,0.2749,0.68066,0.31152,0.69873,0.29492,0.64209,0.2832,0.73975,0.3291,0.61035,0.23584,0.63574,0.25049,0.73828,0.3623,0.66748,0.24463,0.71143,0.21777,0.77441,0.38477,0.7959,0.35254,0.86035,0.38428,0.7876,0.31592,0.73779,0.29785,0.7334,0.25781,0.76221,0.28711,0.80078,0.2583,0.82666,0.28369,0.75732,0.19971,0.83984,0.33057,0.85254,0.30811,0.93018,0.42334,0.92285,0.37891,0.9541,0.41553,0.96387,0.52051,0.99072,0.5166,0.99121,0.5708,0.72168,0.18457,0.73535,0.15088,0.69482,0.1748,0.91846,0.44971,0.95361,0.59692,0.96973,0.62964,0.67969,0.21387,0.66748,0.18945,0.70605,0.14502,0.72168,0.11621,0.65723,0.22656,0.6499,0.2124,0.67334,0.14893,0.68555,0.12744,0.61914,0.20898,0.68164,0.11182,0.68994,0.08545,0.66797,0.13086,0.59424,0.21289,0.66748,0.09131,0.67578,0.06738,0.63965,0.15234,0.60889,0.19336,0.66504,0.11182,0.64941,0.07373,0.66309,0.0498,0.62988,0.05322,0.6416,0.11328,0.64062,0.09082,0.61328,0.07373,0.58984,0.04297,0.61279,0.09375,0.59131,0.12256,0.61035,0.14893,0.58789,0.06982,0.61963,0.17285,0.59717,0.16895,0.57666,0.1626,0.56982,0.19775,0.5498,0.05273,0.54248,0.03174,0.48755,0.0166,0.54834,0.1792,0.54541,0.21826,0.55957,0.22656,0.5498,0.24414,0.5332,0.24658,0.51367,0.24463,0.48999,0.26562,0.48022,0.25098,0.51465,0.21729,0.46436,0.23047,0.4502,0.24268,0.52051,0.19336,0.41211,0.26172,0.36621,0.2627,0.39111,0.23926,0.44092,0.21826,0.44995,0.20117,0.48413,0.1875,0.31763,0.26709,0.31665,0.22705,0.3501,0.22998,0.37549,0.20801,0.42407,0.20703,0.28467,0.25537,0.245,0.23926,0.34302,0.21289,0.27808,0.22314,0.21606,0.21387,0.25171,0.17822,0.21704,0.15723,0.25122,0.21533,0.26562,0.21289,0.28589,0.20264,0.33374,0.20557,0.31885,0.19434,0.30835,0.1748,0.34741,0.18896,0.24438,0.13574,0.22961,0.0957,0.28418,0.17969,0.27051,0.15869,0.33081,0.18164,0.26465,0.10449,0.26392,0.13086,0.29028,0.07715,0.27588,0.04688,0.29004,0.15283,0.28564,0.10889,0.28394,0.13184,0.30518,0.14014,0.32617,0.15186,0.34937,0.16455,0.31738,0.10693,0.31201,0.12598,0.36987,0.1582,0.33813,0.13428,0.34888,0.10742,0.33032,0.07715,0.32129,0.04883,0.29639,0.01172,0.36646,0.06299,0.34155,0.03467,0.34106,0.0127,0.37646,0.11816,0.39111,0.06787,0.4231,0.04199,0.43018,0.02588,0.44189,0.00928,0.47485,0.03271,0.4082,0.12646,0.39917,0.09863,0.43506,
20.06836,0.46045,0.05225,0.49829,0.05566,0.40771,0.17188,0.42896,0.11475,0.47729,0.0708,0.54736,0.07031,0.43945,0.09375,0.4585,0.07959,0.51123,0.07764,0.58496,0.0918,0.55566,0.09326,0.45825,0.10596,0.45361,0.16162,0.48364,0.09619,0.55078,0.12402,0.52148,0.09766,0.48047,0.12402,0.5249,0.16455,0.48022,0.15283,0.48682,0.17432,0.45166,0.18555,0.43091,0.16406,0.42603,0.19385,0.40552,0.19678,0.91357,0.67017,0.88916,0.66211,0.93213,0.57275,0.88184,0.61157,0.91064,0.51904,0.86182,0.49072,0.87598,0.43018,0.84229,0.45557,0.82324,0.41064,0.79688,0.41748,0.82373,0.50098,0.75977,0.40479,0.77002,0.42578,0.771,0.44482,0.80859,0.45898,0.7915,0.44775,0.78223,0.46045]}]},{"name":"SM_RockGroup01_A_3_LOD0","instanceId":"id_276800","indices":[0,2,1,2,3,1,1,3,4,4,3,5,5,6,4,7,3,2,7,5,3,8,6,5,5,7,8,6,8,9,8,10,9,9,10,11,10,12,11,11,12,13,14,10,8,7,14,8,15,7,2,16,15,2,10,17,12,10,14,17,17,18,12,18,17,19,20,14,7,7,15,20,14,21,17,21,19,17,14,20,21,22,19,21,22,21,20,19,22,18,16,23,15,16,24,23,25,20,15,20,25,22,15,23,25,23,24,26,27,26,24,23,28,25,23,26,28,22,25,29,25,28,29,26,27,30,31,30,27,26,32,28,30,32,26,30,31,33,34,33,31,22,29,35,22,35,18,28,36,29,32,36,28,32,37,36,38,32,30,30,33,38,38,37,32,33,34,39,40,39,34,33,41,38,41,37,38,39,41,33,36,42,29,29,42,35,40,43,39,43,40,44,36,37,45,42,36,45,41,39,46,43,46,39,35,42,47,42,45,48,42,48,47,47,49,35,35,49,18,43,44,50,51,50,44,44,52,51,50,53,43,46,43,54,53,54,43,50,51,55,53,50,55,45,56,48,45,57,56,57,45,37,58,18,49,49,59,58,47,59,49,18,58,60,59,60,58,61,59,47,60,59,61,47,62,61,62,47,48,18,60,63,18,63,12,64,60,61,62,64,61,65,64,62,66,62,48,62,66,65,48,67,66,66,67,65,56,67,48,60,68,63,64,68,60,69,12,63,63,68,69,56,70,67,57,70,56,12,69,71,13,12,71,13,71,72,73,13,72,71,74,72,73,72,74,71,69,75,74,71,75,74,76,73,73,76,77,76,78,77,79,78,76,74,80,76,75,80,74,81,79,76,76,80,81,79,81,82,81,83,82,82,84,79,84,82,85,83,85,82,80,86,81,86,83,81,75,69,87,75,88,80,87,88,75,69,89,87,68,89,69,88,90,80,86,80,90,87,91,88,89,91,87,88,91,90,91,92,90,89,92,91,93,89,68,68,64,93,90,94,86,92,94,90,95,94,92,96,92,89,89,93,96,64,97,93,64,65,97,96,93,98,97,98,93,99,92,96,99,96,98,100,98,97,65,100,97,98,100,99,92,99,101,92,101,95,99,102,101,100,102,99,102,103,101,103,95,101,104,102,100,102,104,103,65,105,100,105,104,100,103,104,106,105,106,104,107,95,103,103,106,107,65,108,105,67,108,65,67,109,108,70,109,67,70,110,109,110,70,57,110,111,109,108,109,111,57,112,110,110,112,111,112,57,37,111,113,108,112,113,111,108,114,105,108,113,114,113,115,114,116,112,37,37,41,116,117,112,116,116,41,117,117,113,112,46,117,41,105,114,118,106,105,118,117,119,113,113,119,115,120,117,46,120,119,117,120,46,54,114,121,118,121,114,115,118,122,106,122,118,121,106,122,123,106,123,107,107,123,124,107,124,95,120,125,119,54,126,120,125,120,126,127,115,119,119,125,127,125,128,127,115,127,129,128,129,127,122,130,123,131,124,123,130,131,123,124,132,95,132,124,131,130,122,133,121,133,122,121,115,134,133,121,134,134,115,135,134,135,133,115,129,135,135,136,133,133,136,130,136,135,129,131,130,137,137,130,136,132,138,95,94,95,138,132,131,139,131,137,139,129,140,136,136,141,137,140,141,136,129,142,140,129,128,142,128,143,142,142,144,140,144,141,140,143,144,142,139,137,145,137,141,145,146,141,144,146,144,143,147,145,141,141,146,147,148,139,145,147,148,145,149,132,139,148,149,139,149,150,132,138,132,150,151,147,146,152,148,147,147,151,152,153,146,143,153,151,146,149,148,154,148,152,154,150,149,155,156,149,154,155,149,156,152,157,154,157,156,154,151,158,152,158,157,152,138,150,159,155,159,150,160,151,153,151,160,158,161,160,153,162,158,160,161,162,160,163,155,156,164,156,157,156,164,163,158,165,157,157,165,164,166,155,163,159,155,166,164,167,163,166,163,167,162,168,158,168,165,158,166,169,159,167,169,166,170,167,164,170,164,165,171,169,167,171,167,170,171,172,169,169,173,159,172,173,169,159,173,174,159,174,138,138,174,175,138,175,94,94,175,176,94,176,86,86,176,177,86,177,83,178,176,175,178,177,176,175,174,179,180,175,179,175,180,178,179,174,181,181,174,173,181,180,179,173,182,181,181,182,180,183,178,180,183,180,182,182,173,184,172,184,173,182,184,185,172,185,184,177,178,186,177,187,83,187,177,186,186,188,187,178,189,186,189,178,183,188,186,189,83,187,190,187,188,190,191,189,183,188,189,191,188,191,192,191,183,193,183,182,193,192,191,193,83,190,194,85,83,194,190,188,195,
2190,195,194,196,85,194,195,196,194,85,196,197,197,196,198,193,182,199,185,199,182,200,195,188,192,200,188,195,201,196,201,198,196,195,200,201,202,198,201,200,202,201,193,203,192,199,203,193,202,204,198,198,204,205,205,204,206,202,200,207,192,207,200,206,204,208,206,208,209,204,202,210,202,207,210,208,211,209,209,211,212,210,213,204,213,208,204,211,214,212,214,215,212,214,216,215,217,215,216,216,218,217,219,214,211,219,216,214,220,211,208,220,219,211,220,208,221,208,213,221,221,222,220,219,220,222,221,213,223,223,222,221,213,210,224,213,224,223,225,219,222,225,222,223,216,226,218,227,218,226,216,219,228,219,225,228,210,229,224,229,210,207,224,230,223,225,223,230,230,224,231,224,229,231,229,207,232,207,192,232,230,233,225,230,231,233,231,229,234,234,229,232,231,234,233,232,192,235,235,234,232,203,235,192,234,235,236,236,233,234,225,233,237,228,225,237,235,203,238,238,236,235,233,236,239,239,237,233,236,238,240,240,239,236,237,241,228,237,239,242,237,242,241,242,239,243,239,240,243,244,228,241,228,244,216,244,226,216,242,245,241,243,245,242,243,246,245,241,247,244,226,244,247,241,245,247,226,247,248,245,248,247,245,246,248,248,227,226,249,227,248,246,249,248,227,249,250,250,249,251,251,252,250,246,253,249,253,251,249,246,254,253,255,252,251,255,256,252,257,251,253,254,257,253,257,255,251,254,246,258,246,259,258,259,246,243,258,260,254,259,260,258,243,261,259,261,243,240,260,259,262,263,254,260,262,263,260,264,259,261,259,264,262,257,254,265,266,254,263,254,266,265,263,262,267,267,266,263,262,264,268,268,267,262,261,269,264,269,268,264,240,270,261,269,261,270,265,271,257,271,255,257,266,267,272,268,272,267,273,266,272,273,272,274,272,268,274,266,273,275,265,266,275,271,265,275,276,268,269,276,274,268,240,277,270,277,240,238,270,278,269,278,276,269,273,279,275,275,279,271,280,270,277,270,280,278,281,277,238,203,281,238,277,281,282,280,277,282,281,203,283,282,281,283,283,203,199,284,282,283,282,284,280,284,283,199,278,280,285,280,284,285,286,284,199,199,185,286,287,284,286,284,287,285,288,285,287,285,289,278,285,288,289,276,278,289,286,185,290,290,287,286,288,287,290,185,172,290,289,291,276,291,289,288,274,276,291,292,274,291,288,292,291,292,273,274,293,288,290,290,172,293,288,294,292,294,288,293,293,172,295,172,171,295,292,296,273,296,292,294,297,294,293,293,295,297,298,295,171,298,171,170,299,296,294,299,294,297,295,300,297,300,295,298,300,299,297,298,170,301,300,298,301,273,296,302,299,302,296,299,300,303,303,300,301,304,299,303,299,304,302,301,170,305,165,305,170,303,301,306,304,303,306,165,307,305,165,168,307,307,168,308,309,301,305,301,309,306,305,307,309,310,304,306,310,306,309,311,309,307,308,311,307,309,311,310,311,312,310,304,310,313,304,313,302,312,313,310,314,302,313,314,273,302,314,313,315,312,315,313,273,314,316,315,316,314,279,273,316,312,317,315,316,315,317,279,316,318,316,317,319,319,318,316,318,320,279,318,321,320,279,320,271,322,271,320,322,320,321,271,322,255,255,322,323,256,255,323,322,324,323,323,324,256,321,324,322,324,325,256,325,324,326,319,327,318,321,318,327,324,328,326,324,321,328,329,327,319,321,327,330,330,327,329,321,331,328,331,321,330,332,328,331,326,328,332,330,332,331,332,333,326,326,333,334,334,333,335,336,332,330,336,333,332,335,333,337,333,336,337,330,338,336,338,330,329,337,336,338,319,339,329,339,319,317,340,335,337,335,340,341,340,342,341,341,342,343,344,338,329,339,344,329,345,338,344,344,339,345,346,339,317,317,312,346,337,338,347,338,345,347,348,340,337,348,337,347,339,346,349,339,349,345,350,346,312,350,349,346,351,340,348,340,351,342,348,347,352,352,347,345,351,348,352,353,345,349,353,349,350,352,345,353,354,350,312,350,354,353,312,311,354,352,355,351,352,353,355,351,355,342,356,353,354,356,355,353,357,354,311,354,357,356,311,308,357,355,358,342,355,356,359,355,359,358,356,357,360,356,361,359,356,360,361,360,362,361,363,359,361,359,363,358,363,361,362,357,308,364,357,364,360,365,342,358,365,358,366,358,363,366,367,342,365,367,365,366,343,342,367,367,368,343,368,367,369,369,367,370,367,366,370,370,371,369,363,372,366,370,366,372,371,370,373,372,373,370,371,373,374,371,374,375,375,374,376,376,374,377,372,363,378,362,378,363,379,372,378,378,362,379,380,373,372,379,380,372,374,381,377,382,381,374,377,381,383,381,384,383,381,382,384,385,383,384,386,374,373,374,386,382,387,373,380,387,386,373,388,380,379,388,387,380,386,387,389,389,382,386,388,389,387,385,384,390,390,391,385,392,388,379,379,362,392,393,384,382,393,390,384,391,390,394,395,391,394,394,396,395,397,390,393,394,390,397,398,394,397,394,399,396,399,394,398,399,400,39
26,398,400,399,400,398,401,402,397,393,398,397,402,382,403,393,402,393,403,398,404,401,404,405,401,406,398,402,404,398,406,407,405,404,405,407,408,403,382,409,409,382,389,402,403,410,410,406,402,406,411,404,407,404,411,410,412,406,411,406,412,413,408,407,411,414,407,413,407,414,414,415,413,415,416,413,413,416,408,416,417,408,416,52,417,418,52,416,415,419,416,419,418,416,52,418,420,52,420,51,418,419,421,421,420,418,420,422,51,55,51,422,419,423,421,420,421,424,421,423,424,425,422,420,424,425,420,426,422,425,425,424,426,55,422,426,423,426,424,423,55,426,427,423,419,423,427,55,427,419,415,53,55,427,427,428,53,428,54,53,429,427,415,429,428,427,428,430,54,54,430,126,430,431,126,431,125,126,125,431,432,128,125,432,431,430,433,432,431,433,430,428,434,434,433,430,428,429,435,434,428,435,433,434,436,436,432,433,436,434,435,437,128,432,432,436,437,438,128,437,143,128,438,438,437,439,437,436,439,143,438,439,439,436,440,436,435,440,439,441,143,440,441,439,441,153,143,442,435,429,415,442,429,440,435,443,435,442,443,444,440,443,440,444,441,444,443,442,442,445,444,153,441,446,441,444,446,444,445,446,153,446,161,415,447,442,445,442,447,161,446,448,446,445,448,447,415,449,449,415,414,450,447,449,449,414,450,451,447,450,447,451,445,414,452,450,451,450,452,411,452,414,452,411,453,412,453,411,454,452,453,454,453,412,455,451,452,452,454,455,445,451,456,455,456,451,445,457,448,445,456,457,458,454,412,412,410,458,454,459,455,459,456,455,459,454,458,457,460,448,448,460,161,461,457,456,457,461,460,456,459,462,461,456,462,463,462,459,458,463,459,463,461,462,464,458,410,463,458,464,465,464,410,465,410,403,466,465,403,466,403,409,467,464,465,466,467,465,464,468,463,468,464,467,461,463,469,469,463,468,409,470,466,389,470,409,470,471,466,471,470,389,467,466,471,471,389,388,472,471,388,467,471,472,392,472,388,467,472,473,473,472,392,473,468,467,474,473,392,362,474,392,473,475,468,474,475,473,474,362,476,362,360,476,476,477,474,475,474,477,360,478,476,478,477,476,360,364,478,479,468,475,469,468,479,480,475,477,475,480,479,478,481,477,480,477,481,481,478,364,479,480,482,481,482,480,479,482,469,364,483,481,482,481,483,364,484,483,482,483,484,308,484,364,469,482,485,482,484,485,469,485,486,469,486,461,486,460,461,485,460,486,460,485,487,487,485,484,487,161,460,308,488,484,488,487,484,161,487,489,161,489,162,490,488,308,308,168,490,487,488,491,491,489,487,490,491,488,489,492,162,168,162,492,492,490,168,490,492,491,492,489,491],"attributes":[{"name":"aPos","stride":3,"data":[-1.8182,-0.0326,1.0737,-1.9413,-0.0291,0.9573,-1.6373,-0.0346,1.0391,-1.6737,-0.048,0.6714,-1.7425,-0.0351,0.5429,-1.5978,-0.0294,0.526,-1.6856,-0.0266,0.3909,-1.513,-0.0495,0.6078,-1.5249,-0.044,0.2946,-1.5901,-0.0388,0.2636,-1.3976,-0.004,0.1634,-1.4441,-0.0123,0.0558,-1.228,0.0184,0.079,-1.2995,-0.016,-0.116,-1.3992,-0.0039,0.3164,-1.5214,-0.0269,0.8108,-1.4961,-0.0324,1.0667,-1.3077,0.0634,0.208,-1.0804,0.121,0.2538,-1.2315,0.0698,0.3249,-1.4007,-0.0057,0.5868,-1.3308,0.05,0.3729,-1.2431,0.0697,0.5192,-1.3254,-0.0373,0.8076,-1.2586,-0.0333,1.0478,-1.2716,0.0166,0.6788,-1.0395,-0.0228,0.9429,-0.9986,-0.0235,1.1988,-1.0993,-0.0003,0.7829,-1.1606,0.0547,0.644,-0.8697,-0.0122,1.1226,-0.8723,-0.0261,1.257,-0.8921,0.0526,0.9142,-0.6823,0.0092,1.1823,-0.6336,-0.0201,1.446,-1.0681,0.1057,0.4334,-0.9103,0.0444,0.7597,-0.6946,0.0902,0.7611,-0.7405,0.051,0.9567,-0.4717,0.0351,1.2505,-0.4085,-0.013,1.4293,-0.551,0.0797,1.0637,-0.9463,0.0728,0.535,-0.245,0.043,1.2294,-0.1731,-0.0109,1.4855,-0.8429,0.0567,0.6325,-0.3805,0.1103,0.9798,-0.924,0.1112,0.3624,-0.769,0.0768,0.4458,-1.0175,0.1448,0.3082,-0.0903,0.0278,1.3454,-0.0007,0.0248,1.4642,0.0735,-0.0093,1.5524,-0.0079,0.0891,1.2462,-0.1888,0.097,1.0419,0.0078,0.0494,1.3474,-0.6656,0.1068,0.5295,-0.619,0.0813,0.6371,-0.9841,0.2174,0.2378,-0.8844,0.1846,0.2868,-0.9872,0.1353,0.1875,-0.8587,0.1262,0.2694,-0.7894,0.1711,0.3118,-1.0683,0.1034,0.0767,-0.756,0.159,0.2054,-0.629,0.0974,0.2836,-0.707,0.1207,0.3708,-0.6119,0.1133,0.4231,-0.855,0.1273,-0.0102,-0.918,0.061,-0.114
21,-0.5839,0.165,0.5521,-1.041,0.0051,-0.1359,-1.1252,-0.0306,-0.2008,-1.1436,0.0049,-0.3118,-1.0231,-0.0032,-0.3367,-0.9279,-0.0105,-0.2947,-0.8737,-0.0108,-0.5181,-1.0405,-0.0218,-0.5736,-0.9513,-0.0276,-0.6338,-0.8992,-0.0243,-0.7316,-0.8188,0.0412,-0.4351,-0.7672,0.0263,-0.5537,-0.795,-0.0309,-0.6713,-0.6483,0.0236,-0.6079,-0.7972,-0.0191,-0.8305,-0.7126,-0.0172,-0.8281,-0.6203,0.1219,-0.4535,-0.835,0.0999,-0.2295,-0.7666,0.1422,-0.3251,-0.7046,0.1407,-0.1141,-0.6813,0.1177,-0.3687,-0.6206,0.1714,-0.1657,-0.4945,0.1608,-0.1608,-0.6995,0.1462,0.128,-0.4383,0.1471,-0.3148,-0.2059,0.2012,-0.053,-0.6238,0.1573,0.0217,-0.6018,0.1286,0.1907,-0.5888,0.2104,0.1214,-0.5139,0.2348,0.0439,-0.4905,0.1641,0.2024,-0.4119,0.2015,-0.0227,-0.4144,0.2299,0.084,-0.3115,0.2245,0.0414,-0.3843,0.1651,0.2194,-0.4242,0.1121,0.3133,-0.3143,0.2547,0.2604,-0.2361,0.2697,0.0873,-0.4503,0.1033,0.4451,-0.5214,0.1329,0.4756,-0.506,0.1765,0.6004,-0.4554,0.0922,0.5621,-0.5156,0.0849,0.6773,-0.3462,0.0811,0.6007,-0.308,0.11,0.46,-0.2059,0.1238,0.5559,-0.5728,0.0895,0.8129,-0.3841,0.0836,0.7667,-0.3261,0.1701,0.3488,-0.2283,0.0862,0.6742,-0.2206,0.0908,0.8075,-0.279,0.2171,0.442,-0.2505,0.2903,0.3684,-0.2048,0.3417,0.2537,-0.1396,0.3033,0.0842,-0.122,0.0799,0.7009,-0.1234,0.1092,0.8216,-0.1298,0.1553,0.6364,-0.0146,0.1601,0.6428,-0.076,0.1631,0.5265,-0.1024,0.3916,0.3001,-0.0679,0.3395,0.1051,-0.0248,0.2799,0.0111,-0.1737,0.3517,0.4442,-0.2229,0.2685,0.5326,-0.1379,0.2547,0.562,-0.0649,0.2968,0.3871,-0.0584,0.295,0.229,-0.1723,0.2009,-0.1453,-0.0308,0.2807,0.1077,-0.0257,0.1873,0.4244,-0.0039,0.1931,0.3027,0.034,0.2052,0.5464,0.1537,0.108,0.5159,0.0779,0.2104,0.4269,-0.0033,0.2069,0.2084,0.138,0.1637,0.3157,0.1323,0.2335,0.227,0.093,0.3243,0.1286,0.0721,0.3632,0.0206,0.0024,0.2616,-0.0948,0.2234,0.2271,0.2399,0.2169,0.2375,0.1193,0.211,0.2378,0.3596,0.1677,0.3125,0.0755,0.1009,0.3276,-0.0865,0.1756,0.2436,-0.0204,0.2558,0.2295,0.004,0.2836,0.3006,0.0863,0.03,0.2595,-0.203,0.281,0.3476,0.2814,0.4382,0.5019,0.3497,0.3705,0.4583,0.2105,0.1882,0.2153,-0.1213,0.2899,0.2265,-0.1078,0.3479,0.2931,-0.0729,0.119,0.2628,-0.1776,0.2171,0.2194,-0.235,0.392,0.3556,0.0251,0.1213,0.3174,-0.2641,0.3501,0.2367,-0.2358,0.2218,0.3141,-0.3088,0.1403,0.4525,-0.2579,-0.0342,0.3435,-0.2564,-0.1234,0.2146,-0.2615,-0.3099,0.1772,-0.3792,-0.4236,0.1775,-0.4418,-0.4905,0.1386,-0.5106,-0.3437,0.2679,-0.506,-0.2158,0.239,-0.3878,-0.2427,0.3164,-0.3923,-0.1514,0.3369,-0.3217,-0.0885,0.5153,-0.3254,-0.3277,0.3578,-0.5144,0.0337,0.4494,-0.2515,0.0389,0.5924,-0.2871,-0.3962,0.1753,-0.5916,-0.4699,0.0951,-0.6665,-0.4663,0.2193,-0.7256,-0.3832,0.271,-0.6245,-0.5589,0.0994,-0.67,-0.3758,0.3928,-0.6336,-0.4226,0.4193,-0.7414,-0.2617,0.5456,-0.4976,-0.6141,0.0065,-0.7009,-0.5224,0.0614,-0.7732,-0.6032,0.0014,-0.8535,-0.6648,0.0018,-0.8929,-0.5828,-0.0062,-1.0466,-0.1131,0.6621,-0.4023,-0.4954,0.2042,-0.8337,-0.5161,0.0663,-0.896,-0.4452,0.0781,-0.9748,-0.2378,0.6657,-0.5388,-0.4182,0.0334,-1.1895,-0.492,-0.0064,-1.2001,-0.4538,-0.001,-1.3335,-0.4034,0.2256,-0.8911,-0.3029,0.0685,-1.3488,-0.2603,0.0061,-1.5552,-0.3519,0.1342,-1.0156,-0.1657,0.0622,-1.4948,0.0458,-0.0013,-1.5821,-0.3076,0.1496,-1.1912,-0.0115,0.083,-1.4339,0.1248,-0.0161,-1.5054,0.1774,0.059,-1.3979,0.2666,-0.0394,-1.5185,0.4747,-0.0129,-1.3512,-0.0242,0.1802,-1.3351,-0.1707,0.2267,-1.3649,-0.2329,0.1941,-1.2768,-0.0935,0.2862,-1.2807,-0.1879,0.2891,-1.1748,-0.2998,0.2207,-1.063,-0.0608,0.3263,-1.1225,0.3951,0.0725,-1.2908,0.5885,-0.0092,-1.2676,0.0546,0.2137,-1.2624,-0.3218,0.2466,-0.9273,-0.1409,0.3412,-1.0618,-0.2252,0.2879,-0.9816,-0.3458,0.3861,-0.8139,-0.0292,0.3465,-0.9982,-0.2308,0.3808,-0.8678,-0.2606,0.5187,-0.713,-0.1044,0.4389,-0.8761,0.0535,0.298,-1.1144,-0.1679,0.6346,-0.6556,0.0716,0.3711,-0.9635,-0.0155,0.5245,-0.8206,0.1631,0.3019,-1.1642,0.192,0.3344,-1.0353,0.2655,0.4364,-0.9827,0.2143,0.218,-1.2806,0.3227,0.3145,-1.0808,0.4188,0.3479,-1.0165,0.3043,0.2583,-1.212,0.4681,0.2095,-1.1093,0.5466,0.2029,-1.0517,0.7211,-0.0046,-1.2249,0.6284,0.1647,-0.9901,0.8499,-0.0204,-1.1116,0.4946,0.2994,-0.9493,0.5403,0.4012,-0.9072,0.7352,0.0727,-0.9466,0.8918,-0.0217,-0.9988,0.5624,0.273,-0.8606,0.4841,0.4477,-0.9855,0.4108,0.5057,-0.9476,0.5453,0.5332,-0.9552,0.3044,0.5881,-0.8695,0.502,0.5976,-0.9148,0.62,0.4858,-0.8997,0.4296,0.647
27,-0.8258,0.5926,0.3595,-0.8193,0.6637,0.4368,-0.7816,0.6036,0.5746,-0.8151,0.4944,0.6151,-0.7468,0.3792,0.7273,-0.7415,0.2739,0.7435,-0.7239,0.6547,0.2193,-0.7998,0.6479,0.5208,-0.7088,0.6212,0.4194,-0.6085,0.5386,0.5611,-0.6655,0.639,0.345,-0.7082,0.4362,0.6774,-0.6631,0.1941,0.7896,-0.665,0.3448,0.8095,-0.677,0.7455,0.3162,-0.6795,0.2365,0.8473,-0.6082,-0.0952,0.7382,-0.5961,0.0585,0.8144,-0.581,-0.0842,0.7289,-0.495,0.0974,0.7821,-0.4767,0.2767,0.7852,-0.5342,0.1179,0.7455,-0.3788,0.247,0.7112,-0.4183,0.4473,0.6391,-0.4527,0.4209,0.7628,-0.5925,0.1931,0.6452,-0.3118,0.509,0.6497,-0.5772,0.583,0.5293,-0.5224,0.2927,0.5291,-0.334,0.4989,0.4531,-0.4471,0.2851,0.4283,-0.3031,0.5372,0.4051,-0.5511,0.4168,0.4008,-0.4162,0.3431,0.3332,-0.3024,0.4858,0.3589,-0.4924,0.384,0.3233,-0.4168,0.4206,0.2403,-0.3655,0.5904,0.3492,-0.4713,0.465,0.3018,-0.4265,0.5569,0.3149,-0.3878,0.4245,0.2555,-0.2219,0.5362,0.2226,-0.3467,0.4845,0.3276,-0.1485,0.6374,0.4215,-0.0303,0.539,0.2299,-0.2551,0.6423,0.208,-0.3205,0.6669,0.2821,-0.2243,0.721,0.1762,-0.359,0.6857,0.2971,-0.3757,0.6931,0.3123,-0.4733,0.7686,0.2556,-0.4373,0.7645,0.2951,-0.5605,0.8197,0.1997,-0.4806,0.8353,0.2758,-0.6465,0.898,0.2573,-0.5197,0.8248,0.199,-0.7256,0.9135,0.1575,-0.7135,0.8347,0.0854,-0.7892,0.8262,-0.0093,-0.9385,0.9414,0.0172,-0.8803,0.9691,-0.0103,-0.9534,1.0973,-0.0257,-0.9351,0.9481,0.2482,-0.6178,0.9952,0.0118,-0.8408,0.952,0.1872,-0.5421,0.9765,0.1172,-0.6615,0.9364,0.0411,-0.7529,1.036,-0.019,-0.7609,1.2072,-0.0447,-0.7075,1.4118,-0.0505,-0.7901,1.356,-0.0121,-0.5892,1.0338,0.05,-0.6335,1.1676,-0.0004,-0.6001,1.0354,0.0925,-0.5278,0.8694,0.1396,-0.5113,1.2446,0.0002,-0.4578,1.3535,-0.0096,-0.4617,1.2589,-0.0255,-0.2688,1.4091,-0.0348,-0.3168,0.98,0.1929,-0.4716,0.9427,0.1214,-0.4338,0.777,0.1323,-0.4302,1.0485,0.0865,-0.4301,1.1384,0.0068,-0.4145,0.8539,0.11,-0.436,0.8322,0.1657,-0.3453,1.1427,0.0104,-0.3181,1.0437,0.0798,-0.3275,0.9401,0.1465,-0.3032,0.7661,0.2262,-0.2388,1.1365,0.0789,-0.2848,0.9364,0.2749,-0.1848,0.7591,0.3788,-0.0932,1.2526,0.0169,-0.1444,1.1588,0.1143,-0.1771,1.0294,0.3713,-0.0345,1.1558,0.2173,-0.0657,1.1976,0.284,0.0782,1.2988,0.0739,-0.0162,0.8436,0.4869,0.0761,1.3235,-0.0697,-0.1524,1.3437,-0.0268,-0.0492,1.4143,-0.0632,-0.1451,1.4921,-0.0473,-0.2298,1.5972,-0.0383,-0.0214,1.4998,-0.048,0.0423,1.6692,-0.0355,0.4423,1.4412,-0.0283,0.1577,1.5544,-0.0409,0.4694,1.6798,-0.0227,0.7701,1.7874,-0.0286,0.6042,1.7826,-0.0273,0.7159,1.914,-0.0209,0.87,1.3763,0.0806,0.1679,1.3539,0.1505,0.294,1.4819,0.0208,0.4765,1.6572,0.0115,0.9127,1.5185,0.0539,0.9046,1.9182,-0.012,1.0371,1.6226,0.0634,1.0177,1.8463,-0.0105,1.2335,1.5368,-0.0078,0.7258,1.4715,0.0509,0.5707,1.3121,0.2279,0.4968,1.4281,0.069,0.7139,1.6485,0.0511,1.2202,1.6472,-0.004,1.5471,1.2817,0.3226,0.2914,1.5357,0.0805,1.0953,1.4936,0.0581,1.3802,1.471,-0.0042,1.5764,1.2716,-0.0019,1.6471,1.4385,0.0894,1.2439,1.1157,0.0749,1.3209,1.1616,0.0616,1.4777,1.0596,-0.0041,1.639,0.9654,-0.0067,1.5668,1.2833,0.1076,1.1457,1.3696,0.1827,0.9768,0.8981,0.0948,1.3509,0.8308,-0.0057,1.6187,1.0484,0.0964,1.219,0.7116,0.0644,1.4445,0.5387,-0.0051,1.5604,1.3985,0.1558,0.8696,1.2465,0.1811,1.0614,0.816,0.1132,1.292,0.973,0.1956,1.1547,0.5887,0.0479,1.4123,0.6192,0.1219,1.3416,0.4347,0.112,1.3396,0.2511,0.044,1.4827,0.3044,-0.0055,1.6267,0.2057,0.0775,1.4423,0.2071,0.0927,1.3308,0.1168,0.073,1.4837,0.1856,0.1041,1.3574,-0.0186,0.1054,1.4477,0.095,0.0815,1.3152,0.0875,0.1188,1.3462,0.027,0.135,1.4108,0.0093,0.0983,1.3604,0.1402,0.1249,1.217,0.1426,0.1413,1.133,0.3013,0.1444,1.1902,-0.0421,0.1375,0.9369,-0.1109,0.1615,0.7955,-0.0278,0.1048,0.7356,-0.0218,0.113,0.8535,0.0774,0.1149,0.9369,0.2585,0.1307,1.0503,0.1385,0.1028,0.8204,0.0494,0.099,0.716,0.0686,0.0846,0.6136,0.1323,0.0996,0.6255,0.2348,0.1189,0.7331,0.2098,0.1713,0.5228,0.4112,0.1927,1.1459,0.369,0.1636,1.0354,0.4629,0.2746,1.0403,0.5352,0.3804,1.0814,0.4244,0.411,0.5886,0.5019,0.2509,1.2078,0.5358,0.5681,0.5703,0.499,0.1537,1.2523,0.5754,0.2681,1.2783,0.6134,0.4615,1.1387,0.6834,0.2794,1.2911,0.8096,0.2392,1.2367,0.8323,0.3432,1.1623,0.7157,0.4327,1.1615,0.6387,0.6023,0.8823,0.5744,0.5561,0.8348,1.0564,0.3288,0.9994,0.7626,0.4873,1.0422,0.6261,0.6901,0.5184,0.7088,0.66,0.7205,0.7298,0.6001,0.8162,0.8343,0.5433,0.819,1.1045,0.4058,0.8117,1.2206,0.3056,0.8428,1.3274,0.2758,0.7806,1.2197,0.3903,0.6863,1.1275,0.4954,0.6034,0.8467,0.6761,0.5563,1.4075,0.1668,0.7475,1.3105,0.2795,0.6633,1.265,0.3421,0.5419,1.241,0.4428,0.5132,1.1965,0.41,0.3082,1.1333,0.5072,0.4675,1.1154,0.3826,0.0824,1.1088,0.4764,0.3186,1.0075,0.414,0.0704,1.0257,0.6032,0.5104,1.0471,0.5891,0.3729,1.0163,0.5324,0.256,0.9321,0.6957,0.3968,0.8799,0.6401,0.2777,0.7529,0.6867,0.3244,0.7347,0.7471,0.4178,0.715,0.7414,0.5678,0.6494,0.7012,0.3607,0.6529,0.5676,0.1936,0.4796,0.5789,0.2665,0.5631,0.4638,0.0716,0.528,0.5499,0.2019,0.4526,0.4264,0.1489]},{"name":"aNormal","stride":3,"data":[0.0157,0.9961,-0.0863,0.0393,0.9989,-0.0236,-0.0315,0.999,-0.0315,0.0472,0.9989,-0.0079,-0.0078,0.9962,0.0863,0.0632,0.9955,0.0711,0.0785,0.9964,-0.0314,-0.1414,0.9895,-0.0314,-0.1102,0.9919,0.063,-0.0552,0.9932,0.1025,-0.2675,0.9597,-0.0865,-0.
vendor: 6,181 bytes, line 2
21412,0.9885,-0.0549,-0.2522,0.9299,-0.2679,0.0393,0.9991,-0.0157,-0.4869,0.8717,0.055,-0.0863,0.996,0.0235,0.0079,0.9985,-0.055,-0.2834,0.9369,-0.2047,-0.3855,0.9205,-0.0629,-0.1414,0.9897,-0.0236,-0.3468,0.9379,-0.0079,-0.4424,0.8926,0.0869,-0.2754,0.952,0.1338,0.0393,0.9827,0.1808,0,0.9939,-0.1104,-0.1264,0.9403,0.3161,-0.2608,0.9642,0.0474,-0.0314,0.997,0.0707,-0.2438,0.9201,0.3067,-0.0633,0.9491,0.3085,-0.0551,0.9682,0.244,-0.0632,0.996,0.0632,-0.2053,0.9632,0.1737,-0.3076,0.9308,0.1972,-0.0864,0.9893,0.1178,-0.0632,0.9798,0.1896,-0.149,0.9883,0.0314,-0.118,0.9915,-0.0551,-0.1493,0.9583,0.2435,-0.0157,0.9437,0.3303,-0.0236,0.9768,0.2127,-0.142,0.9784,0.1499,0.0553,0.9788,0.1973,-0.0711,0.9486,0.3083,-0.1179,0.9665,0.2279,-0.0711,0.9949,0.0711,-0.0706,0.9964,0.0471,0.0471,0.9185,0.3925,-0.0708,0.9672,0.2438,-0.3067,0.9201,0.2438,-0.1728,0.9503,0.2592,-0.4327,0.7632,0.4799,-0.1575,0.7402,0.6536,-0.2123,0.9278,0.3067,-0.1104,0.9858,0.1262,-0.5832,0.8117,-0.0315,-0.2981,0.9491,0.102,-0.2596,0.9438,0.2045,-0.1105,0.9708,-0.2131,0.6145,0.78,0.1182,-0.1653,0.968,-0.1889,0.0947,0.9947,0.0395,-0.0158,0.9786,0.2052,-0.3158,0.9001,-0.3,0.0472,0.9989,0.0079,0.0473,0.9936,0.1025,0.0869,0.9795,0.1817,-0.0712,0.9884,-0.1344,-0.1805,0.9654,-0.1884,-0.3941,0.8512,-0.3468,-0.1575,0.9844,0.0787,-0.2512,0.9183,-0.3061,0.0236,0.9997,-0.0079,0.0549,0.9885,0.1412,-0.0552,0.9932,0.1025,-0.4155,0.9093,-0.0235,-0.1575,0.9607,-0.2284,-0.0079,0.9899,-0.1414,-0.0235,0.9966,-0.0785,-0.0707,0.9975,-0.0079,-0.3688,0.863,-0.3452,-0.2998,0.8916,-0.3393,-0.1179,0.9829,-0.1415,-0.3228,0.8897,-0.3228,-0.0553,0.9959,0.0711,-0.1022,0.991,0.0865,-0.2828,0.919,-0.2749,-0.5187,0.8488,-0.1022,-0.2985,0.9268,-0.2278,-0.2052,0.9786,0.0158,-0.1576,0.9458,-0.2838,-0.1104,0.9936,-0.0237,0.0314,0.9883,-0.149,-0.11,0.9902,0.0864,-0.1181,0.9919,0.0472,-0.212,0.9423,-0.2591,-0.3302,0.9355,-0.1258,-0.1729,0.9193,0.3536,-0.3472,0.9074,0.2367,-0.1816,0.9788,-0.0947,-0.1421,0.8604,0.4894,-0.0474,0.9642,-0.2608,0.0236,0.9907,0.1337,-0.1813,0.9618,-0.205,-0.4245,0.8491,0.3145,-0.2517,0.9125,0.3225,-0.7233,0.684,0.0943,-0.3305,0.8578,-0.3935,0.0707,0.9975,-0.0079,0.1498,0.9619,-0.2287,0.3614,0.8721,0.33,0.3228,0.9449,0.0551,0.0473,0.9776,0.205,0.0157,0.9961,0.0863,-0.5344,0.7781,0.3301,-0.4178,0.7095,0.5676,0.0079,0.9998,-0.0157,0,0.9969,-0.0785,-0.7568,0.5439,0.3626,-0.1969,0.9766,0.0866,-0.0237,0.9944,-0.1026,-0.8318,0.4002,0.3845,-0.7244,0.6693,0.1653,-0.4969,0.8597,-0.1183,-0.2129,0.8675,-0.4495,-0.2367,0.9545,0.1814,-0.3705,0.9223,-0.1104,-0.2985,0.8956,0.3299,0.1423,0.8931,0.4268,0.0944,0.8889,0.4484,0.299,0.9522,0.063,0.3616,0.8883,-0.283,-0.3396,0.9082,-0.2448,-0.1421,0.9078,0.3947,-0.4117,0.5146,0.7521,0.3468,0.3941,0.8512,0.7892,0.5524,0.2683,0.8901,0.449,0.0788,-0.2435,0.9661,-0.0864,0.2373,0.9571,0.1661,0.4093,0.8973,0.1653,0.4948,0.8561,0.1492,0.2283,0.9212,0.315,-0.1105,0.9475,0.3,0.3064,0.9507,0.0471,0.3698,0.8262,0.4249,-0.2053,0.9552,0.2131,-0.1185,0.8928,0.4346,0.0158,0.8763,0.4816,-0.0474,0.9951,-0.0869,-0.3689,0.8949,-0.2512,-0.6123,0.785,0.0942,0,0.998,0.0629,-0.7595,0.6329,0.1503,0.5888,0.8008,0.1099,0.1886,0.9192,-0.3457,0.5346,0.8255,-0.1808,-0.2133,0.9478,-0.237,-0.6759,0.6837,-0.2751,-0.2441,0.9057,0.3465,-0.8112,0.5828,0.0473,-0.7337,0.6548,0.1815,-0.637,0.7313,-0.2438,0.339,0.9381,-0.0709,-0.3071,0.9372,-0.1654,-0.5212,0.7897,-0.3238,0.3157,0.9313,0.1815,0.1577,0.8752,0.4573,-0.4569,0.8192,-0.3466,0.2526,0.3553,0.9,-0.0946,0.9774,0.1892,0.2443,0.3231,0.9143,0.2051,0.0316,0.9782,-0.3221,0.2828,0.9035,-0.5125,0.7411,0.4336,-0.292,0.8601,0.4182,-0.4247,0.8966,0.1258,-0.4495,0.8675,-0.2129,-0.7975,0.4422,0.4106,-0.5205,0.3628,0.7729,-0.7028,0.2764,0.6555,-0.6284,0.2199,0.7462,-0.5484,0.2194,0.8069,-0.809,0.2278,0.5419,-0.1334,0.1413,0.9809,-0.2042,0.3771,0.9034,-0.8157,0.5647,0.1255,-0.6513,0.7455,0.1413,-0.8976,0.2913,0.3307,-0.8944,0.1648,0.4158,-0.5264,0.8485,0.055,-0.8934,0.2135,0.3953,-0.8096,0.5502,-0.2044,-0.7691,0.2668,0.5808,-0.4667,0.8701,-0.1582,-0.7946,0.6058,-0.0393,-0.3397,0.9402,-0.0237,-0.0472,0.9986,0.0236,-0.339,0.9145,-0.2207,-0.4977,0.5767,0.6478,-0.875,0.3863,-0.2917,-0.6924,0.6845,-0.2282,-0.5177,0.7295,-0.4471,-0.7556,0.6533,0.0472,-0.5604,0.8208,-0.1105,-0.4717,0.8727,-0.1258,-0.4103,0.8995,-0.1499,-0.5193,0.5115,-0.6846,-0.5582,0.739,-0.3773,-0.2683,0.8601,-0.434,-0.6768,0.6453,-0.3542,-0.1419,0.7566,-0.6383,0.2592,0.8247,-0.5027,-0.735,0.6323,-0.245,0.251,0.8078,-0.5333,0.2049,0.8434,-0.4966,0.1577,0.7177,-0.6783,0.2285,0.851,-0.4728,0.3386,0.7324,-0.5907,0.3295,0.6983,-0.6355,-0.26,0.7247,-0.6381,-0.6614,0.6693,-0.3386,0.063,0.8746,-0.4807,-0.4487,0.8502,-0.2755,-0.7179,0.6627,-0.213,0.1102,0.9526,-0.2834,0.4177,0.6305,-0.6542,0.2438,0.7313,-0.637,0.1105,0.7738,-0.6238,-0.545,0.6161,-0.5687,-0.2668,0.9496,-0.1648,-0.5433,0.7874,-0.2913,-0.3702,0.5908,-0.7168,-0.0394,0.9147,-0.4022,-0.3697,0.6371,-0.6764,-0.3617,0.7156,-0.5976,-0.2676,0.6532,-0.7083,0.0236,0.9123,-0.4089,-0.3936,0.677,-0.6219,-0.1422,0.7346,-0.6635,-0.2362,0.6298,-0.74,-0.0707,0.9029,-0.424,-0.0866,0.8349,-0.5435,-0.1892,0.5519,-0.8121,0.126,0.6693,-0.7323,0.1894,0.7893,-0.5841,0.3777,0.4879,-0.7869,0.3545,0.7247,-0.5908,0.4579,0.6631,-0.5921,0.4965,0.733,-0.465,0.4417,0.7572,-0.4812,0.6067,0.7485,-0.2679,0.4969,0.8518,-0.1656,0.7456,0.3532,-0.5651,0.7089,-0.2442,-0.6617,0.5978,0.7708,-0.2202,0.2601,0.9539,-0.1498,0.7852,0.3926,-0.479,0.3066,0.1258,-0.9435,-0.1023,0.5037,-0.8578,0.4252,0.3307,-0.8425,-0.2207,0.6857,-0.6936,0.2042,0.7697,-0.6048,0.8179,0.0393,-0.5741,0.2052,0.8522,-0.4813,0.8145,-0.174,-0.5535,0.9706,-0.1263,-0.2052,0.6787,0.7261,-0.1105,0.5828,0.8112,-0.0473,0.3698,0.724,-0.5823,-0.1493,0.6206,-0.7698,0.6208,0.5736,-0.5344,0.8647,0.4716,0.1729,0.7866,0.5113,0.3461,0.719,0.6874,0.1027,0.8654,0.3383,-0.3697,0.7558,0.622,-0.2047,-0.2203,0.6451,-0.7316,0.3303,0.8651,-0.3775,0.4648,0.7721,-0.4333,0.1102,0.9919,-0.063,-0.3629,0.8679,-0.3393,-0.3622,0.9213,-0.1417,-0.3871,0.869,0.3081,-0.1806,0.8874,0.4241,0.2831,0.8259,0.4876,-0.0709,0.8036,0.5909,0.3715,0.7273,0.5771,0.488,0.551,0.6769,0.6482,0.7509,0.1265,0.3073,0.4413,0.8431,0.7949,0.606,0.0315,0.9035,0.1886,0.385,0.4734,0.1499,0.868,0.583
26,-0.1104,0.8045,0.464,0.0944,0.8808,0.593,0.2451,0.767,0.6321,-0.0316,0.7743,0.5352,0.3778,0.7556,0.4418,0.3629,0.8205,0.6769,0.307,0.669,0.3316,0.8291,0.4501,0.1572,0.888,0.4322,0.1102,0.6064,0.7875,-0.0711,0.7584,0.6478,-0.1972,0.9227,-0.3312,0.0157,0.8974,0.4408,-0.2206,0.835,-0.5041,-0.1338,0.8185,-0.5588,0.0079,0.9125,-0.409,0.2274,0.9646,0.1333,0.0393,0.7772,-0.628,0.5888,0.8008,0.1099,0.3697,0.6764,0.6371,0.4173,0.8581,0.2992,0.6237,0.5448,0.5606,0.3626,0.9223,0.134,0.5581,0.3616,0.7468,0.3868,0.8605,-0.3316,0.5123,0.6305,0.5832,0.3476,0.5925,-0.7268,0.6559,0.5136,-0.5532,0.3693,0.6915,-0.6208,0.3783,0.8906,-0.2522,0.1258,0.8966,-0.4247,0.0471,0.9507,-0.3064,0.2049,0.9696,0.134,0.7011,0.6853,-0.1969,0.3777,0.9048,-0.1967,0.6922,0.6764,0.2517,0.843,0.457,-0.2836,0.8231,0.533,-0.196,0.3614,0.9115,-0.1964,0.0787,0.9844,-0.1575,0.0078,0.9962,-0.0863,0.0079,0.9899,-0.1414,0.5753,0.7408,-0.3468,0.2522,0.9457,-0.2049,0.686,0.7255,-0.0552,0.1654,0.5829,0.7955,0.1182,0.9925,0.0315,0.079,0.9957,0.0474,0.3786,0.9228,-0.
2071,0.0628,0.9815,0.1806,0.2835,0.9136,0.2914,0.1578,0.9706,0.1815,0.637,0.7313,0.2438,0.5831,0.8037,0.1182,0.4019,0.914,0.0552,0.2355,0.9656,0.1099,0.1654,0.8898,-0.4252,0.463,0.8318,-0.3061,0.4863,0.7922,-0.3687,0.2515,0.8017,-0.5423,0.1491,0.7767,-0.612,0.5586,0.653,-0.5114,0.2356,0.6911,-0.6833,0.0473,0.7808,-0.623,0.7305,0.5891,-0.3456,0.6385,0.6464,-0.4178,0.3552,0.7814,-0.5131,0.653,0.5114,-0.5586,0.7321,0.5668,-0.3779,0.733,0.4965,-0.465,0.2291,0.79,-0.5688,0.3469,0.9304,-0.1183,0.5203,0.7804,-0.3468,-0.0236,0.9992,-0.0315,-0.0789,0.9938,0.0789,-0.1026,0.9946,0.0158,0.055,0.9982,-0.0236,-0.0315,0.9987,-0.0393,0.5665,0.8104,-0.1495,0.2745,0.957,-0.0941,0.0474,0.9944,-0.0947,0,0.9997,-0.0236,0.0079,0.9989,-0.0472,0.1182,0.985,-0.1261,0.8259,0.5191,-0.2202,0.8731,0.4641,-0.1494,0.71,0.6863,-0.1578,0.1737,0.9475,-0.2685,0.4655,0.8206,-0.3314,0.2052,0.9787,-0.0079,0.2673,0.959,-0.0943,0.2121,0.9741,0.0786,0.3786,0.9228,-0.071,0.7341,0.6789,0.0158,0.8585,0.5119,-0.0315,0.8051,0.5841,-0.1026,0.3475,0.932,0.1027,0.1816,0.9634,0.1974,0.8349,0.5198,-0.1811,0.1656,0.9857,0.0315,0.1179,0.9586,0.2593,0.0552,0.9548,0.292,0.1022,0.9513,0.2909,0.0079,0.9947,0.1026,-0.0315,0.9844,0.1732,-0.0551,0.9682,0.244,-0.1657,0.9467,0.2761,-0.0158,0.9378,0.3468,0.165,0.9114,0.3771,0.5288,0.7813,0.3315,0.1815,0.939,0.292,0.0474,0.9394,0.3395,0.1338,0.858,0.4959,-0.055,0.8962,0.4402,-0.0314,0.9409,0.3372,0.8075,0.588,0.047,0.2851,0.7762,0.5623,0.3313,0.7414,0.5836,0.3616,0.5581,0.7468,-0.0551,0.8576,0.5114,-0.0709,0.7014,0.7093,-0.0709,0.8906,0.4492,0.1021,0.9034,0.4164,0.0394,0.9456,0.3231,0.2994,0.8826,0.3625,0.0471,0.9899,0.1336,0.0393,0.7772,0.628,0.2599,0.961,-0.0945,-0.7643,0.5437,0.3467,-0.1658,0.979,-0.1184,0,0.9414,-0.3373,-0.1655,0.9854,0.0394,-0.7098,0.3943,-0.5836,-0.0788,0.9772,0.197,-0.0869,0.9957,0.0316,-0.165,0.9665,0.1964,-0.0628,0.9969,0.0471,-0.2522,0.9457,-0.2049,0.0632,0.996,0.0632,0.3063,0.9346,-0.1806,0.0471,0.9964,-0.0706,-0.1735,0.9777,-0.1183,-0.0314,0.9984,-0.0472,0.1413,0.9892,0.0393,0.2683,0.9155,0.2999,-0.3393,0.939,0.0552,-0.4796,0.857,0.1887,-0.6908,0.6751,0.259,-0.5356,0.7955,0.2835,-0.5649,0.8238,0.0471,-0.8033,0.5592,0.2048,-0.8425,0.4803,0.2441,-0.7717,0.5906,0.2362,-0.6532,0.5194,0.5509,-0.7872,0.5983,0.1496,-0.4176,0.6619,0.6225,-0.4326,0.4405,0.7866,-0.3794,0.7587,0.5295,0.1336,0.4557,0.88,0.4819,0.3792,0.79,0.5115,0.5193,0.6846,0.2364,0.7327,0.6382,-0.2603,0.9069,0.3312,-0.7414,0.6389,0.2051,0.4628,0.7138,0.5256,0.4108,0.8058,0.4266,-0.652,0.7463,0.1336,0.0316,0.9077,0.4183,0.3858,0.8267,0.4094,0.4249,0.8262,0.3698,0.4879,0.7869,0.3777,0.4722,0.8106,0.3463,0.6879,0.7196,0.0949,0.6465,0.7017,0.2996,0.4712,0.8011,0.3691,0.4498,0.7891,0.4182,0.8525,0.5052,-0.1342,0.8246,0.5655,-0.0157,0.9289,0.37,-0.0157,0.8019,0.5975,0,0.632,0.711,-0.3081,0.6314,0.7735,-0.0552,0.5203,0.7804,-0.3468,0.6219,0.677,-0.3936,0.3548,0.8514,-0.3863,0.542,0.7856,0.2985,0.6778,0.6935,-0.2443,0.5606,0.6237,-0.5448,0.4332,0.8901,-0.1418,0.268,0.7726,-0.5755,-0.0474,0.7982,-0.6006,-0.0395,0.9867,-0.1579,-0.0866,0.9527,0.2913,-0.41,0.8436,-0.3469,-0.1649,0.8243,-0.5417,-0.6141,0.7479,-0.2519,-0.3523,0.7751,-0.5245,-0.2757,0.7326,-0.6223,-0.4255,0.7406,-0.52]},{"name":"aUV0","stride":2,"data":[0.03497,0.58081,0.01622,0.5835,0.04935,0.59546,0.02283,0.62744,0.00779,0.63525,0.01965,0.64648,0.0027,0.65283,0.03375,0.64429,0.01222,0.67432,0.00423,0.6731,0.01591,0.69507,0.00518,0.70264,0.02728,0.71436,0.0079,0.729,0.02545,0.6792,0.04584,0.62427,0.06427,0.60156,0.02829,0.69531,0.05267,0.70654,0.04364,0.68994,0.04318,0.65332,0.0361,0.67871,0.05411,0.66992,0.06445,0.63696,0.08606,0.61792,0.06134,0.65259,0.10077,0.64111,0.1214,0.6189,0.08478,0.65308,0.07019,0.66284,0.12952,0.63379,0.13782,0.62085,0.1142,0.65234,0.15234,0.63916,0.17297,0.6167,0.06573,0.68896,0.10193,0.66675,0.1239,0.67896,0.13196,0.65747,0.17822,0.64478,0.19531,0.63086,0.15796,0.65845,0.08423,0.68628,0.20032,0.65991,0.22522,0.63892,0.10059,0.68286,0.17017,0.67651,0.07593,0.70435,0.0957,0.70581,0.06281,0.70386,0.22339,0.65796,0.24109,0.65039,0.25781,0.64795,0.22534,0.67334,0.1936,0.68188,0.23279,0.66431,0.11121,0.70435,0.12317,0.69507,0.06378,0.71338,0.07275,0.71509,0.05676,0.71997,0.0755,0.71924,0.08649,0.72021,0.04242,0.7251,0.08252,0.73242,0.09979,0.73169,0.09766,0.71802,0.10986,0.71826,0.05704,0.7478,0.04395,0.75354,0.12079,0.70752,0.03111,0.74756,0.01941,0.74829,0.00741,0.76062,0.019,0.76953,0.03114,0.77014,0.02274,0.79822,0.00329,0.79285,0.00791,0.80457,0.00642,0.81812,0.03323,0.7937,0.03041,0.81006,0.01961,0.82007,0.03702,0.82434,0.00812,0.83557,0.01595,0.84363,0.05096,0.80957,0.0455,0.77185,0.0463,0.78687,0.065,0.76782,0.05078,0.79688,0.07098,0.77979,0.08386,0.78748,0.08276,0.74414,0.0788,0.80603,0.12109,0.79504,0.08228,0.76013,0.09613,0.74292,0.0946,0.75427,0.0976,0.76587,0.10822,0.74951,0.10211,0.77893,0.10883,0.76794,0.11633,0.77869,0.11902,0.75366,0.12115,0.73999,0.13013,0.75793,0.12805,0.77991,0.1272,0.72534,0.12213,0.71826,0.12866,0.70728,0.13538,0.71362,0.13647,0.698,0.14819,0.71582,0.14148,0.7312,0.15991,0.72925,0.13965,0.6814,0.1554,0.69727,0.13269,0.74414,0.16504,0.71582,0.17444,0.70288,0.14429,0.74194,0.1427,0.7533,0.14111,0.76685,0.13928,0.7865,0.17822,0.71875,0.18555,0.70703,0.17322,0.72803,0.18481,0.73364,0.172,0.74219,0.15295,0.76831,0.14832,0.78735,0.14697,0.80029,0.15417,0.75439,0.15466,0.74292,0.16162,0.74341,0.16406,0.76233,0.15918,0.77808,0.11926,0.80554,0.15503,0.79126,0.17456,0.75757,0.17334,0.77283,0.18347,0.74683,0.19812,0.75427,0.18384,0.76099,0.16821,0.78259,0.18738,0.77649,0.1814,0.78979,0.16821,0.79883,0.16003,0.80701,0.14319,0.81299,0.19043,0.79248,0.1842,0.80688,0.198,0.77942,0.17322,0.80762,0.15698,0.81787,0.17249,0.82007,0.18213,0.8219,0.19226,0.81543,0.14124,0.82544,0.20483,0.79541,0.22766,0.79895,0.21472,0.80994,0.16919,0.83044,0.18079,0.8363,0.19141,0.83728,0.1554,0.82971,0.16711,0.84155,0.20239,0.83057,0.15088,0.83948,0.18066,0.85352,0.16125,0.85022,0.14502,0.85168,0.13025,0.83289,0.11743,0.81909,0.08844,0.81909,0.07202,0.82056,0.05984,0.82312,0.07635,0.83472,0.09943,0.82593,0.09686,0.8335,0.11163,0.83276,0.1181,0.849,0.08044,0.84375,0.13452,0.84521,0.12915,0.85791,0.06219,0.83679,0.05029,0.84021,0.05112,0.85559,0.06476,0.84644,0.04242,0.83984,0.06964,0.85632,0.06174,0.86853,0.09296,0.85901,0.03333,0.83679,0.03796,0.85229,0.02463,0.85535,0.01242,0.85669,0.01486,0.8797,0.11169,0.86438,0.04495,0.86902,0.03195,0.86938,0.0312,0.88519,0.09473,0.87036,0.01897,0.9104,0.01151,0.90564,0.00716,0.92474,0.04385,0.88287,0.02133,0.93628,0.01367,0.95975,0.03571,0.89825,0.02641,0.9599,0.04102,0.98322,0.03036,0.92035,0.04559,0.9
26622,0.05478,0.98351,0.06769,0.97726,0.06763,0.99404,0.10388,0.99404,0.0509,0.95688,0.03488,0.94736,0.03265,0.93414,0.04727,0.94571,0.04437,0.92902,0.04004,0.90948,0.06009,0.93506,0.10022,0.98328,0.12299,0.99416,0.06366,0.95636,0.04663,0.89459,0.05573,0.92279,0.05176,0.90808,0.05832,0.88184,0.06982,0.92694,0.06042,0.89764,0.07501,0.88098,0.07196,0.90845,0.07257,0.94382,0.08838,0.88324,0.08221,0.93219,0.08539,0.90973,0.08215,0.95624,0.09186,0.94711,0.10419,0.94427,0.08032,0.96954,0.10638,0.95871,0.12299,0.9577,0.0957,0.96962,0.1239,0.97054,0.13818,0.97075,0.14319,0.9979,0.15295,0.96957,0.16931,0.99329,0.14026,0.95886,0.14392,0.95013,0.16931,0.97029,0.18347,0.98419,0.15527,0.95355,0.13062,0.94922,0.1228,0.94284,0.13623,0.94125,0.11566,0.92975,0.13367,0.93494,0.14624,0.94104,0.13086,0.92517,0.15735,0.94479,0.15857,0.93433,0.14758,0.93121,0.14221,0.92145,0.12939,0.91443,0.12073,0.91125,0.16907,0.95023,0.15906,0.92505,0.17334,0.91736,0.15344,0.91711,0.17053,0.93475,0.14038,0.91211,0.11621,0.90259,0.12891,0.90552,0.18323,0.93475,0.12286,0.89709,0.10095,0.8819,0.11273,0.88837,0.10791,0.875,0.12201,0.8822,0.1322,0.89313,0.12866,0.87555,0.13806,0.88214,0.15332,0.89368,0.13916,0.9035,0.1394,0.86938,0.15002,0.90643,0.16418,0.90601,0.15356,0.87036,0.16882,0.89203,0.15991,0.86243,0.17517,0.9035,0.17065,0.88123,0.17114,0.86243,0.17688,0.89282,0.17517,0.87646,0.18372,0.87231,0.18494,0.90155,0.18127,0.88379,0.18958,0.89075,0.1908,0.8584,0.19519,0.88043,0.20349,0.85486,0.22681,0.85107,0.20068,0.87231,0.20728,0.88806,0.21716,0.87689,0.21545,0.90015,0.19995,0.89972,0.19348,0.90967,0.20569,0.9115,0.19458,0.92365,0.21448,0.91956,0.19495,0.93695,0.21094,0.92975,0.19128,0.9472,0.20435,0.95212,0.19177,0.95859,0.18262,0.97301,0.19836,0.97308,0.19556,0.98285,0.21973,0.98621,0.2085,0.94083,0.21094,0.97075,0.22363,0.93628,0.21997,0.95071,0.2146,0.95966,0.22668,0.96558,0.24695,0.96901,0.2627,0.98777,0.26855,0.96463,0.23303,0.95285,0.24915,0.95584,0.23889,0.94189,0.22412,0.92535,0.26538,0.94519,0.27637,0.95132,0.27905,0.92566,0.2915,0.93906,0.23083,0.93262,0.23572,0.92505,0.22107,0.91272,0.24536,0.93188,0.25659,0.93573,0.22815,0.91931,0.22949,0.90594,0.26294,0.92621,0.25195,0.92126,0.24292,0.90997,0.22656,0.88788,0.26489,0.91748,0.24915,0.88867,0.23523,0.86584,0.28613,0.91003,0.27368,0.90497,0.2666,0.87463,0.27905,0.89026,0.29224,0.87695,0.29858,0.89789,0.25366,0.85168,0.29395,0.91864,0.30298,0.90778,0.30396,0.922,0.30615,0.935,0.33105,0.91888,0.32568,0.90662,0.37109,0.87048,0.32812,0.89099,0.3606,0.86243,0.38916,0.83313,0.39136,0.85706,0.39722,0.84375,0.41797,0.83203,0.31909,0.88269,0.32471,0.86719,0.35132,0.85608,0.39355,0.81592,0.37915,0.80969,0.42676,0.81421,0.39502,0.80237,0.42871,0.79053,0.37305,0.83142,0.35522,0.8446,0.33325,
20.84277,0.36182,0.8269,0.40845,0.78174,0.42554,0.74805,0.31201,0.85828,0.38989,0.78931,0.40137,0.75659,0.40967,0.73486,0.39282,0.71533,0.38843,0.7677,0.35986,0.73901,0.37207,0.72534,0.37012,0.70312,0.35522,0.7041,0.36792,0.76782,0.3645,0.79224,0.3374,0.72144,0.3418,0.69141,0.34814,0.74487,0.31909,0.70239,0.30664,0.68042,0.36328,0.80591,0.35791,0.77551,0.32642,0.72339,0.33545,0.74805,0.30396,0.69824,0.30298,0.70776,0.28198,0.69531,0.27148,0.66968,0.2854,0.65869,0.26465,0.66943,0.25562,0.6814,0.25684,0.65845,0.25488,0.67163,0.24329,0.65405,0.24304,0.6748,0.24719,0.66724,0.24316,0.65894,0.23889,0.66479,0.24011,0.68652,0.23438,0.69385,0.25537,0.69922,0.20178,0.70093,0.18823,0.71094,0.19043,0.72241,0.19922,0.71143,0.21399,0.70801,0.23975,0.70825,0.21252,0.7229,0.19775,0.72876,0.19556,0.73975,0.20178,0.74219,0.21619,0.73633,0.20398,0.75806,0.2644,0.71094,0.24963,0.71655,0.26221,0.72607,0.27466,0.73267,0.2345,0.771,0.28027,0.71582,0.24841,0.78345,0.28296,0.70703,0.29297,0.71826,0.2876,0.73853,0.30396,0.72339,0.31836,0.73218,0.31445,0.74365,0.29932,0.74097,0.27734,0.76575,0.26782,0.76392,0.33081,0.77197,0.29785,0.75488,0.25708,0.79529,0.2749,0.78357,0.28296,0.77551,0.29517,0.77942,0.32373,0.79431,0.3396,0.79785,0.34644,0.8103,0.32739,0.81348,0.31152,0.81494,0.28027,0.80383,0.35645,0.81897,0.33936,0.823,0.32642,0.83264,0.31641,0.83057,0.30298,0.85022,0.30322,0.82874,0.28198,0.86804,0.29395,0.84363,0.27026,0.86304,0.29395,0.81738,0.28809,0.83081,0.28052,0.84277,0.27783,0.82068,0.26807,0.83044,0.26001,0.81909,0.26294,0.80872,0.26807,0.79639,0.25342,0.81079,0.24207,0.82837,0.23181,0.81128,0.22498,0.83582,0.2312,0.82031,0.21594,0.82214]},{"name":"aUV1","stride":2,"data":[0.08258,0.0083,0.03928,0.01465,0.11578,0.04297,0.05453,0.11865,0.01979,0.13672,0.04721,0.16309,0.00806,0.17822,0.07977,0.15771,0.03003,0.22852,0.01157,0.22607,0.03857,0.27734,0.01377,0.29541,0.06476,0.32275,0.02007,0.35742,0.06058,0.24023,0.10767,0.11133,0.15027,0.05762,0.06708,0.27832,0.12341,0.30469,0.1026,0.26562,0.10156,0.17969,0.08514,0.23926,0.12671,0.21826,0.15063,0.14062,0.20056,0.0957,0.14343,0.17773,0.2345,0.15039,0.28198,0.09814,0.19751,0.17871,0.16382,0.20166,0.30078,0.1333,0.31982,0.10303,0.26538,0.17725,0.35352,0.146,0.40112,0.09277,0.15356,0.26318,0.23718,0.21094,0.28784,0.23975,0.3064,0.18896,0.41333,0.15918,0.45264,0.12646,0.36646,0.19092,0.19629,0.25684,0.46436,0.19482,0.52148,0.14502,0.23401,0.24902,0.39453,0.23438,0.17712,0.2998,0.22278,0.30322,0.14673,0.29834,0.51758,0.18994,0.55811,0.17236,0.59717,0.16699,0.52197,0.22607,0.44873,0.24658,0.53906,0.20508,0.25854,0.29932,0.28613,0.27734,0.14905,0.3208,0.1698,0.32471,0.13281,0.33594,0.17615,0.33447,0.20142,0.33691,0.09973,0.34863,0.19238,0.36572,0.23218,0.36377,0.22729,0.33203,0.25537,0.33252,0.13354,0.40186,0.10327,0.41553,0.28052,0.30713,0.07367,0.40137,0.0466,0.40283,0.01891,0.43213,0.04568,0.45312,0.07373,0.45459,0.05432,0.52051,0.00941,0.50781,0.0201,0.53564,0.01662,0.56763,0.07855,0.51001,0.07202,0.54834,0.04709,0.57202,0.08728,0.58228,0.02057,0.60864,0.03864,0.62744,0.11945,0.54736,0.10687,0.4585,0.1087,0.49414,0.15186,0.44922,0.11908,0.51733,0.16565,0.47754,0.19543,0.49561,0.19287,0.39307,0.18372,0.53906,0.28125,0.51294,0.19177,0.43115,0.22375,0.39062,0.22021,0.41699,0.22717,0.44482,0.25171,0.40576,0.23755,0.4751,0.25293,0.44922,0.27026,0.47461,0.27661,0.41602,0.28149,0.3833,0.30225,0.42578,0.29736,0.47754,0.29541,0.34912,0.28369,0.33252,0.29883,0.30664,0.31421,0.32178,0.31689,0.28467,0.34399,0.32617,0.32861,0.36279,0.37109,0.35791,0.32422,0.24512,0.3606,0.28271,0.30811,0.39307,0.38281,0.32617,0.40454,0.2959,0.33496,0.38818,0.3313,0.41504,0.32764,0.44678,0.32349,0.49316,0.41333,0.3335,0.43018,0.30566,0.40186,0.35547,0.42847,0.36865,0.39893,0.38867,0.35498,0.4502,0.34424,0.49512,0.34106,0.52563,0.35791,0.41748,0.35889,0.39014,0.375,0.3916,0.38062,0.43652,0.36914,0.47314,0.2771,0.53784,0.35962,0.50415,0.40479,0.42529,0.40186,0.46094,0.42554,0.39941,0.45923,0.41699,0.42627,0.43311,0.39038,0.48389,0.43433,0.46973,0.42065,0.50098,0.39014,0.52222,0.37134,0.54126,0.33252,0.55542,0.44141,0.50708,0.427,0.54102,0.45898,0.47656,0.40186,0.54272,0.36426,0.56689,0.3999,0.57202,0.42212,0.57642,0.44556,0.56128,0.32788,0.58472,0.47461,0.51392,0.52734,0.52246,0.49756,0.54834,0.39233,0.59668,0.41895,0.61035,0.4436,0.61255,0.3606,0.59497,0.3877,0.6228,0.46899,0.59692,0.3501,0.61768,0.41895,0.65088,0.37402,0.64331,0.33667,0.64648,0.30249,0.60229,0.27271,0.56982,0.20605,0.56982,0.16809,0.57324,0.13989,0.5791,0.1781,0.60669,0.23132,0.58594,0.22546,0.60376,0.25952,0.60205,0.27441,0.64014,0.1875,0.62793,0.3125,0.63135,0.30005,0.66113,0.14539,0.61157,0.11798,0.61963,0.11981,0.65576,0.15137,0.63428,0.09979,0.61865,0.1626,0.65747,0.14429,0.68628,0.21643,0.66382,0.0788,0.61157,0.08948,0.64795,0.05869,0.65503,0.03049,0.65845,0.0361,0.71265,0.25952,0.67651,0.10559,0.6875,0.07556,0.68823,0.07385,0.72559,0.22058,0.69067,0.04559,0.78479,0.02838,0.77356,0.01836,0.8186,0.10303,0.71997,0.05106,0.84583,0.03339,0.90112,0.08429,0.75623,0.06274,0.90149,0.0965,0.95642,0.0719,0.80835,0.10706,0.91638,0.1283,0.95706,0.15808,0.94238,0.15796,0.98189,0.24158,0.98189,0.11938,0.89435,0.08234,0.87195,0.07721,0.84082,0.11096,0.86804,0.10431,0.82874,0.09424,0.78271,0.1405,0.84302,0.23315,0.95654,0.28564,0.98219,0.1488,0.89313,0.1095,0.7478,0.13037,0.81409,0.12134,0.77942,0.13647,0.71753,0.16296,0.82385,0.14136,0.75488,0.17493,0.71558,0.16797,0.78027,0.16943,0.86365,0.20581,0.72095,0.19153,0.83618,0.19897,0.78333,0.19153,0.89282,0.21399,0.87134,0.24231,0.86475,0.18726,0.92419,0.24744,0.89868,0.28564,0.8963,0.22278,0.92438,0.28784,0.92657,0.3208,0.92706,0.33228,0.99098,0.35498,0.92426,0.39282,0.98015,0.32568,0.89899,0.33423,0.87848,0.39282,0.92596,0.42529,0.95868,0.36035,0.88647,0.30347,0.87634,0.28516,0.86133,0.31641,0.85767,0.2688,0.83057,0.3103,0.84277,0.33936,0.85706,0.30396,0.81958,0.36499,0.86584,0.36792,0.84119,0.34253,0.83398,0.33032,0.81091,0.30054,0.79431,0.28052,0.78687,0.39233,0.87866,0.36914,0.81946,0.4021,0.80127,0.3562,0.80066,0.39575,0.84216,0.32568,0.78894,0.27002,0.7666,0.29956,0.77344,0.4248,0.84229,0.2854,0.75366,0.23486,0.71777,0.26196,0.73315,0.25073,0.70142,0.28345,0.71851,0.30688,0.74438,0.29883,0.70288,0.32056,0.71826,0.35571,0.74561,0.32324,0.76868,0.32373,0.68823,0.34839,0.77551,0.38086,0.77454,0.35645,0.69067,0.3916,0.7417,0.37109,0.67188,0.40625,0.76855,0.39575,0.71631,0.39673,0.67163,0.41016,0.74365,0.40625,0.70508,0.42578,0.69531,0.42871,0.76404,0.42017,0.72217,0.43945,0.73877,0.44238,0.66235,0.45239,0.71436,0.47168,0.65405,0.52539,0.64502,0.46533,0.69531,0.48022,0.73218,0.50293,0.70605,0.49902,0.76062,0.46338,0.75964,0.44849,0.7832,0.47681,0.78748,0.45093,0.81604,0.49707,0.8064,0.4519,0.84741,0.48877,0.83044,0.4436,0.87158,0.47363,0.88318,0.44458,0.89838,0.42334,0.93237,0.45996,0.93256,0.45337,0.95554,0.50928,0.96344,0.48315,0.85657,0.48901,0.92706,0.51807,0.84583,0.50977,0.87982,0.49731,0.90088,0.5249,0.91479,0.57178,0.92291,0.6084,0.96713,0.62207,0.9126,0.53955,0.88489,0.57666,0.89191,0.55322,0.85913,0.51904,0.82007,0.61475,0.86682,0.63965,0.88129,0.646,0.8208,0.6748,0.85242,0.53467,0.83716,
20.5459,0.81946,0.51221,0.79028,0.56836,0.83545,0.59424,0.84448,0.52832,0.80579,0.53174,0.77429,0.60889,0.82214,0.5835,0.81042,0.5625,0.78381,0.5249,0.73193,0.61328,0.80151,0.57666,0.73364,0.54492,0.67993,0.6626,0.78406,0.6333,0.77209,0.61719,0.70068,0.646,0.73755,0.67627,0.70605,0.69141,0.75537,0.58789,0.64648,0.68066,0.8042,0.70117,0.77869,0.70361,0.81226,0.7085,0.8429,0.76611,0.80481,0.75391,0.776,0.8584,0.69092,0.75928,0.73926,0.83447,0.67188,0.90039,0.60278,0.90576,0.65942,0.91846,0.62793,0.9668,0.60034,0.73877,0.71973,0.75146,0.68311,0.81299,0.65674,0.91016,0.5625,0.87744,0.54761,0.98682,0.55835,0.91406,0.53027,0.9917,0.50269,0.86279,0.59888,0.82178,0.62988,0.771,0.62549,0.83691,0.58813,0.94434,0.48193,0.98389,0.40234,0.72217,0.66211,0.90186,0.5,0.92871,0.42285,0.94727,0.37158,0.90869,0.3252,0.89844,0.44922,0.83301,0.38135,0.86084,0.34912,0.85645,0.29688,0.82227,0.29932,0.85156,0.44922,0.84326,0.50659,0.78076,0.33936,0.79102,0.26904,0.80566,0.39453,0.73877,0.29443,0.70947,0.24316,0.84033,0.53857,0.82812,0.46729,0.75537,0.34424,0.77637,0.40234,0.70361,0.28516,0.70117,0.30762,0.65283,0.27832,0.62891,0.21826,0.66113,0.19189,0.61279,0.21729,0.5918,0.24561,0.59521,0.19141,0.59033,0.22266,0.56348,0.18066,0.56299,0.22998,0.57227,0.21191,0.56299,0.19287,0.55322,0.20654,0.55615,0.25732,0.54248,0.27441,0.5918,0.2876,0.46777,0.2915,0.43628,0.31494,0.44141,0.3418,0.46167,0.31592,0.49585,0.30811,0.55518,0.30859,0.49243,0.34326,0.45825,0.35693,0.45312,0.38281,0.46753,0.38867,0.50098,0.375,0.47266,0.42627,0.6123,0.31494,0.57812,0.32861,0.60693,0.35059,0.63574,0.36621,0.54297,0.45654,0.64893,0.32617,0.5752,0.48633,0.65479,0.30615,0.67822,0.33203,0.66602,0.38037,0.70361,0.34424,0.73682,0.36523,0.72754,0.39209,0.69287,0.38525,0.6416,0.44434,0.62061,0.43994,0.76562,0.45898,0.68945,0.41895,0.59521,0.51367,0.63672,0.48633,0.65479,0.46729,0.68311,0.47656,0.74951,0.51123,0.78564,0.51953,0.80176,0.54932,0.75781,0.55664,0.72119,0.56006,0.64893,0.53369,0.82471,0.56958,0.78516,0.5791,0.75537,0.60156,0.73242,0.59692,0.70117,0.64307,0.70166,0.59253,0.65283,0.68506,0.68066,0.62744,0.62549,0.6731,0.68066,0.56592,0.66699,0.59741,0.64941,0.62573,0.64355,0.57373,0.62109,0.59644,0.60205,0.56982,0.60889,0.54541,0.62061,0.51636,0.58691,0.55005,0.56055,0.59155,0.53711,0.55151,0.521,0.60938,0.53564,0.57275,0.50049,0.57715]}]},{"name":"SM_RockGroup01_C_LOD0","instanceId":"id_280080","indices":[0,2,1,2,0,3,4,3,0,5,3,4,6,5,4,2,3,7,5,7,3,7,8,2,8,7,9,5,9,7,10,8,9,11,8,10,10,12,11,13,12,10,12,13,14,13,15,14,13,16,15,15,16,17,18,17,16,17,18,19,20,16,13,10,21,13,20,13,21,20,22,16,18,16,22,22,20,23,23,20,21,18,22,24,24,22,23,21,10,25,23,21,26,26,21,25,25,10,27,10,9,27,9,28,27,9,5,28,27,29,25,29,27,28,26,25,30,29,30,25,23,31,24,26,32,23,31,23,32,33,18,24,31,33,24,34,26,30,32,26,34,35,34,30,35,32,34,30,29,36,35,30,36,28,37,29,36,29,37,28,38,37,38,28,5,36,37,39,38,39,37,5,40,38,38,40,39,5,6,40,39,41,36,36,41,35,40,41,39,42,35,41,32,35,43,42,43,35,6,44,40,44,6,45,41,40,46,40,44,46,47,41,46,42,41,47,48,46,44,47,46,48,44,45,49,48,44,49,50,47,48,50,48,49,43,51,32,32,51,31,52,31,51,33,31,52,51,43,53,51,53,52,47,54,42,50,54,47,45,55,49,55,45,56,56,57,55,57,56,58,49,55,59,55,57,59,49,60,50,60,49,59,57,61,59,61,60,59,58,62,57,62,61,57,60,63,50,54,50,63,64,60,61,
263,60,64,63,65,54,63,64,65,62,58,66,66,58,67,66,67,68,66,68,69,70,69,68,62,71,61,71,64,61,66,72,62,72,66,69,71,62,73,73,62,72,74,73,72,73,75,71,75,64,71,75,73,74,64,75,76,65,64,76,75,74,76,77,72,69,74,72,77,70,78,69,78,70,79,80,79,70,79,80,81,82,81,80,83,81,82,83,84,81,79,81,84,84,83,85,86,78,79,84,86,79,86,87,78,78,87,88,88,69,78,89,69,88,89,77,69,87,89,88,85,90,84,85,91,90,84,92,86,92,84,90,89,93,77,87,93,89,90,91,94,91,95,94,92,96,86,86,96,87,97,94,95,98,97,95,98,99,97,99,98,100,100,101,99,102,101,100,101,102,103,101,103,104,105,104,103,104,105,106,107,104,106,107,106,108,104,109,101,104,107,109,110,99,101,109,110,101,108,111,107,111,108,112,97,99,113,110,114,99,99,114,113,113,115,97,115,94,97,113,114,116,116,115,113,110,109,117,118,109,107,109,118,117,119,114,110,117,119,110,120,114,119,114,120,116,117,120,119,121,120,117,107,122,118,122,107,111,123,117,118,123,121,117,123,118,122,124,123,122,122,111,125,125,124,122,116,120,126,126,120,121,123,127,121,123,124,127,125,111,128,128,111,112,112,129,128,130,129,112,129,130,131,132,116,126,126,121,133,133,132,126,134,116,132,132,135,134,132,136,135,136,132,133,116,134,115,134,137,115,135,137,
2134,138,115,137,94,115,138,139,137,135,138,137,139,140,94,138,140,90,94,90,140,141,92,90,141,142,92,141,142,96,92,142,143,96,96,143,87,144,142,141,142,144,143,141,140,145,144,141,145,140,138,146,145,140,146,139,147,138,146,138,147,148,147,139,146,147,148,148,139,135,149,87,143,144,149,143,144,145,150,149,144,150,151,145,146,151,146,148,145,151,150,149,152,87,93,87,152,153,149,150,153,150,151,149,153,152,154,151,148,151,154,153,154,148,135,152,153,155,153,154,155,156,93,152,156,152,155,93,156,157,157,77,93,157,158,77,74,77,158,154,135,159,155,154,160,160,154,159,161,156,155,160,161,155,157,156,162,162,156,161,163,158,157,163,157,162,161,164,162,161,160,164,164,163,162,160,159,165,160,165,166,164,160,166,165,159,167,135,167,159,135,136,167,168,167,136,167,168,165,168,136,133,158,163,169,74,158,169,168,133,170,170,133,121,74,169,171,76,74,171,170,121,172,172,121,127,127,173,172,173,170,172,173,127,124,174,169,163,175,171,169,175,169,174,163,176,174,163,164,176,164,177,176,177,164,166,166,178,177,178,166,165,174,176,179,180,176,177,176,180,179,181,175,174,174,179,181,178,182,177,177,182,180,179,183,181,184,179,180,183,179,184,185,181,183,185,175,181,183,184,185,180,186,184,182,186,180,184,187,185,187,184,186,186,188,187,189,185,187,189,187,188,190,175,185,185,189,190,188,191,189,191,190,189,191,192,190,190,193,175,190,192,193,171,175,193,188,194,191,194,192,191,182,195,186,196,188,186,186,195,196,197,195,182,197,182,178,198,197,178,178,165,198,195,197,199,199,197,198,200,196,195,200,195,199,196,200,201,196,201,202,196,202,188,188,202,203,194,188,203,204,198,165,204,199,198,205,202,201,203,202,205,206,200,199,207,199,204,207,206,199,201,200,208,208,200,206,194,203,209,203,205,210,209,203,210,194,209,211,194,211,192,212,205,201,210,205,212,210,213,209,209,213,211,212,214,210,213,210,214,201,215,212,214,212,215,213,216,211,214,217,213,217,216,213,211,218,192,211,216,218,215,219,214,219,217,214,219,220,217,216,217,221,220,221,217,222,218,216,216,221,222,215,201,223,219,215,224,223,224,215,225,220,219,224,225,219,226,220,225,226,225,224,227,223,201,228,223,227,208,227,201,224,223,229,229,223,228,229,230,224,226,224,230,231,226,230,232,230,229,228,232,229,231,230,232,228,233,232,231,232,233,233,228,234,235,227,208,228,227,236,227,235,236,235,208,237,208,206,237,238,234,228,228,236,238,239,235,237,239,236,235,240,238,236,240,234,238,241,236,239,240,236,241,206,242,237,237,243,239,237,242,243,242,206,244,206,207,244,240,245,234,240,241,246,245,240,246,239,243,247,241,239,248,248,239,247,249,243,242,243,250,247,243,249,250,249,242,251,242,244,251,248,247,252,252,247,250,249,253,250,249,251,253,254,241,248,241,255,246,255,241,254,252,256,248,256,254,248,250,257,252,253,258,250,257,250,258,259,256,252,257,259,252,246,255,260,254,261,255,260,255,261,262,246,260,245,246,262,262,263,245,263,234,245,258,264,257,259,257,265,265,257,264,256,259,266,265,266,259,267,254,256,266,267,256,268,264,258,253,268,258,267,269,254,254,269,261,265,264,270,266,265,271,270,271,265,270,272,271,273,272,270,274,270,264,264,268,274,273,270,274,275,266,271,271,272,275,276,267,266,266,275,276,277,269,267,276,277,267,261,269,278,269,277,278,276,279,277,278,277,279,280,261,278,260,261,280,260,280,281,260,281,262,262,281,282,282,263,262,283,281,280,281,283,282,275,284,276,276,285,279,276,284,285,275,286,284,286,275,272,287,280,278,280,288,283,288,280,287,283,288,289,283,290,282,290,283,289,278,291,287,278,279,291,288,287,292,288,292,289,291,292,287,290,293,282,293,263,282,289,294,290,293,290,294,294,289,295,289,296,295,289,292,297,297,296,289,298,297,292,299,292,291,298,292,299,300,299,291,298,299,300,279,300,291,300,279,301,279,285,301,302,296,297,297,298,302,303,300,301,303,298,300,304,301,285,301,305,303,304,305,301,285,306,304,285,284,306,307,306,284,307,284,286,306,307,308,308,307,309,309,307,286,272,309,286,309,272,310,310,308,309,311,310,272,273,311,272,312,310,311,313,311,273,310,312,314,314,308,310,312,315,314,315,316,314,316,315,317,317,318,316,317,319,318,319,320,318,321,318,320,316,318,322,322,318,321,321,323,322,314,316,324,324,316,322,308,314,325,314,324,325,324,322,326,323,326,322,324,326,327,327,325,324,327,326,323,328,325,327,325,328,308,327,329,328,329,308,328,329,327,323,321,320,330,320,331,330,308,329,332,308,332,306,332,333,306,306,333,304,332,329,334,333,332,334,333,335,304,304,335,305,329,336,334,329,323,336,333,334,337,333,337,335,334,336,337,335,338,305,338,335,337,336,323,339,337,336,339,330,331,340,331,341,340,340,341,342,340,342,343,343,344,340,344,343,345,340,346,330,346,340,344,347,344,345,346,344,347,348,330,346,348,346,347,348,321,330,323,321,349,323,349,339,321,350,349,339,349,350,348,350,321,347,345,351,351,345,352,350,353,339,337,339,353,337,353,338,347,354,348,354,347,351,348,355,350,350,355,353,354,355,348,352,356,351,357,356,352,358,351,356,354,351,358,356,357,359,356,359,358,357,360,359,360,357,361,360,361,362,362,361,363,362,363,364,365,364,363,365,366,364,366,367,364,366,365,368,368,369,366,369,370,366,370,369,371,372,370,371,366,373,367,366,370,373,373,374,367,360,362,375,376,360,375,359,360,376,376,377,359,358,359,377,378,358,377,354,358,378,377,376,379,378,377,379,380,354,378,380,378,379,355,354,380,376,375,381,381,379,376,362,382,375,382,381,375,383,355,380,353,355,383,382,362,384,364,384,362,364,385,384,367,385,364,386,353,383,338,353,386,387,338,386,338,387,305,303,305,387,386,383,388,387,386,388,387,389,303,389,387,388,389,298,303,298,389,390,388,390,389,302,298,390,388,383,391,391,383,380,392,388,391,388,392,390,391,380,393,393,392,391,393,380,379,393,379,394,392,393,394,379,381,394,302,390,395,296,302,395,395,396,296,396,395,397,390,397,395,397,390,392,398,397,392,394,398,392,397,398,396,399,398,394,399,396,398,394,400,399,400,394,381,399,400,39
26,401,400,381,381,382,401,400,401,402,403,401,382,402,401,403,404,400,402,404,396,400,382,405,403,384,405,382,384,385,405,402,403,406,406,404,402,406,403,407,405,407,403,404,406,408,407,408,406,396,404,409,404,408,409,396,409,410,410,296,396,410,411,296,409,411,410,411,295,296,411,409,412,409,408,412,295,411,412,413,408,407,412,408,413,414,405,385,405,415,407,414,415,405,416,407,415,407,416,413,385,417,414,385,367,417,414,418,415,418,416,415,417,419,414,417,367,419,418,414,419,419,367,420,420,418,419,420,367,374,420,421,418,420,374,421,422,416,418,418,421,422,416,423,413,423,416,422,424,422,421,423,422,424,425,413,423,425,412,413,426,423,424,426,425,423,427,425,426,428,412,425,428,425,427,428,295,412,295,428,429,427,429,428,426,424,430,427,426,430,424,431,430,431,427,430,432,424,421,431,424,432,433,295,429,433,294,295,433,434,294,294,434,293,433,429,435,435,434,433,429,427,436,429,436,435,437,435,436,438,435,437,438,434,435,439,436,427,427,431,439,437,436,439,439,431,440,431,432,440,439,440,437,441,440,432,440,441,437,442,293,434,438,442,434,443,438,437,443,442,438,293,442,444,263,293,444,443,445,442,444,442,445,263,444,446,234,263,446,445,447,444,447,446,444,448,234,446,448,233,234,233,448,449,233,449,231,448,446,450,449,448,450,451,446,447,450,446,451,449,450,452,452,231,449,231,452,453,454,452,450,454,450,451,452,454,453,454,451,455,455,453,454,451,447,456,451,456,455,457,447,445,447,457,456,445,458,457,445,443,458,459,456,457,459,457,458,460,458,443,460,459,458,461,456,459,456,461,455,462,461,459,459,460,462,460,443,463,437,463,443,464,455,461,464,461,462,437,465,463,437,441,465,463,465,466,441,466,465,463,467,460,463,466,467,468,460,467,462,460,468,467,466,468,468,469,462,464,462,469,470,468,466,441,470,466,469,468,470,441,471,470,470,472,469,471,472,470,471,441,473,473,441,432,474,473,432,421,474,432,421,374,474,471,473,475,475,473,474,472,471,476,471,475,476,477,472,476,472,477,478,478,469,472,475,479,476,479,477,476,475,474,480,479,475,480,478,481,469,469,481,464,482,474,374,474,482,480,478,477,483,481,478,483,480,484,479,484,477,479,485,464,481,481,483,486,481,486,485,487,485,486,486,483,488,477,488,483,486,488,487,487,488,489,488,477,490,488,490,489,484,491,477,477,491,490,492,464,485,492,455,464,455,492,493,485,493,492,453,455,493,494,493,485,494,485,487,453,493,495,494,495,493,496,453,495,495,494,496,487,497,494,497,496,494,453,496,498,453,498,231,226,231,498,498,496,499,498,499,226,496,497,499,226,499,500,220,226,500,501,499,497,500,499,501,497,487,502,501,497,502,503,502,487,503,487,489,500,504,220,500,501,505,504,500,505,220,504,506,506,504,505,221,220,506,506,507,221,502,508,501,501,508,505,506,505,509,507,506,509,221,507,510,221,510,222,505,508,511,509,505,511,510,512,222,218,222,512,509,511,513,507,509,514,513,514,509,511,515,513,511,508,515,515,508,516,517,514,513,515,517,513,507,514,518,517,518,514,515,519,517,516,519,515,520,517,519,518,517,520,521,520,519,516,521,519,522,518,520,520,521,522,523,507,518,523,518,522,524,523,522,523,525,507,507,525,510,525,526,510,523,527,525,527,523,524,525,527,526,528,521,516,529,521,528,528,516,530,521,531,522,521,529,531,510,526,532,510,532,512,522,533,524,531,533,522,531,534,533,524,533,534,535,531,529,534,531,535,532,526,536,536,512,532,529,537,535,535,52,534,52,535,537,534,52,53,534,53,524,33,52,537,537,529,538,537,538,33,529,528,538,539,33,538,528,539,538,33,539,18,540,524,53,540,53,541,43,541,53,43,42,541,524,540,542,542,527,524,527,542,543,543,526,527,542,544,543,544,526,543,542,540,545,545,544,542,540,541,546,546,545,540,541,42,547,547,546,541,42,548,547,548,42,54,65,548,54,549,546,547,547,548,549,545,546,549,550,548,65,548,550,549,65,76,550,549,551,545,550,551,549,76,552,550,551,550,552,76,171,552,553,545,551,552,553,551,545,553,544,552,171,554,552,554,553,193,554,171,544,553,555,554,555,553,556,554,193,192,556,193,554,556,557,554,557,555,192,558,556,556,558,557,558,192,218,544,555,559,526,544,559,559,536,526,559,555,560,560,555,557,559,560,536,561,560,557,561,536,560,558,561,557,512,536,561,218,512,562,218,562,558,561,558,562,562,512,561,563,565,564,565,566,564,566,565,567,568,564,566,569,566,567,567,570,569,568,566,571,566,569,571,131,568,571,569,570,572,572,571,569,131,571,572,570,573,572,572,129,131,573,574,572,574,129,572,573,575,574,575,573,576,574,577,129,577,574,575,578,577,575,129,577,128,577,578,128,579,575,576,579,576,580,313,579,580,575,579,581,579,313,581,578,575,581,581,313,273,582,581,273,578,581,582,583,582,273,274,583,273,582,583,584,578,582,584,583,274,585,584,583,585,268,585,274,586,128,578,125,128,586,584,587,578,587,586,578,125,586,588,586,587,588,124,125,588,587,584,589,584,585,589,587,590,588,124,588,590,590,587,589,585,591,589,590,589,591,585,268,592,591,585,592,590,593,124,173,124,593,594,590,591,590,594,593,591,592,594,595,592,268,268,253,595,173,593,596,593,594,596,592,597,594,597,592,595,597,598,594,596,594,598,599,173,596,173,599,170,598,597,600,600,597,595,598,601,596,601,599,596,601,598,600,602,595,253,253,251,602,600,595,603,603,595,602,602,251,604,604,603,602,251,244,604,605,600,603,600,605,601,603,604,606,603,606,605,604,244,607,606,604,607,607,244,608,244,207,608,207,609,608,207,204,609,609,204,610,204,165,610,165,611,610,168,611,165,612,610,611,612,609,610,613,611,168,612,611,613,613,168,170,599,613,170,614,612,613,614,613,599,615,609,612,612,614,615,616,608,609,609,615,616,614,599,617,601,617,599,608,616,618,618,607,608,616,615,619,618,616,619,620,615,614,617,620,614,620,619,615,601,621,617,620,617,621,605,621,601,622,607,618,622,606,607,619,623,618,623,622,618,619,620,624,624,620,621,623,619,624,625,606,622,625,605,606,623,625,622,621,605,626,624,621,626,626,623,624,605,625,626,625,623,626,508,627,516,508,502,627,516,627,628,516,628,530,627,502,629,502,503,629,627,630,628,627,629,630,631,530,628,628,630,631,629,503,632,632,630,629,503,633,632,503,489,633,630,632,634,634,631,630,634,632,633,530,631,635,528,530,635,636,631,634,634,633,636,635,631,636,637,633,489,633,637,636,636,638,635,637,639,636,636,639,638,639,637,640,638,639,640,637,489,641,637,641,640,489,642,641,490,642,489,490,643,642,491,643,490,635,638,644,638,640,645,644,638,645,644,646,635,646,528,635,643,647,642,641,642,648,648,642,647,648,649,641,648,647,649,650,640,641,649,650,641,640,651,645,640,650,651,644,645,652,652,645,651,652,651,653,654,644,652,653,654,652,646,644,654,643,655,647,643,491,655,647,656,649,655,656,647,646,654,657,654,653,658,654,658,657,659,646,657,528,646,659,659,660,528,539,528,660,661,539,660,539,661,18,661,662,18,662,19,18,19,662,663,663,664,19,664,663,665,663,666,665,666,663,667,666,667,668,669,659,657,670,660,659,659,669,670,671,661,660,660,670,671,661,672,662,661,671,672,673,662,672,673,672,671,673,663,662,669,657,674,674,657,658,675,671,670,675,673,671,676,670,669,674,676,669,676,675,670,677,676,674,674,658,677,677,675,676,678,663,673,678,673,675,675,677,679,679,678,675,678,680,663,679,680,678,680,667,663,658,681,677,677,681,679,679,682,680,681,682,679,683,681,658,681,683,682,653,683,658,684,667,680,682,684,680,682,683,685,685,683,653,667,684,686,686,668,667,687,684,682,685,687,682,686,688,668,688,689,668,690,689,688,686,690,688,691,689,690,691,690,692,692,693,691,693,692,694,695,686,684,695,690,686,684,696,695,695,696,690,687,696,684,696,692,690,694,692,697,697,698,694,699,698,697,696,700,692,687,700,696,692,701,697,700,701,692,701,699,697,702,701,700,700,687,702,702,699,701,703,698,699,703,704,698,703,705,704,706,702,687,687,685,706,707,702,706,707,706,685,708,699,702,708,702,707,685,709,707,709,685,653,710,708,707,707,709,710,699,708,711,708,710,711,711,712,699,712,703,699,705,703,713,714,705,713,709,653,715,651,715,653,716,715,651,715,716,709,651,650,716,711,710,717,712,711,717,718,703,712,703,718,713,713,719,714,714,719,720,710,709,721,721,709,716,717,722,712,718,712,722,710,723,717,721,723,710,722,717,723,724,713,718,719,713,724,716,725,721,723,721,725,723,726,722,725,726,723,722,727,718,718,727,724,722,726,728,727,722,728,729,725,716,650,729,716,725,730,726,726,730,728,731,729,650,649,731,650,729,732,725,725,732,730,729,731,733,733,732,729,649,734,731,731,734,733,732,733,735,730,732,735,733,736,735,736,733,734,649,737,734,656,737,649,730,735,738,735,736,738,730,739,728,738,739,730,737,740,734,736,734,740,741,737,656,741,740,737,741,656,655,742,728,739,727,728,742,739,738,743,739,743,742,738,736,744,738,744,743,744,745,743,746,744,736,740,746,736,727,742,747,724,727,747,748,745,744,744,746,748,742,743,749,750,747,742,750,742,749,751,724,747,751,747,750,752,749,743,752,743,745,724,751,753,753,719,724,753,754,719,752,755,749,755,750,749,750,756,751,753,751,756,719,754,757,720,719,757,757,754,720,758,720,754,759,758,754,754,753,760,760,753,756,754,760,761,759,754,761,762,761,760,756,762,760,756,750,763,750,755,763,764,759,761,764,761,762,765,759,764,764,762,765,765,762,766,767,759,765,768,767,765,756,769,762,756,763,769,766,762,769,765,770,768,768,770,771,772,771,770,770,765,773,773,772,770,773,765,766,772,773,774,775,774,773,766,775,773,775,766,776,763,777,769,777,766,769,776,766,778,778,766,777,778,779,776,776,779,780,781,777,763,778,777,781,778,781,779,781,763,755,781,755,782,781,782,779,755,752,782,745,782,752,780,779,783,780,783,784,782,785,779,785,782,745,783,779,786,779,785,786,745,787,785,788,786,785,785,787,788,789,783,786,789,786,788,787,745,790,745,748,790,788,787,791,789,788,791,791,787,790,783,789,792,784,783,792,791,792,789,790,748,793,793,791,790,746,793,748,794,792,791,792,794,784,794,791,793,784,794,795,795,794,793,795,796,784,795,797,796,795,798,797,799,793,746,793,799,795,798,795,799,746,740,799,800,798,799,798,800,801,740,802,799,800,799,802,741,802,740,803,801,800,801,803,804,805,804,803,804,805,806,805,807,806,806,807,808,807,809,808,800,810,803,810,800,802,8
211,802,741,655,811,741,803,810,812,803,812,805,813,810,802,802,811,813,810,813,812,814,813,811,813,814,812,815,811,655,814,811,815,491,815,655,807,816,809,809,816,817,815,491,818,818,491,484,484,819,818,484,480,819,818,820,815,818,819,820,819,480,821,820,819,821,821,480,482,815,820,822,822,814,815,821,823,820,823,822,820,824,821,482,824,823,821,817,816,825,825,826,817,826,825,827,825,828,827,828,829,827,828,825,830,825,816,830,829,828,831,831,828,830,372,829,831,832,372,831,831,830,832,372,832,370,830,816,833,832,830,833,834,823,824,822,823,834,833,816,835,816,807,835,370,832,836,837,832,833,836,832,837,833,838,837,833,835,838,835,834,838,839,837,838,836,837,839,839,838,834,839,834,824,840,839,824,839,840,836,824,482,840,840,482,374,841,370,836,841,836,840,373,370,841,373,842,374,840,374,842,842,841,840,842,373,841,835,843,834,843,822,834,844,843,835,835,807,844,843,845,822,845,843,844,814,822,845,807,846,844,844,846,845,807,805,846,845,846,847,814,845,847,805,847,846,848,814,847,812,814,848,812,849,805,805,849,847,849,812,848,847,849,848],"attributes":[{"name":"aPos","stride":3,"data":[2.4348,0.0036,-1.3195,2.6007,-0.0312,-1.2529,2.5259,-0.0234,-1.0889,2.2688,0.1353,-1.2174,2.1321,0.0613,-1.4471,1.9525,0.243,-1.2377,1.7079,0.073,-1.609,2.3118,0.0943,-1.0137,2.3063,-0.0477,-0.7685,2.126,0.145,-0.9457,1.9879,0.2092,-0.8017,2.1974,-0.0767,-0.6177,2.2002,-0.0144,-0.5425,2.0074,0.1796,-0.4283,2.2017,-0.0183,-0.3509,2.1349,-0.0253,-0.269,1.8841,0.2464,-0.2037,2.0183,0.0043,0.0266,1.6346,0.4059,-0.1447,2.0536,-0.0591,0.3049,1.7921,0.3638,-0.4336,1.7179,0.3981,-0.7528,1.7087,0.4422,-0.3065,1.5258,0.55,-0.6378,1.397,0.624,-0.4212,1.7849,0.3906,-0.8635,1.5579,0.4995,-0.8321,1.9138,0.2319,-0.9087,1.9079,0.2039,-1.0437,1.7598,0.3406,-1.0032,1.4959,0.4723,-1.106,1.1595,0.6684,-0.5909,1.2413,0.6278,-0.852,1.3063,0.6595,-0.3437,1.3987,0.5368,-1.0301,1.2674,0.4265,-1.1505,1.4213,0.3342,-1.1829,1.6492,0.2847,-1.0796,1.7913,0.2462,-1.1412,1.3753,0.2217,-1.1916,1.4314,0.2012,-1.3047,1.2835,0.2567,-1.2304,1.1402,0.3435,-1.1561,1.0914,0.5647,-0.9531,1.2807,0.0975,-1.5469,1.2566,-0.032,-1.7084,1.2701,0.2097,-1.3349,1.1515,0.288,-1.3537,1.2167,0.1571,-1.5316,1.144,0.1102,-1.574,1.0739,0.2845,-1.4916,1.0981,0.6867,-0.7712,1.0125,0.6195,-0.4873,0.9416,0.5975,-0.7229,0.923,0.3416,-1.3513,1.0169,0.0509,-1.6997,0.9954,-0.0509,-1.8209,0.8648,0.0866,-1.7322,0.8942,-0.0109,-1.8446,0.9611,0.1821,-1.6569,1.0294,0.2458,-1.6029,0.8511,0.2461,-1.7816,0.6922,0.2462,-1.8273,1.0074,0.3338,-1.4881,0.9218,0.3772,-1.6493,0.873,0.452,-1.5152,0.6601,0.193,-1.9518,0.9053,-0.0299,-1.9544,0.7068,-0.0229,-2.2826,0.5016,0.197,-2.1031,0.5484,0.0108,-2.4997,0.7871,0.4191,-1.7447,0.5446,0.3306,-1.932,0.6893,0.4165,-1.7826,0.6089,0.6053,-1.8219,0.7684,0.5008,-1.6889,0.7503,0.6677,-1.5875,0.4729,0.437,-2.0067,0.381,0.1844,-2.3216,0.3185,0.1517,-2.5373,0.5055,-0.0313,-2.7563,0.3082,0.0965,-2.7143,0.4522,-0.0518,-2.9759,0.0952,0.0024,-2.8465,0.1308,0.1049,-2.7313,-0.103,0.0032,-2.8512,0.2228,0.1912,-2.4657,0.2407,0.312,-2.2264,0.3425,0.2755,-2.1889,0.3042,0.3637,-2.1225,-0.092,0.1868,-2.687,-0.1985,-0.0403,-2.9041,0.023,0.1631,-2.6387,0.3084,0.4797,-2.1018,-0.2757,0.243,-2.7359,-0.3337,-0.0014,-2.9309,0.1011,0.1875,-2.4607,-0.5495,0.2092,-2.8193,-0.5966,-0.0259,-2.9947,-0.8736,0.1585,-2.8142,-0.9239,-0.0308,-2.9801,-1.202,0.0672,-2.9084,-1.2376,-0.0916,-3.0545,-1.2931,-0.0454,-3.0251,-1.391,0.0558,-2.9494,-1.4619,-0.0689,-3.0728,-1.5159,-0.0317,-2.9749,-1.5394,0.0634,-2.9404,-1.6595,-0.0271,-2.9729,-1.3383,0.1241,-2.8716,-1.1262,0.1654,-2.8175,-1.7438,0.0772,-2.947,-1.9703,-0.0159,-2.8738,-0.7439,0.2442,-2.718,-0.9745,0.1938,-2.7427,-0.4261,0.3118,-2.7052,-0.8368,0.299,-2.7582,-1.2196,0.2311,-2.8965,-1.4866,0.1559,-2.9386,-1.034,0.2191,-2.8199,-0.9912,0.276,-2.8732,-0.9925,0.5211,-2.9889,-1.5737,0.1921,-3.0199,-1.4121,0.3246,-3.0039,-1.4182,0.5536,-3.1274,-1.6454,0.2821,-3.0208,-0.8272,0.4079,-2.8963,-1.2887,0.4881,-3.0681,-2.0927,0.4144,-2.8747,-2.4919,0.2691,-2.6199,-2.2064,-0.0539,-2.7376,-2.3706,-0.0081,-2.6377,-0.5694,0.4551,-2.7685,-0.7749,0.6415,-2.9181,-0.4195,0.4163,-2.6682,-0.3649,0.5886,-2.6342,-0.5165,0.6575,-2.7562,-0.3213,0.4134,-2.6053,-0.2779,0.3733,-2.5328,-0.3628,0.4351,-2.5145,-0.1831,0.3834,-2.5356,0.033,0.2915,-2.5925,0.1007,0.248,-2.5148,0.1357,0.3113,-2.328,0.0991,0.3803,-2.3952,-0.0617,0.4451,-2.3973,-0.2117,0.4545,-2.3747,-0.3201,0.4552,-2.3978,-0.2525,0.5592,-2.4597,0.1397,0.43
264,-2.3072,-0.0119,0.482,-2.3014,-0.1562,0.5318,-2.3768,0.1636,0.5118,-2.2717,0.0212,0.5654,-2.3513,-0.1261,0.6662,-2.4515,0.1315,0.7287,-2.3548,0.3044,0.5853,-2.2396,0.4145,0.5297,-2.1247,0.5492,0.6284,-2.0219,-0.1822,0.8178,-2.4963,0.1484,0.9726,-2.3621,0.2958,0.7828,-2.3117,0.4844,0.7027,-2.2326,0.6094,0.7663,-2.1294,0.445,0.9097,-2.2659,-0.1896,1.4548,-2.5349,0.1499,1.3497,-2.3399,-0.2377,1.072,-2.5449,-0.4973,1.0604,-2.6631,0.6652,0.6972,-1.8307,-0.8591,0.8548,-2.9149,0.6755,0.848,-1.5985,-1.0448,0.7704,-3.0283,-1.3038,0.8467,-3.1343,0.7716,0.8993,-2.1102,0.8337,0.9887,-1.8455,0.5822,0.9748,-2.2146,0.2797,1.3741,-2.2384,0.176,1.4759,-2.3278,0.7502,1.0513,-2.1633,0.5347,1.1325,-2.2008,0.8764,0.9977,-2.0782,0.4496,1.3586,-2.1343,0.8035,1.1547,-2.1154,0.6756,1.2207,-2.0775,0.8654,1.1409,-1.9779,0.5566,1.3339,-1.9386,0.7375,1.2329,-1.8934,0.6298,1.3264,-1.8138,0.7132,1.2001,-1.7113,0.7641,1.1077,-1.6903,0.6845,1.2089,-1.6392,0.6783,1.1597,-1.4841,0.6724,1.0133,-1.565,0.7092,1.2963,-1.4467,0.3092,1.4359,-1.9197,0.2566,1.4741,-1.7256,0.2694,1.474,-2.1519,-0.1286,1.5663,-2.4726,-0.2085,1.5866,-2.3919,-0.0995,1.5535,-1.6397,0.267,1.4055,-1.3218,0.3748,1.4433,-1.597,0.6083,1.3417,-1.4326,-0.3743,1.6205,-2.4758,0.4318,1.3724,-1.3829,-0.4073,1.6358,-1.9646,-0.4419,1.6354,-2.3244,-0.4849,1.6383,-1.6587,0.6596,1.2873,-1.2074,0.5198,1.2741,-1.1895,0.6441,1.1948,-1.2427,0.3382,1.3019,-1.1113,0.5754,1.1898,-1.0553,0.415,1.1893,-1.0021,0.214,1.2804,-0.8855,0.533,1.057,-0.9938,0.48,1.1265,-0.836,0.457,0.9373,-0.9788,0.3582,1.1845,-0.8022,0.1997,1.0773,-0.4539,0.3558,0.9963,-0.6365,0.4216,0.9187,-0.7959,0.0849,1.3712,-0.9235,0.0837,1.2397,-0.7521,0.1549,1.1199,-0.5444,0.0073,1.1667,-0.3718,-0.3077,1.5395,-1.1977,-0.5766,1.5332,-0.8028,-0.214,1.4102,-0.7583,-0.1216,1.3071,-0.5209,-0.2622,1.3602,-0.162,-0.3754,1.4367,-0.5765,-0.6036,1.4579,-0.3946,-0.915,1.4851,-0.3382,-0.7268,1.6845,-1.49,-0.7559,1.632,-1.1084,-0.7454,1.7132,-1.7575,-0.7579,1.5851,-0.8615,-1.0495,1.7001,-1.3186,-1.0574,1.6567,-0.9028,-1.2555,1.6534,-1.1398,-0.8537,1.7495,-2.0237,-0.951,1.7533,-1.8342,-0.7921,1.7121,-2.2651,-1.1619,1.5398,-0.4838,-1.2581,1.5812,-0.8289,-1.1521,1.6521,-1.5841,-1.2306,1.6604,-1.3325,-1.0464,1.7284,-1.9554,-1.258,1.5654,-1.739,-1.0105,1.7436,-2.1678,-1.2389,1.5648,-1.4985,-1.2501,1.6017,-2.163,-1.4068,1.6507,-1.269,-1.402,1.5917,-0.926,-1.3932,1.5997,-1.4484,-1.415,1.4313,-1.8065,-1.5039,1.424,-2.135,-1.4199,1.5131,-1.6428,-1.4431,1.5035,-0.7445,-1.6625,1.5342,-0.9083,-1.3341,1.4982,-0.4671,-1.2866,1.4012,-0.0874,-1.8175,1.2927,-2.4752,-1.7349,1.4077,-2.1587,-1.92,1.5414,-1.9598,-1.657,1.6586,-1.4211,-1.7236,1.3464,-2.4777,-1.6232,1.6279,-1.2383,-2.1061,1.3057,-2.4614,-2.1992,1.486,-2.2578,-2.3409,1.5237,-2.2927,-2.2441,1.2506,-2.5164,-1.8999,1.2333,-2.6149,-2.1036,1.6088,-1.9793,-1.9866,1.5656,-1.6719,-1.8137,1.5979,-1.3344,-1.8708,1.5256,-0.8993,-2.0342,1.4778,-1.0509,-1.7661,1.451,-0.6905,-1.5406,1.4936,-0.6045,-1.5251,1.3347,-0.2059,-1.7615,1.2966,-0.4929,-2.1086,1.5374,-1.7406,-2.3326,1.4319,-1.4425,-2.2388,1.5998,-1.9923,-2.0659,1.37,-0.738,-1.968,1.308,-0.6156,-2.0096,0.961,-0.4316,-1.8033,1.124,-0.3524,-2.1547,1.4218,-0.9073,-2.2164,1.1472,-0.6077,-1.5573,1.2597,-0.1338,-1.7105,1.0483,-0.2541,-1.8699,0.8459,-0.3735,-2.2491,0.8563,-0.4506,-2.1634,0.9523,-0.4878,-2.5601,1.208,-0.8186,-2.4228,1.2607,-0.821,-2.4135,1.3963,-0.988,-2.3474,1.4493,-1.2275,-2.5038,0.9586,-0.6362,-2.5944,1.2873,-0.9529,-2.4732,1.3872,-1.3434,-2.6153,1.1998,-1.2241,-2.5468,1.5143,-1.7764,-2.4494,1.5743,-2.1198,-2.5938,1.502,-2.2407,-2.4075,1.601,-2.2668,-2.4718,1.4839,-2.3546,-2.4084,1.4021,-2.4027,-2.5969,1.2132,-2.428,-2.5969,1.2132,-2.428,-2.7428,1.1918,-2.3813,-2.7224,1.0108,-2.399,-2.8281,0.8612,-2.2857,-2.6967,0.683,-2.3227,-2.7801,0.5886,-2.2091,-2.722,0.4707,-2.3141,-2.7253,0.2942,-2.2647,-2.7656,0.5139,-2.0714,-2.7913,0.7994,-2.1014,-2.7361,0.9945,-1.8872,-2.9135,0.9405,-2.2457,-2.8164,1.2222,-2.2888,-2.8534,1.0274,-2.1116,-2.7887,1.2032,-2.138,-2.7003,1.3701,-2.1909,-2.7108,1.3714,-2.0408,-2.7049,0.2626,-2.093,-2.6494,0.1469,-2.2544,-2.6699,1.5165,-1.9427,-2.6331,1.4103,-1.5902,-2.7592,1.3599,-1.8437,-2.5948,1.2718,-1.3456,-2.7669,1.1588,-1.7455,-2.7495,1.2172,-1.5523,-2.6839,1.0983,-1.3247,-2.7744,0.9753,-1.5521,-2.6961,0.1071,-2.0717,-2.7377,0.0686,-2.289,-2.8145,-0.04,-2.3165,-2.8203,-0.0277,-2.0346,-2.6856,0.1199,-1.8445,-2.7778,-0.0441,-1.7044,-2.6596,0.2768,-1.8655,-2.7134,0.2213,-1.6714,-2.7442,0.3996,-1.7307,-2.7588,0.71,-1.8056,-2.8005,0.5598,-1.7894,-2.7339,0.228,-1.5276,-2.7706,-0.0575,-1.4928,-2.797,0.9159,-1.3602,-2.7458,0.4034,-1.4771,-2.7712,0.5278,-1.5143,-2.6702,0.1658,-1.3487,-2.7437,0.0086,-1.233,-2.625,0.2809,-1.413,-2.5974,0.2078,-1.2316,-2.6342,0.0969,-0.9838,-2.6862,-0.0364,-0.7249,-2.5272,0.0937,-0.6173,-2.6452,-0.0134,-0.2505,-2.4375,0.1227,-0.3684,-2.5021,0.004,-0.
20515,-2.2427,0.121,0.289,-2.1091,0.1392,0.2541,-2.4814,-0.015,0.1541,-2.3895,0.0115,0.3187,-2.1907,0.1208,0.8474,-2.3697,-0.0148,0.8349,-2.449,-0.001,0.9466,-2.1747,0.1277,0.6536,-1.828,0.2014,0.4028,-2.4767,0.1796,-0.726,-2.5935,0.2326,-1.0806,-2.5273,0.2891,-1.2404,-2.6028,0.3505,-1.2415,-2.6317,0.3881,-1.0906,-2.742,0.5298,-1.156,-2.5035,0.3732,-0.7902,-2.3789,0.2603,-0.6625,-2.7962,0.6762,-1.2893,-2.3739,0.1606,-0.4707,-2.1452,0.1612,-0.1107,-2.793,0.8541,-1.1288,-2.622,1.2079,-1.0615,-2.7783,0.8322,-0.8826,-2.6962,1.0751,-0.8943,-2.6879,0.9737,-0.6963,-2.8085,0.6384,-0.9692,-2.7455,0.7028,-0.7457,-2.7441,0.5008,-0.9805,-2.6043,0.5618,-0.8026,-2.5443,0.8948,-0.5528,-2.3955,0.7704,-0.6264,-2.5702,0.8237,-0.5927,-2.6015,0.6989,-0.6835,-2.4661,0.638,-0.7388,-2.424,0.5426,-0.6736,-2.3537,0.3894,-0.6605,-2.207,0.5261,-0.6882,-2.1486,0.3693,-0.614,-2.1921,0.5877,-0.7394,-2.1323,0.2536,-0.4568,-2.0547,0.4969,-0.7075,-2.008,0.3747,-0.5344,-2.0099,0.5829,-0.6787,-2.1039,0.6908,-0.6154,-2.1981,0.7685,-0.5081,-2.024,0.7679,-0.4306,-1.8754,0.672,-0.4649,-1.8766,0.4966,-0.4888,-1.9058,0.1869,-0.0806,-1.8582,0.2386,-0.2838,-1.8172,0.2896,-0.224,-2.0671,0.1689,-0.0476,-1.7219,0.2212,-0.1242,-1.904,0.2016,0.0749,-1.7697,0.1884,0.1245,-1.4843,0.2778,-0.0431,-1.6089,0.2989,-0.2261,-1.6874,0.4551,-0.3734,-1.3981,0.4777,-0.3389,-1.7087,0.6414,-0.438,-1.5894,0.5592,-0.4936,-1.3603,0.6925,-0.3718,-1.6645,0.772,-0.4436,-1.5571,0.852,-0.3364,-1.4317,0.5754,-0.3694,-1.2815,0.5583,-0.2107,-1.302,0.4022,0.0005,-1.6323,0.951,-0.2582,-1.5061,1.1447,-0.1412,-1.4645,0.8979,-0.2099,-1.3231,0.7909,-0.2336,-1.236,0.7344,0.0026,-1.372,0.9403,-0.1372,-1.1951,0.7083,-0.1828,-1.1929,0.579,-0.0444,-1.1055,0.5714,0.1337,-1.3874,1.1969,-0.0354,-1.1825,0.9821,0.0047,-1.3105,1.323,0.0321,-1.0964,1.1587,0.0753,-1.1011,1.3212,-0.0116,-1.0051,1.2247,0.089,-0.7669,1.4162,-0.2246,-0.5554,1.3937,-0.152,-0.7362,1.2985,-0.0011,-0.7576,1.2559,0.1105,-0.4079,1.3384,-0.0653,-0.3569,1.2185,-0.0358,-0.5298,1.2631,0.03,-0.5589,1.1243,0.0576,-0.7625,1.1247,0.0582,-0.9304,1.1111,0.0493,-1.0073,1.0152,0.0423,-0.8462,0.9878,0.0714,-1.0226,0.9512,0.1444,-0.6398,0.9899,0.1042,-0.7333,0.9195,0.1373,-1.1879,0.8716,0.1322,-0.5494,0.8851,0.0682,-1.1721,0.6944,0.1697,-1.0655,0.7424,0.2585,-1.0229,0.92,0.237,-0.8164,0.8499,0.2388,-0.674,0.7325,0.1967,-0.8645,0.6849,0.2591,-0.9556,0.5046,0.1901,-0.7779,0.607,0.1987,-1.2319,0.3864,0.0904,-1.3647,0.3092,0.1173,-1.0246,0.4123,0.2862,-0.8096,0.5355,0.2379,-0.7241,0.5607,0.3473,-0.6506,0.6095,0.1938,-1.0273,0.3918,0.4147,-1.2936,0.3149,0.4269,-0.531,0.7322,0.0833,-1.556,0.3062,0.3883,-0.53,0.7229,0.1872,-1.0567,0.4165,0.6458,-0.3514,0.8987,-0.016,-0.298,0.8634,0.0896,-0.1292,0.9871,-0.0912,-0.3352,0.7984,0.3202,0.1904,1.0751,0.554,-0.2818,0.8187,0.5483,-0.9304,0.5422,1.0365,-0.4374,0.9437,-0.055,-0.3726,1.0285,-0.0692,-0.2274,0.9899,-0.1708,-0.3276,1.1116,-0.0335,-0.1827,1.114,-0.143,-0.1228,1.0066,-0.2226,-0.142,1.2437,-0.1168,-0.0557,1.108,-0.2208,0.0615,1.0645,-0.376,-0.0177,1.0061,-0.2694,-0.0056,1.0462,-0.1345,0.1508,1.0888,0.2951,0.0686,0.9906,-0.39,-0.0001,0.9414,-0.3887,0.2025,0.9635,-0.4585,0.3568,0.8106,-0.6064,0.0604,0.9646,-0.2765,0.2363,0.8676,-0.4984,0.4371,0.8122,-0.6998,0.2377,0.8076,-0.411,0.4126,0.8198,-0.9036,0.3236,0.835,-0.4484,0.3666,0.8679,-0.5011,0.3432,0.868,-0.2554,0.5095,0.9331,-0.0847,0.4164,0.8434,-0.3895,0.4444,0.7623,-0.5056,0.5043,0.8407,-0.2637,0.4945,0.7851,-0.4175,0.6543,0.7528,-0.3218,0.5485,0.6393,-0.4852,0.4254,0.6493,-0.5963,0.6562,0.4513,-0.677,0.5052,0.7271,-0.6529,0.5921,0.7699,-0.934,0.5263,0.6601,-0.7543,1.3412,0.654,-0.1001,1.1587,0.6582,-0.1502,1.0671,0.9116,0.1234,0.8874,0.6493,-0.3824,0.4776,0.7983,-0.9004,0.679,0.568,-0.4985,0.7979,0.519,-0.5508,1.0813,0.6294,-0.2272,0.4702,0.7749,-1.0674,1.1069,0.5758,-0.3417,1.2648,0.5722,-0.2473,1.4256,0.5452,-0.1678,0.7994,0.4822,-0.9207,0.9685,0.5056,-0.8919,0.678,0.5154,-0.9109,0.6304,0.6626,-0.9147,0.6551,0.7119,-1.117,0.7206,0.5402,-1.1597,0.8929,0.4769,-1.015,1.051,0.414,-1.1312,0.9646,0.4306,-1.2888,0.8361,0.5276,-1.2729,0.8428,0.5511,-1.4644,0.7255,0.6363,-1.3136,0.6464,0.7572,-1.4559,0.6539,0.7066,-1.2512,0.5939,0.8462,-1.4014,0.6168,0.826,-1.219,0.5992,0.993,-1.3687,0.5857,0.8888,-1.3294,0.5425,0.9519,-1.2525,0.6217,0.8025,-1.0705,0.5655,0.8301,-1.1559,0.3826,0.7894,-1.0865,0.408,0.8887,-1.016,-2.8145,-0.04,-2.3165,-2.698,-0.0132,-2.3754,-2.7377,0.0686,-2.289,-2.5891,0.0675,-2.3631,-2.6494,0.1469,-2.2544,-2.519,-0.0637,-2.4772,-2.6255,0.1815,-2.2994,-2.7253,0.2942,-2.2647,-2.5357,0.0988,-2.4586,-2.6301,0.2098,-2.4943,-2.722,0.4707,-2.3141,-2.5979,0.436,-2.5173,-2.5293,0.5745,-2.5172,-2.6967,0.683,-2.3227,-2.3582,0.5512,-2.7388,-2.1625,0.7479,-2.8094,-2.5727,0.8872,-2.4587,-2.7224,1.0108,-2.399,-2.3314,0.9528,-2.5904,-2.163,1.0173,-2.6292,-1.9574,1.0592,-2.6775,-1.8121,0.9605,-2.8126,-1.8005,1.1501,-2.6841,-1.9522,0.5137,-2.9762,-1.7794,0.735,-2.998,-1.6559,0.6571,-3.0548,-1.6532,0.8579,-2.9269,-1.5693,0.8342,-3.0802,-1.6438,0.9838,-2.9431,-1.6751,1.2538,-2.7894,-1.4297,0.8177,-3.1585,-1.5359,1.0532,-3.0799,-1.5275,1.4509,-2.6886,-1.3759,1.09,-3.0875,-1.5833,1.329,-2.912,-1.4497,1.1628,-3.0926,-1.1004,1.1174,-2.9858,-1.4419,1.4254,-2.8692,-1.3044,1.366,-2.9161,-1.1895,1.6478,-2.3349,-1.2219,1.6164,-2.5531,-0.9597,
21.7441,-2.3487,-1.2308,1.5018,-2.7584,-1.1391,1.6145,-2.6335,-0.862,1.6939,-2.4276,-0.6916,1.6741,-2.4289,-0.6098,1.6155,-2.6035,-0.4256,1.5111,-2.6204,-0.531,1.3391,-2.6638,-0.6149,1.4377,-2.7033,-0.771,1.0769,-2.8335,-0.7692,1.2861,-2.789,-0.7025,1.4874,-2.732,-0.7288,1.6078,-2.6114,-1.0837,1.3143,-2.8886,-0.8031,1.5428,-2.5286,-0.775,1.4798,-2.6232,-0.8761,1.3829,-2.8134,-1.1082,1.4004,-2.8509,-0.9581,1.5622,-2.5314,-0.9323,1.4185,-2.5692,-0.9336,1.3814,-2.7099,-1.1261,1.4859,-2.6246,-1.1564,1.3916,-2.7554,0.2316,1.0748,0.0289,0.7606,0.9499,0.0786,0.2615,1.0905,0.1653,0.5916,0.9748,0.139,0.7155,1.0704,0.2917,0.3434,1.0955,0.3387,0.3916,1.1594,0.5448,0.5158,1.0496,0.3092,1.1186,1.0797,0.3918,0.6009,1.2195,0.5164,0.3432,1.1263,0.7875,0.9475,1.2359,0.7211,0.6405,1.2084,0.8241,0.7623,1.2283,1.0186,0.4539,1.1074,1.2208,-0.11,0.909,1.0823,-0.3669,0.8155,1.1604,1.3179,1.095,0.5705,1.0701,1.2414,0.8907,1.448,0.8807,0.269,-0.2666,0.8373,1.4469,0.1963,1.0161,1.2201,0.1123,0.9498,1.4989,0.7148,1.175,1.2401,1.1686,1.2514,1.0114,1.4129,1.1473,0.8137,1.6907,1.0369,0.9131,1.7645,0.9169,0.7191,-0.8087,0.6346,1.4155,-0.4717,0.7321,1.7227,1.7164,0.8416,0.5121,1.8826,0.7891,0.673,1.5242,0.7225,0.115,1.5195,0.5282,-0.0327,1.6101,0.3558,-0.0023,1.7927,0.1315,0.1553,1.9804,0.0143,0.4773,2.1247,-0.0848,0.355,2.0951,-0.0834,0.5066,2.157,-0.0926,0.5954,2.0498,0.047,0.7147,2.1438,-0.062,0.7527,1.7307,0.6459,0.4111,1.7593,0.424,0.2792,1.7449,0.3642,0.1762,1.7088,0.2957,0.1216,1.8189,0.1872,0.3115,1.8679,0.6396,0.5666,1.9244,0.2542,0.3941,1.9098,0.3779,0.4715,2.0332,0.3952,0.5831,1.962,0.146,0.5039,2.0254,0.2037,0.6376,1.9794,0.1771,0.7209,2.061,0.4389,0.7361,2.0456,0.3345,0.9048,1.9942,0.6606,0.9185,2.0129,0.213,0.9313,1.8923,0.6508,1.0868,2.1313,0.2052,0.9999,1.9314,0.3545,1.1586,2.1789,0.0467,1.0774,2.2338,-0.0578,1.1311,2.0595,0.1272,1.2326,2.1811,-0.0066,1.3129,1.8909,0.0464,1.3403,2.0109,-0.0129,1.4143,1.727,-0.056,1.4773,2.044,0.2132,1.0886,1.9262,0.2167,1.1585,1.7671,0.0173,1.3573,1.6283,-0.0622,1.5467,1.5712,0.1264,1.3742,1.7877,0.1898,1.2685,1.714,0.1313,1.2758,1.6609,0.3339,1.3411,1.291,0.1189,1.7807,1.468,-0.0286,1.8065,1.3543,-0.0207,2.03,1.6961,0.5183,1.2895,1.5083,0.6247,1.3778,1.4962,0.4595,1.4076,1.6807,0.92,1.0514,1.3563,0.6877,1.5149,1.4179,0.4423,1.5267,1.277,0.2378,1.7393,1.1204,0.0969,2.0166,1.2082,-0.0279,2.2811,1.2911,1.1692,1.0127,0.9625,1.1673,1.1738,1.2388,0.3877,1.7619,1.0869,0.1557,1.9517,1.0426,0.141,2.3266,1.1576,-0.0039,2.5158,1.1992,0.8494,1.4725,1.0441,0.2749,1.9437,1.115,0.6091,1.7337,0.8938,0.1604,2.2023,0.9634,0.9059,1.5015,0.8815,0.4957,1.931,0.8143,0.2059,2.0955,0.7579,0.2837,2.08,0.7098,1.0569,1.3828,0.7071,0.5044,2.024,0.2824,0.9373,1.592,0.6742,0.8356,1.6678,0.3023,0.7919,1.752,0.0769,0.8636,1.6586,0.5095,0.6239,1.9844,-0.0725,0.6231,1.9811,-0.3128,0.7595,1.836,0.2224,0.4723,2.1526,0.4914,0.3863,2.1778,-0.335,0.6357,1.9645,-0.5859,0.674,1.8181,0.5678,0.2316,2.138,0.3291,0.3192,2.2221,0.0891,0.3364,2.2394,0.176,0.2596,2.3052,-0.3442,0.3573,2.1642,0.7049,0.1909,2.1579,-0.1922,0.2983,2.2229,0.4685,0.249,2.2471,0.565,0.2236,2.2458,0.79,0.2293,2.3138,0.3216,0.2497,2.2378,0.8764,0.2154,2.3998,0.9538,0.1217,2.5643,0.4318,0.3048,2.3777,0.7426,0.2094,2.4677,1.0646,0.0834,2.5018,1.0069,-0.0581,2.7943,0.9831,-0.0285,2.8887,0.8331,0.1502,2.6155,0.8604,0.0524,2.6703,0.6614,0.1908,2.6405,0.5763,0.2496,2.3902,0.7746,0.1198,2.7286,0.7321,0.1304,2.8995,0.5185,0.1755,2.7965,0.871,0.0059,2.9984,0.8387,-0.0101,3.164,0.6094,0.2529,2.6108,0.6591,0.1155,3.1265,0.8218,-0.003,3.3225,0.7022,-0.0022,3.3604,0.4737,0.0761,3.0553,0.4908,-0.0258,3.3123,0.3296,-0.0511,3.0713,0.2132,-0.0351,2.8999,0.4986,0.2224,2.5851,0.3288,0.1439,2.7292,0.248,0.2047,2.6129,0.0801,-0.0185,2.6967,0.4095,0.2553,2.5386,0.3103,0.2694,2.3629,-0.0144,0.0564,2.5796,-0.4046,-0.0103,2.4081,0.1252,0.277,2.47,0.0272,0.1998,2.5403,0.0107,0.2538,2.3532,0.0038,0.3242,2.4652,-0.1783,0.1831,2.4014,-0.1231,0.2177,2.2631,-0.2149,0.1855,2.336,-0.2528,0.0617,2.4125,-0.307,0.2153,2.263,-0.3518,0.119,2.2778,-0.5279,0.1542,2.2316,-0.5613,-0.022,2.3551,-0.6863,0.0059,2.221,-0.8244,-0.0269,2.1751,-0.5275,0.3184,2.1349,-0.8262,0.2033,1.9524,-1.0012,-0.0074,2.0829,-0.6735,0.5385,1.8327,-0.9953,0.1877,1.8153,-1.2756,-0.0015,1.8928,-1.3923,0.097,1.6832,-1.4661,-0.0082,1.71,-1.6843,0.0647,1.5264,-1.6522,-0.018,1.6862,-1.7532,-0.0082,1.576
27,-0.8601,0.3715,1.7353,-0.9072,0.5645,1.5394,-1.1134,0.2601,1.7265,-1.0077,0.4653,1.6217,-1.2453,0.3837,1.4859,-1.1138,0.4708,1.238,-1.8412,0.0984,1.3958,-2.0099,-0.017,1.5302,-1.1625,0.3909,0.9213,-1.2865,0.3186,0.6586,-1.3718,0.3275,0.9699,-1.5496,0.3265,0.6553,-1.4258,0.3275,1.2912,-1.5348,0.3559,1.0268,-1.9113,0.332,0.8437,-2.0723,0.0697,1.4026,-2.1559,-0.0244,1.4423,-2.2017,-0.015,1.3341,-2.2688,0.0935,1.2622,-2.391,-0.0106,1.1903,-2.1257,0.155,1.257,-2.2786,0.1315,1.1049,-2.1575,0.1098,1.0374,-2.0267,0.1278,1.1605,-1.7514,0.3383,1.0868,-1.7223,0.1365,1.3294,-2.0645,0.2033,0.851,-2.0543,0.1829,0.9767,-1.9482,0.2438,1.0423,-1.9662,0.3147,0.9413,-2.0205,0.2612,0.7455,-2.0652,0.1808,0.7442,-2.0081,0.1772,0.6511,-1.6313,0.2527,1.2628,-1.6648,0.188,1.3987,-1.505,0.2985,1.4447,-1.6206,0.1753,1.5426,-1.4317,0.291,1.6046,-1.2568,0.3251,1.6395,-1.3649,0.2368,1.6607]},{"name":"aNormal","stride":3,"data":[0.364,0.8468,-0.3878,0.4964,0.8668,-0.0473,0.5354,0.8109,0.2362,0.4157,0.8785,-0.2353,0.29,0.8151,-0.5016,0.1495,0.9519,-0.2675,0.0394,0.7879,-0.6146,0.4637,0.8253,0.3223,0.497,0.6627,0.5602,0.362,0.9128,0.1889,0.6737,0.7364,0.0627,0.8018,0.5974,0.0157,0.7893,0.6078,-0.0868,0.6058,0.7946,-0.0393,0.7789,0.598,0.1888,0.6774,0.5356,0.5041,0.6453,0.6768,0.3542,0.717,0.6934,0.0709,0.5285,0.71,0.4654,0.5431,0.8343,0.0945,0.7299,0.6671,-0.1491,0.543,0.8263,0.1495,0.5677,0.7885,0.2366,0.4658,0.8526,-0.2368,0.3302,0.9434,-0.0314,0.585,0.7985,-0.1423,0.3304,0.9439,0,0.472,0.7395,-0.4799,0.158,0.972,0.1739,0.6462,0.4413,-0.6226,0.4034,0.7515,-0.5221,0.1026,0.9942,0.0316,0.3858,0.8897,-0.2441,0.0709,0.9609,0.2678,0.1811,0.9527,-0.2441,-0.3771,0.5028,-0.7778,0.3067,-0.0157,-0.9517,0.3067,0.5584,-0.7708,-0.0944,0.9759,-0.1968,0.2131,0.5761,-0.7891,-0.1411,0.972,-0.1881,0.5189,0.4796,-0.7076,0.1502,0.814,-0.5611,-0.2755,0.6139,-0.7398,0.0472,0.8488,-0.5266,0.1101,0.7942,-0.5976,0.7556,0.6139,-0.2283,0.2437,0.9513,-0.1887,0.551,0.488,-0.6769,0.3713,0.6242,-0.6874,0.601,0.7196,-0.3479,-0.063,0.9927,-0.1024,-0.4627,0.8627,0.2039,-0.6854,0.7247,-0.0709,0.7528,0.6117,-0.2431,0.1496,0.7557,-0.6376,0.1101,0.7629,-0.6371,0.7179,0.2761,-0.639,0.7346,0.6635,-0.1422,0.5731,-0.1335,-0.8086,0.7625,0.2987,-0.5739,0.3223,0.0786,-0.9434,0.63,0.3937,-0.6694,0.5177,0.855,-0.0314,0.7327,0.6382,-0.2364,0.9294,0.3623,-0.0709,0.5813,0.6991,-0.4163,0.6837,0.6759,-0.2751,0.5754,0.7251,-0.3783,0.408,0.8003,-0.4394,0.6054,0.7469,-0.2752,0.213,0.3629,-0.9072,0.7556,0.2283,-0.6139,0.6075,0.213,-0.7653,0.9048,-0.181,-0.3855,0.6134,0.4876,-0.6213,0.7394,0.4877,-0.4641,0.6074,-0.0947,-0.7888,0.4338,0.8755,-0.213,0.3469,0.8436,-0.41,0.529,0.829,-0.1816,0.1726,0.9337,-0.3138,0.259,0.879,-0.4003,-0.1028,0.7674,-0.6329,0.1101,0.8571,-0.5033,0.0237,0.6705,-0.7415,0.1103,0.9614,-0.2522,0.4569,0.5671,-0.6853,0.7975,0.4106,-0.4422,0.7318,0.3541,-0.5823,0.3069,0.5115,-0.8026,0.4331,0.5669,-0.7008,0.44,0.7543,-0.4872,0.6069,-0.4019,-0.6857,0.3145,0.6054,-0.7312,0.2436,0.5344,-0.8094,0.6379,0.6142,-0.4646,-0.0943,0.6759,-0.7309,-0.0158,0.615,-0.7884,-0.0395,0.805,-0.5919,-0.0393,0.5268,-0.8491,0.0869,0.6638,-0.7428,0.1968,0.7165,-0.6692,0.0783,0.7127,-0.6971,-0.0705,0.6975,-0.7131,-0.1099,0.7298,-0.6748,-0.0393,0.597,-0.8013,0.1726,0.0941,-0.9805,-0.0788,0.197,-0.9772,0.0943,0.1649,-0.9818,0.3613,0.1021,-0.9268,-0.2524,-0.1025,-0.9622,-0.4177,-0.0631,-0.9064,0.0471,0.22,-0.9744,0.3388,0.0788,-0.9376,0.1263,0.5208,-0.8443,0.2533,-0.5779,-0.7758,0.1263,-0.5208,-0.8443,0.4341,-0.4341,-0.7893,0.3855,-0.7159,-0.5822,0.4263,-0.6237,-0.6552,0.1739,-0.158,-0.972,0.1263,-0.4182,-0.8995,0.3456,-0.5891,-0.7305,-0.1265,-0.1976,-0.9721,-0.2611,-0.1741,-0.9495,0.3943,-0.5836,-0.7098,0.4088,-0.3538,-0.8412,-0.4651,-0.2128,-0.8593,-0.5205,-0.1735,-0.836,-0.5195,-0.0866,-0.8501,-0.5752,-0.1891,-0.7958,0.4577,-0.4655,-0.7575,0.4716,0.1729,-0.8647,0.4177,0.0631,-0.9064,0.7428,-0.0869,-0.6638,0.5048,0.1814,-0.844,0.8102,0.3776,-0.4484,0.3632,0.8765,-0.3159,0.9735,0.1178,-0.1963,0,0.9052,-0.425,0.5348,0.5269,-0.6606,0.8761,0.0237,-0.4815,0.8382,0.2689,-0.4745,0.66,0.5972,-0.4557,0.1339,0.8667,-0.4806,0.1413,0.4396,-0.887,0.6925,0.0866,-0.7162,0.6538,-0.5908,-0.4727,0.6534,0.2204,-0.7242,0.0551,0.2124,-0.9756,0.3228,-0.1811,-0.929,0.6853,-0.1969,-0.7011,
vendor: 9,043 bytes, line 2
20.063,-0.3227,-0.9444,0.5117,-0.3936,-0.7637,0.2996,-0.0079,-0.954,0.3393,-0.5682,-0.7497,0.5826,-0.6928,-0.4251,0.7217,-0.5413,-0.4315,0.4566,-0.0157,-0.8895,0.3786,-0.071,-0.9228,0.2209,-0.1578,-0.9625,0.5368,-0.371,-0.7578,0.7239,-0.4878,-0.4878,0.3307,0.1654,-0.9291,0.3396,0.0395,-0.9398,0.609,0.1265,-0.783,0.4406,0.0393,-0.8969,0.4951,0.0865,-0.8645,0.8324,-0.5497,-0.0707,0.5129,0.1026,-0.8523,0.9379,0.0079,0.3468,0.3794,-0.0316,-0.9247,0.2917,0.1419,-0.9459,0.5681,-0.6786,-0.4655,0.8883,-0.283,0.3616,0.2514,0.055,-0.9663,0.4574,0.1025,-0.8833,0.5756,0.5204,-0.6308,0.2451,0.1581,-0.9565,0.3306,0.4408,-0.8345,0.8841,-0.371,-0.2842,0.7179,0.5444,-0.4339,0.4791,0.6048,-0.6362,0.2198,0.8007,-0.5573,0.8658,0.488,0.1102,0.5176,0.8077,-0.2823,0.5652,0.8165,0.1178,0.6506,0.7525,-0.1019,0.6859,0.6701,0.2838,0.8846,0.2054,0.4186,0.9394,0.3316,0.0868,0.9536,-0.2207,0.2049,0.8709,-0.204,0.4472,0.9005,0.4345,0.0158,0.2518,0.9677,0.0157,0.0628,0.9975,-0.0314,0.2913,0.9527,0.0866,0.3635,0.7823,-0.5058,0.2443,0.9692,-0.0315,0.3388,0.9376,0.0788,0.2358,0.959,0.1572,0.2839,0.9384,0.1971,0.3063,0.9503,0.055,0.2042,0.9034,-0.3771,0.2665,0.9327,0.243,0.1502,0.9879,-0.0395,0.1656,0.9859,0.0237,0.1805,0.9734,0.1413,0.7394,0.4877,0.4641,0.0473,0.8754,0.4811,0.9161,-0.3396,0.2132,0.6142,0.6379,0.4646,0.653,0.5114,0.5586,0.2756,0.9135,0.2992,0.6005,0.6953,0.395,0.8953,-0.3377,0.2906,0.8109,0.433,0.3936,0.8094,-0.5658,0.1572,0.3302,0.9119,0.2437,0.4666,0.5141,0.7197,0.8617,-0.0395,0.5059,0.9692,0.0315,0.2443,0.3392,0.8993,0.2761,0.3294,0.7844,0.5255,0.2435,0.8562,0.4556,0.797,0.5761,0.1815,0.2445,0.9624,0.1183,0.1968,0.9605,0.1968,0.3606,0.8389,0.4077,0.5745,0.8185,0.0079,0.4186,0.8767,0.2369,0.2827,0.958,0.0471,0.0394,0.9854,0.1655,0.2363,0.9136,0.3308,0.2531,0.9648,0.0712,0.1811,0.9527,0.2441,0.2995,0.9457,0.1261,0.2761,0.9467,0.1657,-0.0945,0.9918,0.0866,0.0237,0.9952,0.0948,-0.0629,0.9901,0.1257,0.2843,0.9555,-0.079,-0.1726,0.9805,0.0941,0.2829,0.9588,-0.0236,-0.2444,0.946,0.2129,-0.4162,0.8716,0.2591,-0.6527,0.7471,-0.1258,-0.1415,0.9669,-0.2122,-0.482,0.8692,0.1106,-0.621,0.7782,0.0943,-0.2995,0.9457,-0.1261,-0.3938,0.8743,-0.2836,-0.56,0.8282,0.0237,-0.1579,0.9867,0.0395,-0.1657,0.9073,0.3866,0.1577,0.891,-0.4258,-0.1889,0.968,-0.1653,-0.5436,0.8273,0.1418,0.1971,0.8831,-0.4258,-0.1417,0.976,0.1653,-0.0393,0.9747,0.2201,-0.0946,0.9774,0.1892,-0.1893,0.8992,0.3944,-0.1183,0.9699,-0.2129,0.2756,0.9055,-0.3228,0.3149,0.8897,-0.3307,-0.0316,0.995,-0.0948,-0.434,0.8996,-0.0473,-0.0158,0.9802,0.1976,0.063,0.7869,-0.6138,0.2748,0.7539,-0.5968,0.4017,0.6931,-0.5986,-0.1649,0.5417,-0.8243,-0.221,0.7499,-0.6236,0.173,0.9829,-0.0629,-0.3789,0.9157,0.1342,-0.4413,0.8905,0.1103,-0.2835,0.9294,0.2363,-0.2124,0.9756,0.0551,-0.1652,0.8182,0.5507,-0.3218,0.9262,0.1962,-0.5449,0.7266,0.4186,-0.6199,0.5963,0.51,-0.1971,0.9384,0.2839,-0.1179,0.9829,0.1415,-0.1343,0.9795,0.1501,-0.4587,0.7513,0.4745,-0.2829,0.55,0.7858,-0.2515,0.4794,0.8408,-0.7568,0.3626,0.5439,-0.2989,0.8338,0.4641,-0.4501,0.5607,0.695,-0.5929,0.419,0.6877,-0.5989,-0.1812,0.7801,-0.1105,-0.3,0.9475,-0.496,-0.063,0.866,-0.4573,0.3627,0.812,-0.3553,0.5684,0.7421,-0.1807,0.6915,0.6994,-0.2841,0.8997,0.3315,-0.3397,0.9402,-0.0237,-0.0709,0.6772,0.7324,-0.734,0.6787,0.0237,-0.4552,0.824,0.3374,-0.8439,0.5363,-0.0158,-0.0395,0.9795,0.1975,-0.2355,0.9656,0.1099,-0.6054,0.7469,-0.2752,0.0237,0.956,-0.2923,-0.2918,0.5048,-0.8124,-0.1418,0.4332,-0.8901,-0.3158,0.3,-0.9001,-0.2835,0.2363,-0.9294,-0.5262,0.3063,-0.7933,-0.4562,-0.1258,-0.8809,-0.7321,-0.3779,-0.5668,-0.7389,-0.0865,-0.6682,-0.958,-0.0471,-0.2827,-0.875,0.0552,-0.4809,-0.929,-0.3228,-0.1811,-0.9919,-0.0472,0.1181,-0.9128,-0.1731,0.3698,-0.9925,-0.0315,0.1182,-0.9618,-0.1813,-0.205,-0.8008,0.4946,-0.3376,-0.8506,0.0788,0.5198,-0.813,0.442,0.3789,-0.8664,0.4962,-0.0551,-0.953,0.2757,-0.126,-0.8892,-0.4092,0.2046,-0.8736,0.1889,-0.4486,-0.6062,0.7952,-0.0157,-0.6062,0.6456,0.4645,-0.9452,0.323,-0.0473,-0.7622,0.5422,0.3536,-0.9758,-0.1889,-0.1102,-0.8585,0.3465,0.378,-0.7864,0.5741,0.2281,-0.9786,0.1736,-0.1105,-0.8255,0.5346,0.1808,-0.5983,0.6691,-0.4408,-0.7054,0.6192,-0.3449,-0.7099,0.6784,0.1893,-0.8951,0.4004,-0.1963,-0.9614,0.2522,-0.1103,-0.9596,-0.2517,-0.1258,-0.9642,0.1186,-0.2371,-0.9073,-0.3866,-0.1657,-0.9772,0.1103,-0.1813,-0.9878,-0.079,-0.1343,-0.9771,0.134,0.1655,-0.9597,0.2675,0.0865,-0.991,0.1337,-0.0079,-0.8664,-0.3072,0.3938,-0.9689,-0.1497,0.1969,-0.8519,0.418,0.3155,-0.8176,0.5582,0.1415,-0.7731,-0.0631,0.6311,-0.8235,0.5647,0.0549,-0.8296,0.4978,0.2528,-0.6934,0.717,0.0709,-0.5688,0.8216,0.0395,-0.5895,0.7938,0.1493,-0.3161,0.9403,0.1264,-0.522,0.8068,0.2768,-0.4408,0.8973,0.0236,-0.1104,0.9934,-0.0315,-0.639,0.7494,0.1735,-0.6539,0.7564,0.0158,-0.3553,0.9239,0.1421,-0.6063,0.7953,0,-0.6063,0.7795,-0.1575,-0.2355,0.9656,0.1099,-0.2511,0.9495,-0.1883,-0.8746,0.3467,0.3388,-0.9534,0.2837,0.1024,-0.9957,-0.0474,0.079,-0.6519,-0.7383,0.1728,-0.7073,-0.6995,0.1022,-0.8571,-0.5033,-0.1101,-0.835,-0.2206,0.5041,-0.5349,0.409,0.7394,-0.981,-0.1648,-0.102,-0.4331,0.874,0.2205,-0.2449,0.9401,0.237,-0.9393,0.3157,0.1342,-0.892,0.442,-0.0947,-0.9714,0.229,0.0632,-0.9152,0.3708,0.1578,-0.7011,0.512,0.4963,-0.9737,-0.1571,0.1649,-0.6941,-0.4102,0.5916,-0.7149,-0.6206,0.3221,-0.5482,-0.4621,0.6971,-0.221,0.0947,0.9707,-0.1343,-0.6084,0.7822,-0.2517,-0.4011,0.8808,-0.1412,-0.5724,0.8077,-0.3375,-0.2669,0.9027,-0.3395,0.0474,0.9394,-0.3386,0.0866,0.9369,0.2442,0.2758,0.9297,-0.126,0.5826,0.803,0.1963,-0.1178,0.9735,-0.315,0.874,0.3701,-0.4638,0.3931,0.794,-0.6398,0.5924,0.4897,-0.6853,-0.1969,0.7011,-0.3072,-0.8349,0.4568,-0.4107,-0.7741,0.4818,-0.1102,-0.7557,0.6455,-0.3868,-0.4895,0.7815,-0.6134,0.4561,0.6448,-0.0079,0.998,-0.0629,-0.3715,0.6798,0.6324,-0.457,0.4806,0.7485,-0.3695,0.9276,0.055,-0.1887,0.9513,0.2437,-0.0315,0.9673,0.2517,-0.2128,0.9771,-0.0079,-0.4267,0.9009,0.079,-0.1574,0.7476,0.6453,0.0315,0.7633,0.6453,-0.5423,0.621,0.5659,0.0314,-0.1336,0.9905,-0.0632,0.0632,0.996,-0.6296,0.0944,0.7712,0.0315,-0.4089,0.9121,-0.2047,-0.7558,0.622,-0.639,-0.1341,0.7574,-0.6904,0.4315,0.5806,-0.7056,0.6429,0.2979,-0.3152,-0.5044,0.8039,-0.2294,-0.3244,0.9177,-0.5209,-0.4735,0.7103,-0.5667,-0.7792,0.2676,-0.9374,-0.2127,0.2757,-0.6358,-0.0628,0.7693,-0.8436,-0.41,0.3469,-0.9492,0.3138,-0.0235,-0.4413,-0.26,0.8589,-0.5183,-0.4319,0.7381,-0.4969,0.1183,0.8597,-0.371,0.4341,0.8209,-0.1887,-0.2437,0.9513,0.1808,0.8098,0.5582,0.0549,0.2587,0.9644,0.0237,0.8675,0.4968,-0.063,0.9299,0.3625,-0.071,0.9228,0.3786,-0.1254,0.4468,0.8858,0.2441,0.6535,0.7165,0.2844,0.1422,0.9481,0.3867,0.4499,0.805,0.4258,-0.1577,0.891,-0.1498,-0.2287,0.9619,0.0315,-0.1809,0.983,0.0237,0.1656,0.9859,-0.1022,0.6291,0.7706,-0.1102,0.9526,0.2834,0.1811,0.2992,0.9369,0.3391,0.5363,0.7729,-0.8265,0.3778,0.4172,0.4157,0.2039,0.8863,-0.784,-0.3088,0.5385,-0.2912,-0.2597,0.9207,-0.0315,0.606,0.7949,0.1573,0.3776,0.9125,0.6488,0.0475,0.7595,0.0079,-0.2128,0.9771,-0.4652,0.3864,0.7964,0,0.1733,0.9849,-0.5507,0.6058,0.5743,-0.2672,0.9508,0.1571,-0.4728,0.851,0.2285,-0.292,0.797,0.5287,-0.4957,0.8656,-0.0708,-0.3478,0.751,0.5613,-0.4249,0.9049,0.0236,-0.071,0.9943,-0.0789,-0.1104,0.5836,0.8045,-0.2357,0.9112,-0.3378,-0.5564,0.7523,0.3527,-0.4962,0.8507,-0.1733,0.0157,0.8018,0.5974,-0.2842,0.9157,0.2842,-0.4959,0.858,0.1338,-0.4948,0.8639,0.0942,-0.4884,0.8666,0.1024,-0.4721,0.8812,-0.0236,-0.4182,0.8995,-0.1263,0.5122,0.3231,0.7958,0.448,-0.2279,0.8645,0.4018,0.3387,0.8508,0.3482,-0.1899,0.918,0.5908,-0.3702,0.7168,0.1496,0.5983,0.7872,0.6596,0.3298,0.6753,0.6617,-0.1182,0.7404,0.7696,0.1806,0.6125,0.7199,0.6329,0.2848,-0.2285,0.9534,-0.197,-0.2514,0.9663,0.055,0.4322,-0.1965,0.8801,0.8369,0.3,0.4579,0.4654,-0.0552,0.8834,0.7889,0.5917,0.1657,0.314,0.8007,-0.5102,0.3771,0.5264,0.7621,0.7148,0.5499,0.432,0.2369,0.9714,0.0158,0.794,0.3931,-0.4638,-0.1657,0.9467,0.2761,0.1815,0.9706,-0.1578,0.1884,0.8086,-0.5574,0.2524,0.844,-0.4733,0.3396,0.9161,0.2132,0.7789,0.2124,-0.5901,0.2212,0.8609,-0.4581,0.6505,0.6505,-0.3919,0.3316,0.8291,-0.4501,0.2676,0.5667,-0.7792,0.9333,0.3559,0.0475,0.1733,0.9848,-0.0079,0.771,0.2911,0.5664,0.5734,0.8169,0.0628,0.766,0.0632,0.6397,0.2994,0.7092,-0.6383,0.2678,0.8112,-0.5198,0.2048,0.8192,-0.5356,0.3146,0.7787,-0.5428,0.3465,0.9057,-0.2441,0.1493,0.6206,-0.7698,-0.1338,0.9369,-0.3228,0.5201,0.6383,-0.5674,0.0157,0.9517,0.3067,-0.0711,0.9561,0.2844,-0.0157,0.9996,0.0236,0.5208,0.8443,0.1263,0.0869,0.9957,-0.0316,-0.387,0.766,-0.5133,0.6596,0.7382,0.1414,0.9876,0.1027,0.1185,0.983,-0.0315,0.1809,0.5843,0.7659,0.2684,0.1026,0.9947,-0.0079,0.4953,0.7862,-0.3695,0.7854,0.5026,-0.3613,0.4574,0.8833,0.1025,0.8427,0.5041,0.189,0.7251,0.5754,0.3783,0.5894,0.7702,0.2436,0.9205,0.3855,0.0629,0.9876,0.1027,0.1185,0.4866,0.8634,-0.1334,0.9661,-0.0864,0.2435,0.7903,0.3082,0.5295,0.866,-0.2362,0.4408,0.4666,0.7988,0.3796,0.0707,0.9747,0.2122,0.6845,0.5035,0.5272,0.8208,-0.5604,0.1105,-0.6935,0.6226,-0.3625,-0.3621,0.5668,-0.74,-0.5983,0.6691,-0.4408,-0.671,0.3316,-0.6631,-0.8736,0.1889,-0.4486,-0.7262,-0.
20316,-0.6867,-0.8247,-0.3456,-0.4477,-0.9073,-0.3866,-0.1657,-0.8846,-0.2054,-0.4186,-0.8136,-0.4661,-0.3476,-0.8731,0.0865,-0.4798,-0.7222,0.3218,-0.6123,-0.7013,0.2443,-0.6697,-0.7254,-0.1183,-0.6781,-0.6047,0.1728,-0.7775,-0.5669,0.4331,-0.7008,-0.5204,-0.0631,-0.8516,-0.4713,-0.1335,-0.8718,-0.4717,0.1258,-0.8727,-0.2527,0.4264,-0.8685,-0.3388,0.3467,-0.8746,-0.2761,0.639,-0.7179,-0.3384,0.4643,-0.8185,-0.2825,-0.0628,-0.9572,-0.26,0.4096,-0.8744,-0.2993,0.0473,-0.953,-0.6237,0.4263,-0.6552,-0.6305,0.134,-0.7645,-0.8932,0.079,-0.4426,-0.873,0.2989,-0.3854,-0.1178,0.0786,-0.9899,-0.612,0.1491,-0.7767,-0.4876,0.873,0,0.2758,0.2442,-0.9297,-0.6078,0.4815,-0.6315,-0.1025,0.4417,-0.8913,0.3701,0.315,-0.874,-0.1177,0.8001,-0.5883,0.2359,0.6213,-0.7472,-0.5752,0.8116,0.1024,-0.3845,0.8788,-0.2825,-0.0236,0.9846,-0.1733,0.244,0.787,-0.5666,0.1965,0.6446,-0.7389,0.2117,0.7292,-0.6508,0.1264,0.9479,-0.2923,0.173,0.8729,-0.4561,0.4263,0.3237,-0.8447,0.4715,-0.055,-0.8801,0.3708,0.1026,-0.923,0.4237,0.2197,-0.8788,0.4265,0.0869,-0.9003,-0.1258,0.4247,-0.8966,-0.4389,0.823,-0.3606,0.1102,0.4095,-0.9056,-0.3541,0.5823,-0.7318,-0.653,0.5586,-0.5114,0.2359,0.7784,-0.5818,0.1577,0.7966,-0.5836,0.2918,0.347,-0.8913,-0.0236,0.7224,-0.691,-0.0236,0.9989,-0.0393,0.6161,0.2843,-0.7346,0.5125,0.8516,-0.1104,0.2128,0.9221,-0.3231,0.1973,0.9075,-0.3709,0.2128,0.9771,0.0079,0.1264,0.9874,0.0948,-0.0079,0.8284,-0.5601,0.1654,0.8821,-0.4411,-0.1653,0.9837,-0.0708,-0.0079,0.7637,-0.6456,0.2448,0.8369,-0.4895,-0.1103,0.9452,-0.3072,-0.3549,0.9228,0.1499,0.1262,0.9858,-0.1104,-0.1651,0.9749,0.1494,-0.2052,0.9786,0.0158,-0.3609,0.9179,0.1648,-0.3162,0.9487,0,-0.4112,0.9094,-0.0633,0.3629,0.8679,-0.3393,0.0472,0.976,-0.2125,0.3627,0.7885,-0.4967,-0.3459,0.9276,0.1415,-0.3632,0.9317,0,-0.2045,0.9438,0.2596,0,0.9096,0.4156,0.237,0.8689,0.4345,0.3536,0.8722,-0.3379,0.5655,0.8011,0.1963,0.5502,0.7703,-0.3223,-0.3862,0.9221,0.0236,-0.3453,0.9338,0.0942,0.653,0.6215,-0.4327,0.7584,0.5609,-0.3318,0.6733,0.5307,-0.5149,0.654,0.2837,-0.7013,0.7645,0.6305,-0.134,0.6831,0.7302,0.0157,0.7693,0.573,-0.2826,0.4705,0.8782,-0.0863,0.6157,0.7736,-0.15,0.6671,0.7142,-0.2119,0.7996,0.486,-0.3528,0.8817,0.2204,-0.4172,0.8112,0.252,-0.5277,0.8642,0.3928,-0.3143,0.8874,0.1806,-0.4241,0.8753,0.1971,-0.4416,0.7909,0.1503,-0.5932,0.6471,0.3314,-0.6866,0.6899,0.0627,-0.7212,0.6073,0.3865,-0.6941,0.8593,0.2444,-0.4493,0.9314,-0.15,-0.3315,0.9047,-0.4248,-0.0315,0.9899,-0.0079,-0.1414,0.9891,0.1334,-0.0628,0.9721,-0.166,0.166,0.8897,0.4409,0.1181,0.8639,0.4948,-0.0942,0.6055,0.3932,0.692,0.6773,0.7088,-0.1969,0.7723,0.0788,0.6304,0.9375,0.3466,-0.0315,0.8788,0.4708,0.0785,0.3382,0.5821,0.7394,0.3785,0.9147,0.1419,0.1731,0.7158,0.6765,0.2128,0.8118,0.5438,0.0157,0.8184,0.5744,0.2843,0.9398,0.1895,0.5256,0.4628,0.7138,-0.0236,0.7635,0.6454,0.5422,0.7622,0.3536,0.7154,0.228,0.6604,0.5185,0.2985,0.8013,0.0079,0.0393,0.9992,0.2756,-0.0315,0.9607,0.559,0.7637,0.3228,0.645,0.7158,0.2675,0.4729,0.7881,0.3941,0.5207,0.3787,0.7652,0.6545,0.2129,0.7255,0.7108,0.0237,0.7029,0.4555,0.6675,0.589,0.5603,0.4261,0.7102,0.835,0.126,0.5356,0.7736,-0.15,0.6157,0.378,0.8585,0.3465,0.7265,0.687,0.0158,0.3239,0.711,0.6241,0.268,0.7726,0.5755,0.5423,0.3851,0.7467,0.5662,0.5033,0.6527,0.4795,0.8725,-0.0943,0.7501,0.5527,0.3632,0.3393,0.7181,0.6076,0.5212,0.3238,0.7897,0.4947,0.4711,0.7303,0.2983,0.9498,-0.0942,0.1655,0.7647,0.6228,0.2919,0.5522,0.781,0.2603,0.7809,0.5679,0.3299,0.2985,0.8956,0.1416,0.7078,0.6921,0.4947,0.4947,0.7145,-0.0392,0.7447,0.6663,0.0786,0.8414,0.5347,-0.0157,0.8344,0.551,0.063,0.8267,0.559,0.0947,0.7497,0.655,-0.0948,0.7348,0.6716,-0.1103,0.8743,0.4726,-0.055,0.6446,0.7625,0.3155,0.2209,0.9229,-0.0474,0.6317,0.7738,-0.4728,0.7801,0.4098,0.3695,0.629,0.684,0.2913,0.3307,0.8976,-0.1263,0.5683,0.813,-0.0235,0.926,0.3767,-0.0553,0.64,0.7664,0.1495,0.9835,0.1023,-0.1258,0.4562,0.8809,0.0236,0.9986,0.0472,0.2752,0.9593,-0.0629,0.0471,0.9744,-0.22,0.2047,0.8658,0.4565,0.5597,0.8277,0.0394,0.0394,0.8582,0.5118,0.0869,0.9954,-0.0395,-0.1339,0.9848,0.1103,0.6617,0.638,0.3938,0.5662,0.7156,0.4089,0.7393,0.6528,0.1652,0.3239,0.6241,0.711,0.3157,0.9077,0.2763,0.4014,0.8657,0.2991,0.2829,0.9588,-0.
20236,0.4722,0.8814,-0.0157,0.2757,0.9374,0.2127,-0.1887,0.8964,0.401,0.5483,0.7754,0.3133,0.6854,0.7247,0.0709,0.1735,0.9777,0.1183,0.11,0.9743,0.1964,0.4107,0.8688,0.2764,-0.0235,0.8552,0.5178,-0.4573,0.8672,0.1971,-0.4028,0.8056,0.4344,-0.5743,0.7946,0.1967,-0.5285,0.6705,0.5206,-0.2281,0.9595,0.1652,-0.2673,0.8489,0.4559,-0.3152,0.7487,0.5832,-0.4645,0.6062,0.6456,0.2358,0.8409,0.4872,-0.0947,0.9864,-0.1342,-0.4173,0.4802,0.7715,-0.3143,0.7623,0.5658,-0.0395,0.9479,0.316,-0.2756,0.433,0.8582,0.047,0.9011,-0.431,-0.0866,0.9679,0.2361,-0.6385,0.4178,0.6464,-0.2673,0.8489,0.4559,-0.622,0.7637,0.1732,-0.4724,0.6614,0.5826,0.0236,0.2517,0.9675,-0.1808,0.6211,0.7626,-0.4014,0.4408,0.8029,-0.3937,0.63,0.6694,-0.4481,0.5031,0.739,-0.3787,0.5207,0.7652,-0.5179,0.5257,0.6748,-0.5577,0.6833,0.4713,-0.3951,0.7507,0.5294,-0.6446,0.3852,0.6604,-0.4024,0.7179,0.568,-0.3703,0.7643,0.5279,-0.3848,0.3455,0.8559,-0.3868,0.5683,0.7262,-0.5036,0.6453,0.5744,-0.2908,0.7937,0.5344,-0.1883,0.8394,0.5099,-0.5736,0.3851,0.723,-0.4966,0.8434,0.2049,-0.1264,0.5057,0.8534,-0.4412,0.6539,0.6146,-0.4025,0.9077,0.1184,-0.5122,0.8589,0,-0.0394,0.931,0.3629,-0.2202,0.7943,0.5662,-0.5354,0.8109,-0.2362,-0.1653,0.976,0.1417,-0.134,0.9696,-0.2049,0.1499,0.9861,0.071,-0.2514,0.9586,0.1336,0.1572,0.9823,-0.1022,-0.2206,0.9691,-0.1103,-0.212,0.6124,0.7616,-0.4965,0.7566,0.4256,-0.6843,0.291,0.6686,-0.7719,0.3545,0.5277,-0.6126,0.7147,0.3377,0.1887,0.9749,0.1179,-0.6218,0.7792,-0.0787,-0.1887,0.9355,-0.2987,-0.1099,0.9656,0.2355,-0.2595,0.8336,0.4876,-0.3628,0.7729,0.5205,-0.8779,0.4468,0.1724,-0.8977,0.4016,0.1811,-0.4089,0.7156,0.5662,-0.5438,0.8118,0.2128,-0.52,0.7406,-0.4255,-0.8887,0.4247,-0.173,-0.4946,0.8008,-0.3376,-0.5285,0.6705,0.5206,-0.8206,0.5681,-0.0631,-0.3063,0.9425,0.1335,-0.6223,0.2757,0.7326,-0.5278,0.646,0.5515,-0.1021,0.6835,0.7228,-0.4165,0.2279,0.8801]},{"name":"aUV0","stride":2,"data":[0.78613,0.06885,0.78076,0.04736,0.75879,0.05225,0.77002,0.08643,0.79834,0.10791,0.76807,0.12793,0.81592,0.16699,0.74414,0.07422,0.71387,0.05859,0.729,0.09375,0.69727,0.10645,0.6875,0.06445,0.66357,0.06885,0.63818,0.09521,0.63574,0.06299,0.62109,0.06445,0.60059,0.10693,0.57666,0.06543,0.58008,0.14209,0.54004,0.04346,0.62744,0.12988,0.66895,0.14844,0.60498,0.13965,0.64111,0.17285,0.60498,0.18457,0.69092,0.14355,0.67041,0.17432,0.71729,0.12109,0.74316,0.12744,0.71924,0.15039,0.70508,0.19287,0.61865,0.21826,0.65576,0.21582,0.5918,0.19434,0.6875,0.20361,0.7124,0.22461,0.73486,0.20215,0.74023,0.16602,0.75439,0.14844,0.75488,0.20312,0.77295,0.19824,0.74951,0.21973,0.72314,0.2417,0.67139,0.23975,0.80176,0.22314,0.82227,0.22949,0.76709,0.22363,0.75391,0.24854,0.79053,0.23877,0.80127,0.24609,0.76807,0.26855,0.63916,0.229,0.6001,0.23633,0.63281,0.25049,0.74072,0.27588,0.82129,0.26318,0.8374,0.26611,0.82227,0.29199,0.83984,0.29053,0.80225,0.28223,0.78418,0.27881,0.80322,0.31201,0.82178,0.33301,0.76367,0.2793,0.7749,0.30518,0.75195,0.30322,0.84375,0.33936,0.85547,0.29932,0.89697,0.34766,0.86426,0.37012,0.92676,0.38135,0.78711,0.3291,0.83154,0.36279,0.79785,0.34326,0.78857,0.36426,0.77441,0.33301,0.74561,0.33887,0.83105,0.38477,0.89453,0.39844,0.92773,0.41602,0.96387,0.39941,0.95361,0.42432,0.99023,0.4126,0.96289,0.45996,0.94824,0.45361,0.95703,0.5,0.91553,0.42676,0.87598,0.41992,0.87158,0.40039,0.85986,0.40576,0.93018,0.49756,0.96191,0.52148,0.93213,0.46924,0.84814,0.41162,0.9209,0.53467,0.95312,0.5498,0.91406,0.44482,0.92578,0.5813,0.96045,0.59399,0.93213,0.63428,0.95752,0.64819,0.93018,0.68945,0.9541,0.70264,0.93994,0.70825,0.92383,0.71997,0.93799,0.73438,0.91797,0.73975,0.8999,0.74121,0.90283,0.76428,0.91357,0.70923,0.91699,0.67285,0.87939,0.77625,0.87207,0.81873,0.91406,0.61353,0.91797,0.64819,0.90527,0.56055,0.9043,0.62866,0.89941,0.69141,0.89258,0.73242,0.90869,0.66089,0.89746,0.65747,0.8667,0.66016,0.87842,0.74561,0.87402,0.72046,0.84473,0.72095,0.8623,0.7561,0.88281,0.63379,0.85938,0.70288,0.81445,0.81409,0.79688,0.87549,0.85986,0.85864,0.83643,0.87909,0.88428,0.59058,0.86182,0.6272,0.89209,0.5603,0.87451,0.55322,0.86768,0.58276,0.89404,0.53955,0.89648,0.52222,0.88818,0.52954,0.90039,0.50928,0.91406,0.47754,0.91064,0.45801,0.8877,0.43945,0.88721,0.45703,0.88672,0.48389,0.88184,0.50366,0.88428,0.51611,0.87305,0.521,0.87207,0.44971,0.87451,0.4751,0.87354,0.49951,0.86133,0.44678,0.8623,0.47705,0.85889,0.50903,0.83984,0.47412,0.83984,0.43604,0.83154,0.40869,0.80859,0.3916,0.84473,0.52637,0.81104,0.48877,0.82373,0.45654,0.81445,0.42676,0.79688,0.41113,0.80225,0.44824,0.76025,0.55615,0.76074,0.51074,0.81348,0.54614,0.81689,0.5813,0.77783,0.37109,0.83789,0.63794,0.73047,0.36035,0.84131,0.66675,0.82471,0.70093,0.7749,0.41211,0.74365,0.39551,0.78467,0.43896,0.74951,0.49609,0.74316,0.51367,0.76562,0.43018,0.76709,0.45605,0.75977,0.41553,0.74072,0.47363,0.75098,0.43213,0.74414,0.44482,0.74219,0.42041,0.72266,0.45312,0.72656,0.42871,0.71289,0.43896,0.70996,0.41602,0.71729,0.40137,0.70264,0.41357,0.69189,0.39795,
20.70996,0.38184,0.6792,0.41504,0.70752,0.47998,0.68408,0.47705,0.72949,0.49609,0.74561,0.55005,0.73389,0.55444,0.6582,0.51074,0.6416,0.45361,0.67627,0.45801,0.67236,0.42578,0.7373,0.57422,0.65723,0.44092,0.68018,0.55786,0.71777,0.57544,0.64453,0.55396,0.65576,0.40869,0.64404,0.41748,0.66211,0.39795,0.62402,0.43018,0.63721,0.39844,0.61865,0.40771,0.59375,0.42773,0.63086,0.38135,0.60742,0.38818,0.63184,0.36426,0.59473,0.40186,0.54443,0.39014,0.57764,0.37109,0.60498,0.35889,0.59033,0.44824,0.57031,0.42969,0.5498,0.40332,0.51904,0.41504,0.60254,0.51099,0.55029,0.52222,0.55859,0.47314,0.53467,0.44629,0.48999,0.45654,0.53271,0.48535,0.50537,0.50732,0.4895,0.54297,0.61816,0.57544,0.57715,0.56079,0.646,0.58862,0.55029,0.54834,0.58936,0.60645,0.54541,0.5874,0.56152,0.62231,0.6709,0.61108,0.64795,0.61499,0.69873,0.61182,0.49707,0.57959,0.52783,0.60815,0.61426,0.63159,0.5835,0.62964,0.65771,0.63086,0.62744,0.65332,0.68164,0.6333,0.60254,0.64307,0.67334,0.66602,0.56934,0.64697,0.53271,0.62964,0.58936,0.65649,0.62939,0.67993,0.66504,0.7019,0.60986,0.67188,0.50928,0.62622,0.51855,0.65894,0.48682,0.59912,0.45044,0.57568,0.70117,0.75452,0.66064,0.73267,0.62598,0.74561,0.57422,0.68481,0.70312,0.74048,0.55713,0.67065,0.69092,0.7926,0.65234,0.79443,0.646,0.81335,0.69531,0.81384,0.72021,0.76868,0.61963,0.76697,0.58838,0.7373,0.55859,0.69824,0.5083,0.68188,0.5166,0.70874,0.4873,0.65991,0.48999,0.63013,0.44727,0.60791,0.45776,0.65161,0.59082,0.75464,0.54443,0.76489,0.61475,0.78271,0.47754,0.69653,0.46411,0.68018,0.41455,0.68286,0.42944,0.65063,0.49487,0.71411,0.4458,0.70996,0.4353,0.60718,0.41675,0.63647,0.39551,0.66943,0.40527,0.71606,0.4187,0.70361,0.46289,0.75452,0.46924,0.73999,0.49365,0.74609,0.52148,0.75342,0.42798,0.74707,0.47852,0.76331,0.52539,0.77612,0.49658,0.79102,0.57373,0.80371,0.61719,0.81311,0.62207,0.83789,0.63477,0.81689,0.64697,0.83215,0.66016,0.83374,0.63721,0.88141,0.68555,0.86133,0.61523,0.88788,0.60205,0.91644,0.56885,0.91785,0.55762,0.93967,0.53613,0.9306,0.53613,0.9494,0.51416,0.95749,0.51562,0.92285,0.54248,0.90619,0.53467,0.87195,0.5708,0.90588,0.6001,0.8797,0.56445,0.88739,0.58252,0.87024,0.60449,0.854,0.58594,0.84619,0.49268,0.94595,0.49414,0.97356,0.58447,0.82556,0.54492,0.80615,0.56201,0.83508,0.51318,0.79346,0.53564,0.84583,0.52344,0.82434,0.49438,0.81104,0.49976,0.84473,0.46997,0.96317,0.48608,0.98619,0.47729,0.9996,0.4519,0.97343,0.4502,0.93893,0.42285,0.93732,0.46948,0.92511,0.4436,0.90942,0.46875,0.89984,0.50195,0.8866,0.48682,0.89447,0.42725,0.89349,0.39795,
20.91962,0.47729,0.83191,0.44336,0.8739,0.45776,0.86987,0.40039,0.87891,0.37451,0.88123,0.41748,0.87183,0.3894,0.86072,0.34863,0.84192,0.30347,0.82129,0.30273,0.79163,0.24817,0.77039,0.27393,0.75745,0.2323,0.73364,0.21313,0.67065,0.22656,0.65869,0.21021,0.71094,0.19897,0.68262,0.15564,0.61646,0.14282,0.63647,0.12305,0.63477,0.17969,0.63013,0.23486,0.61157,0.3291,0.7926,0.37573,0.84033,0.39941,0.85388,0.41064,0.84912,0.39868,0.83093,0.42773,0.83093,0.36475,0.7915,0.3335,0.77051,0.45215,0.83728,0.29761,0.75684,0.26587,0.69751,0.45386,0.81494,0.48242,0.77844,0.43262,0.79395,0.45605,0.7771,0.43311,0.7677,0.42285,0.80872,0.4126,0.78564,0.40918,0.81372,0.39087,0.78857,0.41626,0.75122,0.39453,0.74707,0.41138,0.75793,0.40186,0.77246,0.38501,0.76709,0.37158,0.76404,0.34937,0.76318,0.35742,0.73999,0.33569,0.73291,0.36426,0.73438,0.31152,0.72192,0.35156,0.72119,0.33057,0.70898,0.35913,0.71265,0.37476,0.71558,0.39185,0.71655,0.38818,0.69214,0.36938,0.67969,0.34399,0.68652,0.27759,0.66406,0.30298,0.67285,0.30591,0.66333,0.26367,0.68262,0.29346,0.64429,0.26245,0.65112,0.26562,0.62915,0.30249,0.60693,0.31226,0.63574,0.33545,0.65649,0.33984,0.61963,0.36353,0.65918,0.35205,0.64624,0.36377,0.61401,0.37769,0.64819,0.38818,0.62817,0.35132,0.6228,0.3457,0.59766,0.32031,0.57568,0.40283,0.63013,0.4209,0.604,0.39404,0.60645,0.37622,0.59741,0.36694,0.56494,0.39502,0.58984,0.36182,0.58643,0.34668,0.57104,0.34155,0.54028,0.42505,0.58374,0.39819,0.55688,0.43579,0.573,0.41968,0.54517,0.44312,0.54956,0.42993,0.53418,0.48047,0.52002,0.47949,0.4917,0.45337,0.50659,0.43945,0.50513,0.47314,0.46973,0.46362,0.45605,0.45459,0.47949,0.43628,0.47412,0.42432,0.49951,0.41821,0.52148,0.40649,0.52954,0.40625,0.50562,0.39404,0.52783,0.41431,0.47705,0.3999,0.4873,0.38135,0.54688,0.40942,0.45801,0.35815,0.54272,0.36255,0.52661,0.38403,0.52466,0.38159,0.49805,0.37573,0.4751,0.35864,0.5,0.33472,0.51392,0.35327,0.48584,0.31689,0.55957,0.29932,0.57739,0.31519,0.51733,0.34155,0.48975,0.33789,0.47021,0.36133,0.46826,0.30151,0.5083,0.2771,0.54248,0.38892,0.45312,0.25806,0.57788,0.37671,0.44824,0.27661,0.49316,0.42627,0.4292,0.41357,0.41992,0.45679,0.3999,0.37939,0.41455,0.39551,0.32861,0.35571,0.39551,0.24683,0.44678,0.4314,0.44141,0.44531,0.44043,0.46118,0.4165,0.45605,0.44434,0.47412,0.42529,0.47534,0.40381,0.48511,0.43604,0.49194,0.41113,0.52051,0.39893,0.49414,0.39258,0.47363,0.3833,0.42822,0.34326,0.52246,0.38867,0.5127,0.38525,0.54199,0.37695,0.5752,0.34424,0.5,0.37744,0.5459,0.36279,0.59619,0.34326,0.53516,0.354,0.62598,0.34766,0.54736,0.34766,0.55859,0.34375,0.52148,0.33398,0.50537,0.30713,0.5459,0.32959,0.56982,0.32471,0.53174,0.31104,0.55518,0.31787,0.55078,0.28906,0.5791,0.30127,0.58984,0.31836,0.62061,0.28418,0.59961,0.32666,0.64014,0.32764,0.61572,0.31592,0.55176,0.18701,0.55322,0.21191,0.50244,0.2251,0.57275,0.25586,0.62695,0.33984,0.59082,0.28125,0.60303,0.26807,0.56396,0.22217,0.6499,0.34229,0.58203,0.21973,0.57471,0.19678,0.5708,0.17188,0.65967,0.27734,0.66406,0.25684,0.65088,0.29199,0.64453,0.31299,0.67285,0.3208,0.68896,0.29736,0.68018,0.26953,0.70947,0.25488,0.72559,0.27588,0.7124,0.29297,0.7373,0.31104,0.70801,0.31592,0.71729,0.3418,0.69287,0.3252,0.69922,0.35352,0.67676,0.34082,0.68604,0.37256,0.68506,0.35547,0.66992,0.36572,0.66113,0.33008,0.6665,0.34033,0.64648,0.34912,0.63623,0.35938,0.82373,0.95441,0.82178,0.93585,0.81152,0.94379,0.81445,0.92236,0.7998,0.93341,0.83398,0.91107,0.7959,0.92432,0.77539,0.92554,0.81152,0.90497,0.79492,0.8999,0.75732,0.91071,0.77295,0.88422,0.76172,0.87292,0.74023,0.89954,0.78271,0.84253,0.77881,0.8136,0.73047,0.86975,0.70898,0.88361,0.73633,0.83374,0.73633,0.81042,0.74219,0.78333,0.77051,0.76892,0.73926,0.76038,0.81592,0.79065,0.80713,0.7655,0.82324,0.7511,0.79541,0.75256,0.8125,0.73608,0.78516,0.74414,0.74561,0.73779,0.82129,0.7168,0.79199,0.72339,0.72852,0.71216,0.7959,0.70288,0.75537,0.71875,0.78613,0.70972,0.80029,0.6687,0.75049,0.70044,0.76416,0.68701,0.69385,0.66162,0.7168,0.6709,0.70264,0.63306,0.74365,0.67529,0.72705,0.66333,0.71436,0.625,0.7207,0.6062,0.74365,0.6001,0.75732,0.58154,0.77881,0.59131,0.76807,0.60278,0.81152,0.62329,0.78613,0.62256,0.7627,0.61328,0.74268,0.6106,0.7
27734,0.6626,0.73584,0.6228,0.75146,0.62061,0.77393,0.63599,0.76562,0.66406,0.73047,0.63892,0.74609,0.63672,0.76074,0.6394,0.73926,0.65796,0.75488,0.66406,0.47021,0.34326,0.49463,0.26904,0.45288,0.3335,0.47729,0.28955,0.46167,0.26855,0.43481,0.31543,0.4104,0.30078,0.44971,0.29395,0.46436,0.21484,0.42432,0.2749,0.37598,0.29736,0.41504,0.22607,0.38843,0.2583,0.37158,0.23535,0.32788,0.26221,0.30664,0.33984,0.27905,0.3667,0.448,0.18799,0.39966,0.20605,0.4939,0.1748,0.25269,0.33643,0.31104,0.29346,0.27148,0.28662,0.3418,0.22998,0.38989,0.18994,0.42041,0.17285,0.41577,0.14062,0.44141,0.13477,0.21533,0.40381,0.20642,0.34326,0.46753,0.14111,0.44995,0.12158,0.521,0.16553,0.55371,0.1582,0.56104,0.13574,0.54932,0.09131,0.50928,0.05273,0.52637,0.03369,0.50488,0.03564,0.49146,0.02637,0.46973,0.04492,0.46509,0.0293,0.49023,0.13281,0.51562,0.12256,0.53174,0.12305,0.54541,0.11914,0.52441,0.09229,0.46875,0.11816,0.50195,0.09277,0.48877,0.10254,0.46826,0.09424,0.49585,0.0708,0.47046,0.07324,0.46387,0.06152,0.44897,0.09131,0.43018,0.07471,0.42529,0.10254,0.42871,0.05762,0.40088,0.10059,0.4209,0.04346,0.39087,0.07227,0.41602,0.02539,0.4104,0.00977,0.38696,0.03125,0.38794,0.00391,0.34692,0.02686,0.35986,0.01123,0.30542,0.01465,0.40674,0.04932,0.38379,0.0542,0.32056,0.02637,0.27905,0.02051,0.30273,0.04688,0.35034,0.05225,0.32812,0.04541,0.33838,0.07471,0.23511,0.06396,0.23621,0.03564,0.2052,0.04639,0.35815,0.09277,0.33521,0.10986,0.31958,0.09424,0.39673,0.12793,0.31274,0.12695,0.30005,0.09912,0.25122,0.08496,0.19897,0.0791,0.17053,0.05371,0.39014,0.17529,0.35767,0.20312,0.25928,0.11035,0.20752,0.0918,0.15308,0.07275,0.13684,0.04395,0.31714,0.15527,0.21582,0.11182,0.26733,0.1416,0.16492,0.10254,0.30542,0.18311,0.22095,0.15039,0.17371,0.12305,0.17883,0.13818,0.31763,0.22168,0.19958,0.16748,0.26807,0.26074,0.26758,0.2085,0.23828,0.24658,0.24658,0.28076,0.20264,0.20068,0.18433,0.2749,0.20288,0.31738,0.16028,0.2207,0.16101,0.17627,0.18164,0.31104,0.18872,0.34961,0.1532,0.15381,0.14319,0.19189,0.13831,0.23047,0.12622,0.20898,0.14172,0.2959,0.1571,0.13232,0.13196,0.27148,0.13806,0.16357,0.14075,0.14795,0.14246,0.11084,0.13525,0.18701,0.13672,0.09424,0.11871,0.06885,0.12048,0.1665,0.11951,0.11133,0.13452,0.05859,0.08093,0.05469,0.0683,0.05811,0.10669,0.08984,0.0896,0.07959,0.09241,0.11377,0.12256,0.14062,0.08148,0.0918,0.05917,0.09619,0.06903,0.13135,0.05087,0.07471,0.02827,0.0791,0.09637,0.125,0.02803,0.10596,0.00845,0.08203,0.0007,0.09912,0.03137,0.13281,0.00183,0.12939,0.02408,0.15381,0.04327,0.17285,0.09564,0.14258,0.07263,0.1626,0.08801,0.18262,0.05981,0.20068,0.1012,0.16211,0.12061,0.18555,0.06818,0.22168,0.07806,0.28564,0.10339,0.21094,0.08575,0.21973,0.11639,0.23145,0.10132,0.229,0.0932,0.25342,0.11908,0.25488,0.10333,0.26123,0.08148,0.26562,0.11786,0.28223,0.10138,0.28271,0.10864,0.31006,0.08209,0.30518,0.09515,0.32959,0.0899,0.34912,0.1377,0.32031,0.1261,0.3667,0.09277,0.37695,0.17505,0.35889,0.12854,0.39551,0.09973,0.42334,0.12256,0.45117,0.11102,0.45801,0.11609,0.49854,0.10095,0.4834,0.10669,0.50439,0.16003,0.38721,0.19275,0.40625,0.14355,0.41699,0.17432,0.4126,0.17383,0.44971,0.21033,0.45361,0.1214,0.52759,0.09509,0.53711,0.23914,0.48633,0.25537,0.52173,0.21716,0.50635,0.2345,0.55273,0.17969,0.4873,0.198,0.52026,0.18872,0.57397,0.10419,0.55518,0.09021,0.55859,0.09369,0.57495,0.10516,0.58862,0.09906,0.60962,0.1217,0.57227,0.11884,0.60059,0.13806,0.5957,0.13855,0.56714,0.17517,0.53979,0.13879,0.51855,0.17053,0.59521,0.15796,0.58521,0.16248,0.56543,0.17529,0.57251,0.18787,0.59644,0.17993,0.60693,0.19458,0.61108,0.16296,0.51318,0.14209,0.50244,0.15845,0.48193,0.12952,0.48535,0.14856,0.46289,0.15369,0.44141,0.13965,0.45068]},{"name":"aUV1","stride":2,"data":[0.78174,0.0752,0.77637,0.0542,0.75488,0.05908,0.76611,0.09277,0.79395,0.11377,0.76416,0.1333,0.81104,0.17188,0.74023,0.08057,0.71045,0.06543,0.72559,0.1001,0.69385,0.1123,0.68457,0.0708,0.66113,0.0752,0.63574,0.10107,0.63379,0.06982,0.61914,0.0708,0.59912,0.11279,0.5752,0.07227,0.5791,0.14746,0.53955,0.05029,0.62549,0.13574,0.6665,0.15381,0.60352,0.14502,0.63867,0.17822,0.60352,0.18945,0.68799,0.14893,0.66797,0.1792,0.71436,0.12646,0.73975,0.1333,0.71582,0.15527,0.70215,0.19775,0.6167,0.22217,0.65332,0.22021,0.59033,0.19922,0.68457,0.20801,0.70898,0.22852,0.73096,0.20654,0.73633,0.17139,0.75049,0.15381,0.75098,0.20752,0.76855,0.20264,0.74561,0.22363,0.71973,0.24561,0.66846,0.24365,0.79688,0.22705,0.81738,0.23389,0.76318,0.22754,0.75,0.25244,0.78613,0.24268,0.79639,0.25,0.76416,0.27197,0.63721,0.2334,0.59863,0.24023,0.63086,0.25391,0.73682,0.2793,0.81641,0.26709,0.83203,0.26953,0.81738,0.29541,0.83496,0.29346,0.79785,0.28564,0.78027,0.28223,0.79883,0.31494,0.81689,0.33545,0.75928,0.28271,0.77051,0.30811,0.74805,0.30615,0.83838,0.3418,0.8501,0.30225,0.89111,0.3501,0.85889,0.37207,0.92041,0.3833,0.78271,0.33203,0.82666,0.36475,0.79297,0.3457,0.78418,0.36621,0.77051,0.33594,0.74219,0.34131,0.82617,0.38623,0.88867,0.3999,0.9209,0.41748,0.95654,0.40088,0.94678,0.42529,0.98291,0.41406,0.95557,0.46094,0.94141,0.4541,0.94971,0.5,0.90918,0.42773,0.87012,0.4209,0.86572,0.40234,0.854,0.40723,0.92383,0.49756,0.95508,0.521,0.92529,0.46973,0.84277,0.41309,0.91455,0.53394,0.94629,0.54907,0.90771,0.4458,0.91895,0.58008,0.95361,0.59277,0.92578,0.63208,0.95068,0.646,0.92334,0.68652,0.94678,0.69946,0.93311,0.70508,0.91748,0.7168,0.93164,0.73096,0.91162,0.73608,0.89404,0.73755,0.89697,0.76025,0.90723,0.70605,0.91064,0.67017,0.87354,0.77197,0.8667,0.81396,0.90771,0.61182,0.91162,0.646,0.89941,0.55981,0.89844,0.62671,0.89355,0.68848,0.88623,0.729,0.90234,0.65845,0.8916,0.65503,0.86133,0.65771,0.87256,0.74194,0.86816,0.71729,0.83984,0.71753,0.85693,0.7522,0.87695,0.63184,0.854,0.69995,0.80957,0.80933,0.79199,0.86987,0.85449,0.85315,0.83105,0.87341,0.87842,0.58936,0.85645,0.62524,0.88623,0.55933,0.86865,0.55225,0.8623,0.58154,0.8877,0.53906,0.89014,0.52197,0.88232,0.52905,0.89404,0.50928,0.90771,0.47803,0.9043,0.45898,0.88184,0.44043,0.88135,0.45752,0.88086,0.48438,0.87598,0.50366,0.87842,0.51587,0.86719,0.52051,0.86621,0.4502,0.86865,0.47559,0.86816,0.49951,0.85547,0.44775,0.85693,0.47754,0.85303,0.50903,0.83496,0.474
261,0.83447,0.43701,0.82666,0.41016,0.80371,0.39307,0.83984,0.52588,0.80615,0.48877,0.81885,0.45703,0.80957,0.42773,0.79248,0.4126,0.79736,0.44922,0.75635,0.55518,0.75635,0.5105,0.80908,0.54541,0.81201,0.58008,0.77393,0.37305,0.83252,0.63574,0.72705,0.3623,0.83594,0.66431,0.81982,0.698,0.77051,0.41357,0.73975,0.39697,0.78076,0.43994,0.74609,0.49609,0.73926,0.51343,0.76123,0.43115,0.76318,0.45654,0.75586,0.4165,0.73682,0.47412,0.74707,0.43311,0.74023,0.4458,0.73828,0.42139,0.71924,0.4541,0.72314,0.42969,0.70947,0.43994,0.70703,0.41699,0.71387,0.40283,0.69971,0.41455,0.68896,0.39941,0.70703,0.3833,0.67676,0.41602,0.7041,0.48047,0.68164,0.47705,0.72607,0.49609,0.74219,0.54907,0.72998,0.55371,0.65576,0.5105,0.63916,0.45459,0.67334,0.45898,0.66992,0.42676,0.73389,0.573,0.65479,0.44189,0.67773,0.55713,0.71436,0.57422,0.64209,0.55298,0.65332,0.41016,0.6416,0.41895,0.65967,0.39941,0.62207,0.43115,0.63477,0.3999,0.6167,0.40918,0.59229,0.42871,0.62891,0.38281,0.60596,0.38965,0.62939,0.36621,0.59326,0.40332,0.54395,0.39209,0.57617,0.37305,0.60303,0.36084,0.58887,0.44922,0.56885,0.43066,0.54932,0.40479,0.51855,0.41602,0.60059,0.51099,0.54932,0.52173,0.55762,0.47363,0.53418,0.44727,0.48999,0.45703,0.53223,0.48584,0.50537,0.50732,0.4895,0.54248,0.61621,0.57422,0.57617,0.55981,0.64404,0.58716,0.5498,0.54761,0.58789,0.60498,0.54492,0.58594,0.56104,0.62061,0.66846,0.60938,0.64551,0.61304,0.6958,0.61011,0.49707,0.57837,0.52734,0.60645,0.6123,0.62964,0.58203,0.62769,0.65527,0.62891,0.62598,0.65112,0.67871,0.63135,0.60107,0.64087,0.6709,0.66333,0.56836,0.64478,0.53223,0.62769,0.58789,0.6543,0.62744,0.67725,0.66211,0.69897,0.6084,0.66919,0.50928,0.62451,0.51807,0.65649,0.48682,0.59766,0.45117,0.57446,0.69775,0.75061,0.6582,0.72925,0.62402,0.74194,0.57324,0.68213,0.7002,0.73682,0.55615,0.66821,0.68799,0.78821,0.65039,0.78992,0.64355,0.80859,0.69189,0.80908,0.7168,0.76465,0.61816,0.76294,0.58691,0.73364,0.55811,0.69531,0.5083,0.6792,0.5166,0.70557,0.48755,0.65747,0.49023,0.62817,0.448,0.6062,0.45825,0.64917,0.58936,0.75073,0.54346,0.76086,0.61328,0.77844,0.47803,0.69336,0.4646,0.67749,0.41602,0.67993,0.43042,0.64844,0.49487,0.71069,0.44653,0.70679,0.43628,0.60571,0.41821,0.63452,0.39722,0.66675,0.40649,0.71289,0.41992,0.70044,0.46362,0.75073,0.46973,0.73633,0.4939,0.74243,0.521,0.74976,0.42896,0.74341,0.47876,0.7594,0.5249,0.77197,0.49683,0.78662,0.57227,0.79907,0.61572,0.80835,0.62012,0.83276,0.63281,0.81213,0.64502,0.82715,0.65771,0.82874,0.63525,0.87561,0.68311,0.85583,0.61377,0.88196,0.60059,0.91016,0.56787,0.9115,0.55664,0.93304,0.53564,0.92407,0.53564,0.9426,0.51367,0.95056,0.51562,0.91644,0.5415,0.90002,0.53418,0.86633,0.56982,0.89972,0.59863,0.87402,0.56348,0.88153,0.58154,0.86462,0.60303,0.84863,0.58447,0.84094,0.49268,0.93921,0.49438,0.9664,0.58301,0.82068,0.54443,0.80151,0.56104,0.83008,0.5127,0.78894,0.53516,0.84058,0.52295,0.81934,0.49438,0.80627,0.49976,0.8396,0.47046,0.95615,0.48633,0.97884,0.47754,0.99203,0.45264,0.96628,0.45093,0.93231,0.42383,0.93073,0.46997,0.9187,0.44458,0.90326,0.46924,0.8938,0.50195,0.88074,0.48706,0.88849,0.42847,0.88751,0.39941,0.91327,0.47754,0.82678,0.44409,0.86829,0.4585,0.86426,0.40186,0.87317,0.37646,0.87543,0.4187,0.86621,0.39111,0.85522,0.35083,0.83667,0.30664,0.81653,0.30566,0.78723,0.25195,0.76624,0.27734,0.75354,0.23633,0.72998,0.21741,0.66797,0.23071,0.65625,0.2146,0.70776,0.20349,0.67993,0.16089,0.61475,0.14819,0.63428,0.12878,0.63281,0.18457,0.62817,0.23889,0.60986,0.33154,0.78821,0.37769,0.83521,0.40088,0.84851,0.41211,0.84387,0.40039,0.82593,0.42871,0.82593,0.3667,0.78711,0.33594,0.76636,0.45288,0.83215,0.30078,0.75293,0.26953,0.69458,0.45459,0.81018,0.48267,0.77429,0.43359,0.78955,0.45679,0.77295,0.43433,0.76367,0.42407,0.80408,0.41382,0.78125,0.41064,0.80896,0.39258,0.78418,0.41772,0.74756,0.396,0.74316,0.4126,0.75403,0.40332,0.76831,0.38672,0.76306,0.37354,0.76001,0.35156,0.75916,0.35962,0.73633,0.33813,0.72925,0.36621,0.73071,0.31445,0.71851,0.35376,0.71777,0.33325,0.70581,0.36133,0.70947,0.37646,0.71216,0.39355,0.71338,0.38989,0.68921,0.37134,0.677,0.34644,0.68359,0.28101,0.66162,0.30591,0.67017,0.30884,0.66089,0.26733,0.67993,0.29663,0.64209,0.26587,0.64893,0.26904,0.6272,0.30566,0.60522,0.31494,0.63379,0.33789,0.6543,0.34229,0.61768,0.36548,0.65674,0.35425,0.64404,0.36572,0.6123,0.37939,0.646,0.38989,0.62622,0.35352,0.62109,0.348
214,0.59595,0.323,0.57446,0.4043,0.62817,0.42212,0.60229,0.39551,0.60474,0.37793,0.59595,0.3689,0.56396,0.39673,0.58862,0.36401,0.58521,0.34888,0.57007,0.34375,0.53955,0.42627,0.58252,0.39966,0.55591,0.43677,0.57178,0.4209,0.54443,0.44385,0.54883,0.43091,0.53369,0.48071,0.51978,0.47998,0.49219,0.4541,0.50635,0.44043,0.50488,0.47363,0.47021,0.46411,0.45654,0.45508,0.47998,0.43726,0.47461,0.42529,0.49951,0.41943,0.52124,0.40796,0.52905,0.40771,0.50562,0.39551,0.52734,0.41553,0.47754,0.40137,0.48779,0.38306,0.54614,0.41064,0.45898,0.36035,0.54199,0.36475,0.52612,0.38574,0.52417,0.3833,0.49805,0.37769,0.47559,0.36084,0.5,0.33716,0.51367,0.35547,0.48633,0.31982,0.55884,0.30225,0.57617,0.31787,0.51709,0.34399,0.49023,0.34033,0.4707,0.36328,0.46875,0.30469,0.5083,0.28027,0.54175,0.39062,0.4541,0.26172,0.5769,0.37866,0.44922,0.28003,0.49365,0.42749,0.43018,0.41479,0.42139,0.45728,0.40186,0.3811,0.41602,0.39722,0.33105,0.35791,0.39697,0.25049,0.44727,0.43237,0.44238,0.44604,0.44141,0.46167,0.41748,0.45679,0.44482,0.47437,0.42627,0.47583,0.40527,0.48535,0.43701,0.49219,0.41211,0.52051,0.40039,0.49414,0.39453,0.47412,0.38477,0.42944,0.3457,0.52246,0.39062,0.5127,0.38672,0.54102,0.37842,0.57422,0.34668,0.5,0.37891,0.54541,0.36475,0.59473,0.3457,0.53467,0.35596,0.62402,0.3501,0.54688,0.3501,0.55762,0.34619,0.521,0.33691,0.50537,0.31006,0.54541,0.33252,0.56885,0.32715,0.53125,0.31396,0.5542,0.3208,0.55029,0.29248,0.57764,0.3042,0.58887,0.3208,0.61865,0.2876,0.59814,0.3291,0.63818,0.33057,0.61377,0.31885,0.55078,0.19189,0.55225,0.21631,0.50244,0.22949,0.57178,0.25928,0.625,0.34229,0.58936,0.28467,0.60156,0.27148,0.56299,0.22656,0.64795,0.34473,0.58057,0.22412,0.57324,0.20117,0.56982,0.17676,0.65723,0.28076,0.66162,0.26025,0.64893,0.29492,0.64209,0.31592,0.67041,0.32324,0.68604,0.30078,0.67725,0.27295,0.70654,0.25879,0.72217,0.2793,0.70898,0.2959,0.7334,0.31396,0.70459,0.31836,0.71387,0.34424,0.68994,0.32812,0.69629,0.35547,0.67383,0.34326,0.68311,0.37451,0.68262,0.35791,0.66748,0.36768,0.65869,0.33252,0.66406,0.34277,0.64453,0.35156,0.63379,0.36182,0.81836,0.94754,0.81689,0.92926,0.80664,0.93707,0.80957,0.91595,0.79541,0.92682,0.82861,0.90485,0.7915,0.91791,0.771,0.91913,0.80664,0.8988,0.79053,0.89386,0.75342,0.90448,0.76855,0.87842,0.75781,0.86719,0.73682,0.89349,0.77832,0.8374,0.7749,0.80884,0.72656,0.86414,0.70605,0.87781,0.73242,0.82874,0.73242,0.80566,0.73828,0.77905,0.7666,0.76489,0.73535,0.75647,0.81104,0.78625,0.80225,0.76147,0.81836,0.74731,0.79102,0.74878,0.80762,0.73242,0.78076,0.74048,0.74219,0.73438,0.81641,0.71338,0.78711,0.71997,0.7251,0.70898,0.7915,0.69971,0.75146,0.71533,0.78174,0.70654,0.7959,0.66602,0.74658,0.69751,0.76025,0.68433,0.69092,0.65918,0.71338,0.66846,0.69922,0.6311,0.74023,0.67261,0.72363,0.66064,0.71094,0.62329,0.71729,0.60449,0.73975,0.59863,0.75342,0.58032,0.77441,0.58984,0.76416,0.60132,0.80713,0.62134,0.78174,0.62061,0.75879,0.61157,0.73926,0.60889,0.77295,0.66016,0.73242,0.62085,0.74756,0.6189,0.77002,0.63403,0.76172,0.66162,0.72705,0.63672,0.74219,0.63477,0.75684,0.63745,0.73584,0.65576,0.75146,0.66162,0.4707,0.3457,0.49463,0.27246,0.45361,0.33594,0.47778,0.29248,0.4624,0.27197,0.43579,0.31787,0.41187,0.3042,0.45044,0.29688,0.46484,0.21875,0.42554,0.27832,0.37793,0.30029,0.41626,0.23047,0.39014,0.26221,0.37354,0.23926,0.33032,0.26562,0.30957,0.34229,0.28247,0.36865,0.44873,0.19287,0.40112,0.21045,0.49414,0.17969,0.25635,0.33887,0.31396,0.29639,0.2749,0.28955,0.34399,0.23389,0.3916,0.19482,0.42163,0.17773,0.41724,0.146,0.44214,0.14014,0.2196,0.40527,0.21094,0.3457,0.46802,0.14648,0.45068,0.12744,0.52051,0.17041,0.55273,0.16357,0.56006,0.14111,0.54883,0.09717,0.50928,0.05957,0.52588,0.04053,0.50488,0.04248,0.49146,0.03369,0.47021,0.05176,0.46558,0.03662,0.49023,0.13867,0.51562,0.12793,0.53125,0.12891,0.54492,0.12451,0.52393,0.09863,0.46899,0.12402,0.50195,0.09912,0.48901,0.1084,0.46875,0.1001,0.49609,0.07764,0.47095,0.08008,0.46436,0.06836,0.44995,0.09766,0.43115,0.08105,0.42651,0.1084,0.42969,0.06396,0.40234,0.10693,0.42212,0.05029,0.39258,0.0791,0.41724,0.03223,0.41162,0.01758,0.38867,0.03809,0.38965,0.01123,0.34912,0.03418,0.36206,0.0185
25,0.30835,0.02246,0.40796,0.05615,0.3855,0.06104,0.32349,0.0332,0.28247,0.02783,0.30566,0.05371,0.35254,0.05908,0.33081,0.05225,0.34082,0.08105,0.23901,0.07031,0.24023,0.04248,0.20972,0.05322,0.36035,0.09912,0.33789,0.11572,0.32251,0.1001,0.39819,0.1333,0.31543,0.13281,0.30298,0.10498,0.25488,0.09131,0.20349,0.08545,0.17554,0.06055,0.39185,0.18018,0.35986,0.20752,0.26294,0.11621,0.21191,0.09814,0.15833,0.0791,0.14233,0.05078,0.31982,0.16016,0.22009,0.11768,0.27075,0.14697,0.17004,0.1084,0.30835,0.18799,0.22522,0.15576,0.17859,0.12842,0.18359,0.14355,0.32056,0.22559,0.2041,0.17236,0.27173,0.26416,0.271,0.21289,0.24219,0.25049,0.25049,0.28369,0.20715,0.20508,0.18909,0.27832,0.2074,0.32031,0.16541,0.2251,0.16614,0.18115,0.1864,0.31348,0.19336,0.35205,0.15845,0.15918,0.14868,0.19678,0.14368,0.23486,0.13196,0.21338,0.14722,0.29883,0.16235,0.13818,0.13745,0.2749,0.14355,0.16895,0.14624,0.15332,0.14795,0.1167,0.14075,0.19189,0.14221,0.10059,0.12451,0.0752,0.12622,0.17139,0.12524,0.11719,0.14014,0.06494,0.08728,0.06152,0.07483,0.06494,0.11267,0.0957,0.09583,0.08594,0.09857,0.11963,0.1283,0.146,0.08783,0.09814,0.06586,0.10254,0.07556,0.13672,0.05768,0.08154,0.0354,0.08545,0.10248,0.13086,0.03519,0.1123,0.01588,0.08838,0.00826,0.10498,0.03848,0.13818,0.00938,0.13525,0.03128,0.15918,0.0502,0.17773,0.10181,0.14795,0.0791,0.16797,0.0943,0.18701,0.06647,0.20508,0.10724,0.16699,0.12634,0.19043,0.07471,0.22607,0.08447,0.28857,0.10938,0.21533,0.09198,0.22363,0.12219,0.23584,0.10736,0.23291,0.09937,0.25684,0.12488,0.25879,0.10931,0.26514,0.08783,0.26904,0.12366,0.28516,0.10742,0.28564,0.11456,0.31299,0.08844,0.30811,0.10126,0.33203,0.09613,0.35107,0.14319,0.32275,0.13184,0.36865,0.09894,0.37891,0.17993,0.36084,0.13416,0.39697,0.10577,0.42432,0.1283,0.45166,0.11694,0.45898,0.12189,0.49854,0.10699,0.4834,0.11267,0.50439,0.16516,0.38867,0.19739,0.40771,0.14905,0.41846,0.1792,0.41357,0.17883,0.45068,0.21472,0.4541,0.12708,0.5271,0.10126,0.53638,0.24304,0.48633,0.25903,0.52148,0.22144,0.50635,0.23853,0.552,0.18457,0.48779,0.20251,0.52002,0.19348,0.57275,0.11017,0.5542,0.09637,0.55762,0.09985,0.57397,0.11115,0.5874,0.1051,0.60791,0.12744,0.57129,0.12463,0.59912,0.14355,0.59424,0.14404,0.56616,0.18005,0.53906,0.14429,0.51831,0.17554,0.59375,0.16309,0.58374,0.1676,0.56445,0.1803,0.57153,0.19263,0.59497,0.18481,0.60522,0.19922,0.60938,0.16809,0.51294,0.14758,0.50244,0.16357,0.48242,0.13513,0.48584,0.15393,0.46338,0.15894,0.44238,0.14514,0.45117]}]},{"name":"SM_RockGroup01_B_LOD0","instanceId":"id_276100","indices":[0,2,1,3,5,4,5,6,4,5,7,6,8,7,5,9,7,8,4,6,10,6,7,11,11,10,6,12,7,9,11,7,12,10,13,4,4,13,14,14,13,15,14,15,16,17,16,15,15,18,17,18,15,13,10,18,13,9,19,12,19,20,12,19,9,21,12,22,11,22,12,20,11,23,10,23,11,22,24,18,10,10,23,24,25,23,22,20,25,22,17,26,16,27,16,26,24,28,18,28,17,18,29,23,25,29,24,23,30,27,26,27,30,31,31,30,32,32,33,31,28,24,34,35,24,29,35,34,24,36,34,35,25,37,29,37,35,29,38,28,34,17,28,38,36,35,39,39,35,37,37,25,40,40,25,20,41,40,20,37,42,39,39,42,36,43,37,40,43,42,37,43,44,42,45,38,34,34,36,45,46,38,45,36,46,45,47,40,41,43,40,47,47,48,43,48,47,41,43,49,44,49,43,48,46,50,38,50,17,38,50,51,17,46,51,50,17,51,52,17,52,26,46,36,53,46,54,51,53,54,46,55,53,36,42,55,36,55,56,53,56,54,53,55,42,57,55,57,56,44,57,42,58,54,56,57,58,56,52,59,26,59,60,26,52,60,59,30,26,60,61,60,52,60,61,30,61,52,51,54,62,51,51,62,61,63,30,61,62,63,61,32,30,63,62,54,64,64,54,58,64,65,62,63,62,65,32,63,66,66,33,32,67,33,66,33,67,68,69,66,63,65,69,63,70,65,64,58,70,64,66,69,71,66,71,67,69,65,72,70,72,65,72,71,69,73,70,58,72,70,74,73,74,70,75,71,72,74,75,72,58,76,73,58,57,76,76,57,77,77,57,44,76,78,73,76,77,78,79,74,73,79,73,78,71,80,67,71,75,81,71,81,80,75,82,81,82,80,81,83,75,74,83,82,75,74,79,84,74,84,83,85,79,78,78,77,86,86,85,78,86,77,87,79,85,88,88,84,79,84,88,89,90,84,89,83,84,90,91,85,86,91,88,85,91,86,87,83,92,82,92,83,90,93,87,77,93,77,44,94,89,88,88,91,94,95,94,91,95,89,94,96,82,92,80,82,96,87,97,91,95,91,97,44,98,93,87,93,99,98,99,93,98,44,100,49,100,44,100,101,98,101,99,98,49,102,100,101,100,102,49,103,102,49,48,103,103,48,104,104,48,41,103,105,102,104,105,103,102,106,101,106,102,105,87,99,107,99,101,108,108,107,99,107,108,109,87,107,110,97,87,110,101,111,108,101,106,111,110,107,112,109,112,107,110,113,97,110,112,113,97,113,114,97,114,95,112,115,113,109,115,112,115,114,113,108,111,116,109,108,116,
2117,116,111,116,117,109,117,111,118,109,117,119,117,118,119,106,120,111,120,118,111,115,109,121,121,109,119,121,122,115,114,115,122,122,121,119,122,119,123,124,120,106,106,105,124,124,125,120,120,125,118,105,126,124,124,126,125,104,126,105,122,127,114,128,122,123,128,127,122,129,128,123,114,127,130,95,114,130,127,128,131,130,127,131,129,131,128,132,130,131,130,132,95,132,131,129,129,133,132,134,95,132,132,133,134,89,95,134,126,104,135,135,104,136,104,41,136,136,41,137,135,136,138,137,138,136,137,41,139,139,41,20,139,20,140,139,140,137,19,140,20,141,138,137,140,141,137,138,142,135,142,138,141,143,126,135,143,135,142,140,19,144,141,140,144,144,19,145,21,145,19,146,141,144,142,141,146,144,145,146,143,147,126,125,126,147,148,125,147,148,147,149,125,148,118,147,143,150,147,150,149,143,142,151,150,143,151,148,152,118,152,148,149,146,153,142,153,151,142,151,153,154,151,155,150,149,150,155,155,151,154,146,156,153,154,153,156,156,146,157,146,145,157,158,118,152,158,119,118,159,119,158,119,159,123,160,158,152,159,158,160,154,161,155,149,155,161,162,152,149,152,162,160,163,162,149,161,163,149,157,145,164,164,145,21,21,165,164,165,21,166,166,167,165,164,168,157,168,164,165,165,167,169,168,165,169,170,157,168,157,170,156,156,170,154,169,167,171,172,171,167,171,172,173,171,173,174,169,175,168,171,175,169,168,175,170,176,171,174,175,171,176,177,170,175,177,175,176,170,178,154,170,177,178,176,174,179,174,180,179,181,179,180,182,177,176,176,179,182,183,154,178,161,154,183,184,178,177,184,177,182,185,161,183,163,161,185,178,186,183,186,178,184,187,186,184,183,188,185,188,183,186,188,163,185,187,189,186,189,188,186,190,188,189,187,190,189,191,163,188,191,188,190,163,191,192,162,163,192,192,160,162,190,193,191,194,192,191,193,194,191,192,195,160,195,192,194,196,160,195,160,196,159,196,123,159,123,196,197,195,194,198,198,196,195,193,198,194,196,198,199,196,199,197,193,199,198,190,200,193,190,187,200,201,199,193,201,197,199,201,193,200,202,123,197,202,197,203,129,202,203,129,123,202,203,204,129,133,129,204,201,205,197,206,201,200,201,206,205,205,207,197,197,207,203,187,208,200,206,200,208,205,206,209,207,205,209,209,210,207,211,207,210,211,203,207,206,208,212,206,212,209,213,211,210,203,211,213,204,203,214,213,215,203,215,214,203,216,204,214,204,216,133,215,217,214,214,217,216,212,208,218,208,219,218,219,220,218,219,208,187,187,221,219,187,184,221,219,221,222,221,184,222,220,219,222,182,222,184,222,182,223,223,220,222,223,182,179,223,179,224,224,179,181,225,212,218,220,225,218,226,220,223,223,224,226,224,181,227,227,181,228,228,229,227,229,228,230,231,224,227,227,229,231,224,232,226,232,224,231,226,232,233,232,231,233,226,234,220,226,233,234,225,220,235,220,234,235,229,230,236,237,236,230,237,238,236,236,238,239,240,231,229,240,233,231,241,229,236,239,241,236,229,241,240,240,242,233,242,240,241,243,234,233,233,242,243,235,234,244,234,243,244,245,235,244,243,245,244,246,245,243,245,225,235,242,247,243,241,247,242,243,247,246,248,241,239,247,241,248,239,249,248,248,250,247,249,250,248,246,247,250,225,245,251,251,245,246,250,249,252,253,252,249,225,251,254,254,212,225,251,246,255,251,255,254,246,250,256,252,256,250,257,255,246,256,257,246,258,252,253,259,258,253,256,252,260,256,260,257,261,252,258,252,261,260,261,262,260,259,263,258,263,261,258,254,264,212,212,264,209,264,265,209,264,254,265,265,210,209,254,266,265,255,266,254,257,266,255,267,265,266,266,257,267,267,210,265,268,257,260,268,267,257,267,268,210,260,262,268,262,210,268,261,263,269,262,261,269,210,262,270,210,270,213,271,213,270,215,213,271,269,272,262,262,273,270,273,262,272,274,271,270,274,270,273,271,275,215,271,274,275,276,215,275,274,276,275,217,215,276,273,277,274,276,274,277,263,278,269,272,269,278,279,273,272,277,273,279,278,280,272,272,280,279,279,280,281,282,277,279,281,282,279,283,277,282,283,282,281,284,276,277,283,284,277,276,285,217,285,276,284,286,217,285,217,286,216,280,278,287,280,288,281,288,280,287,289,288,287,278,290,287,287,290,289,278,263,290,291,290,263,290,291,289,259,291,263,259,292,291,291,292,293,291,293,289,294,293,292,281,288,295,289,295,288,293,294,296,293,296,297,298,296,294,296,298,299,293,300,289,300,293,297,299,301,296,299,302,301,303,289,300,295,289,303,304,303,300,304,300,297,305,296,301,297,296,305,306,295,303,303,304,306,307,301,302,308,305,301,307,308,301,309,305,308,297,305,309,310,309,308,307,310,308,311,307,302,311,302,312,313,311,312,309,314,297,310,314,309,304,297,315,314,315,297,316,310,307,311,316,307,317,316,311,318,310,316,310,318,314,317,318,316,319,311,313,319,317,311,320,319,313,321,320,313,321,322,320,315,323,304,315,324,323,306,304,323,314,325,315,324,315,325,324,325,326,327,314,318,327,325,314,328,306,323,323,324,328,306,328,329,329,328,324,295,306,329,330,327,318,330,318,317,331,325,327,327,330,331,325,331,326,332,331,330,332,330,317,326,331,332,333,295,329,281,295,333,281,333,334,334,333,335,283,281,334,283,334,336,334,335,336,283,336,284,284,336,337,337,336,335,284,337,285,338,285,337,285,338,286,339,333,329,333,340,335,340,333,339,329,341,339,329,324,341,342,341,324,324,326,342,341,343,339,343,341,342,340,339,344,339,343,344,342,345,343,346,342,326,342,346,345,347,344,343,345,347,343,348,340,344,335,340,349,340,348,349,344,347,350,350,348,344,349,351,335,349,348,352,352,351,349,351,353,335,337,335,353,354,353,351,352,354,351,337,353,355,354,355,353,338,337,355,356,352,348,354,352,357,356,357,352,358,357,356,356,359,358,359,356,348,359,348,350,360,355,354,360,354,357,361,338,355,360,361,355,350,362,359,362,358,359,363,357,358,357,363,360,364,338,361,364,286,338,365,362,350,365,350,347,365,347,366,366,347,345,367,360,363,360,368,361,367,368,360,358,369,363,363,369,367,370,364,361,370,361,368,362,365,371,365,366,372,371,365,372,373,366,345,372,366,373,371,374,362,374,358,362,372,375,371,374,371,375,375,372,373,374,376,358,374,375,376,377,358,376,358,377,369,375,378,376,378,375,373,377,376,378,378,373,379,373,345,380,380,379,373,380,345,346,381,377,378,379,381,378,382,369,377,383,377,381,383,382,377,369,382,384,384,367,369,367,384,385,367,385,368,385,386,368,368,386,370,386,387,370,364,370,387,382,388,384,385,384,389,384,388,389,385,390,386,390,385,389,391,382,383,382,391,388,386,392,387,390,392,386,387,393,364,392,394,387,393,387,394,395,393,394,396,364,393,286,364,396,394,392,397,394,397,395,398,392,390,397,392,398,393,399,396,399,393,395,400,286,396,286,400,216,216,400,401,216,401,133,396,402,400,400,402,401,403,398,390,390,389,403,403,389,404,389,388,404,403,405,398,403,404,405,388,406,404,406,388,391,405,407,398,407,397,398,408,405,404,404,406,408,407,405,408,397,407,409,395,397,409,410,409,407,407,408,410,409,410,411,409,411,395,412,410,408,411,410,412,406,413,408,412,408,413,391,414,406,413,406,414,413,415,412,415,411,412,416,414,391,391,383,416,414,417,413,415,413,417,416,383,418,381,418,383,419,395,411,411,415,420,420,419,411,419,421,395,399,395,421,417,414,422,417,423,415,423,417,422,424,415,423,415,424,420,414,416,425,425,422,414,416,426,425,427,423,422,427,424,423,425,428,422,426,428,425,428,427,422,426,416,429,418,429,416,418,430,429,430,426,429,418,431,430,431,418,381,432,431,381,432,433,431,432,381,379,431,434,430,434,431,433,435,427,428,426,436,428,435,428,436,437,427,435,424,427,437,438,435,436,437,435,438,439,430,434,430,440,426,430,439,440,436,426,441,440,441,426,433,442,434,442,439,434,438,436,443,443,436,441,437,444,424,438,445,437,444,437,445,443,446,438,445,438,446,441,447,443,446,443,447,448,447,441,441,440,448,444,449,424,444,450,449,449,420,424,445,451,444,450,444,451,449,452,420,420,452,419,446,447,453,448,453,447,445,446,454,454,451,445,449,450,455,452,449,455,456,419,452,421,419,456,453,457,446,454,446,457,457,453,458,453,448,459,453,459,458,460,454,457,458,460,457,451,454,461,461,454,460,462,452,455,462,456,452,463,459,448,463,448,440,440,464,463,464,440,439,465,459,463,463,464,465,461,466,451,466,450,451,465,467,459,458,459,467,467,465,468,468,458,467,439,469,464,465,464,470,469,470,464,439,471,469,471,439,442,472,468,465,470,472,465,471,473,469,473,470,469,442,474,471,442,433,474,471,475,473,475,471,474,468,476,458,458,476,477,460,458,477,478,460,477,478,479,460,479,461,460,480,461,479,480,466,461,481,479,478,480,479,481,482,480,481,482,481,478,480,483,466,482,483,480,483,484,466,450,466,484,483,485,484,482,485,483,450,484,486,486,484,485,487,485,482,485,487,486,450,486,488,488,455,450,455,488,489,489,462,455,489,490,462,490,491,462,456,462,491,491,490,492,493,491,492,493,456,491,421,456,493,488,494,489,489,494,495,495,490,489,488,496,494,496,488,486,497,490,495,490,497,498,499,496,486,499,500,496,501,500,499,499,486,487,501,499,487,501,502,500,502,501,503,503,501,504,498,505,490,50
25,492,490,505,498,506,506,498,507,507,508,506,492,505,509,509,505,506,510,501,487,501,511,504,501,510,511,487,512,510,512,487,482,512,513,510,513,511,510,514,512,482,512,514,513,514,482,478,504,511,515,516,504,515,511,513,517,515,511,517,518,517,513,514,518,513,515,517,518,478,519,514,519,518,514,518,520,515,516,515,520,519,520,518,521,516,520,519,521,520,521,522,516,519,478,523,521,519,523,523,478,477,524,522,521,524,525,522,526,521,523,521,526,524,523,527,526,528,523,477,527,523,528,528,477,529,527,528,529,477,476,529,530,525,524,525,530,531,532,531,530,530,533,532,534,529,476,534,535,529,468,534,476,534,468,536,536,535,534,536,468,472,537,527,529,535,537,529,532,533,538,538,539,532,540,533,530,540,530,541,541,530,524,541,524,542,542,524,526,542,543,541,540,541,543,526,544,542,527,544,526,544,543,542,544,527,545,544,545,543,546,527,537,546,545,527,545,547,543,546,547,545,543,548,540,547,548,543,549,533,540,549,540,548,550,546,537,550,537,535,551,547,546,547,552,548,551,552,547,553,549,548,553,548,552,546,550,554,554,551,546,555,533,549,553,555,549,556,533,555,553,556,555,535,557,550,557,554,550,558,553,552,558,556,553,559,533,556,538,533,559,559,560,538,539,538,560,552,551,561,562,551,554,551,562,561,563,558,552,563,552,561,557,564,554,565,562,554,565,554,564,566,561,562,561,567,563,566,567,561,566,568,567,562,569,566,569,562,565,568,566,569,570,563,567,567,568,570,563,571,558,571,563,570,558,571,572,558,572,573,556,558,573,574,565,564,575,569,565,565,574,575,564,576,574,557,576,564,576,557,577,535,577,557,577,535,578,578,535,536,577,578,579,536,579,578,576,577,580,579,580,577,579,536,581,472,581,536,579,581,582,580,579,582,583,581,472,582,581,583,583,472,584,584,472,470,582,583,585,584,585,583,586,584,470,470,473,586,586,587,584,587,586,473,585,584,587,588,587,473,585,587,588,473,475,588,585,588,589,589,582,585,589,588,475,580,582,590,582,589,590,591,590,589,592,589,475,591,589,592,592,475,474,593,580,590,590,591,593,592,474,594,594,474,433,593,595,580,576,580,595,592,596,591,592,594,596,595,597,576,597,574,576,574,597,598,575,574,598,597,595,599,599,598,597,598,600,575,569,575,600,600,601,569,569,601,568,598,602,600,602,601,600,603,602,598,599,603,598,604,601,602,604,602,603,594,605,596,594,606,605,606,607,605,606,594,433,606,433,608,433,432,608,608,609,606,608,432,609,606,609,607,432,379,609,596,605,610,607,610,605,379,611,609,611,379,612,613,609,611,609,613,607,379,380,612,614,612,380,380,346,614,612,615,613,614,615,612,616,614,346,346,326,616,615,617,613,617,607,613,615,614,618,615,618,617,616,618,614,326,619,616,326,332,619,607,617,620,620,617,618,616,621,618,619,621,616,620,618,621,622,619,332,332,317,622,623,607,620,610,607,623,621,619,624,619,622,624,317,625,622,625,317,319,623,626,610,596,610,626,627,624,622,625,627,622,628,627,625,624,627,628,629,625,319,628,625,629,596,626,630,591,596,630,319,631,629,319,320,631,632,626,623,623,633,632,634,630,626,634,626,632,635,633,623,620,635,623,635,620,636,620,621,636,637,633,635,637,635,636,636,621,638,638,621,624,624,639,638,639,624,628,638,639,640,628,640,639,636,638,641,641,638,640,642,637,636,641,642,636,637,643,633,642,643,637,644,640,628,629,644,628,641,640,645,646,642,641,641,645,646,643,642,647,647,642,646,648,640,644,645,640,648,629,649,644,648,644,649,646,645,650,650,647,646,648,651,645,649,651,648,650,645,651,649,629,652,649,652,651,652,629,631,652,631,651,320,651,631,320,650,651,653,650,320,647,650,653,322,653,320,653,322,654,654,647,653,647,654,643,643,654,633,654,655,633,654,656,655,655,657,633,655,658,657,659,657,658,633,657,632,659,660,657,657,661,632,660,661,657,634,632,661,634,661,662,662,630,634,663,630,662,660,664,661,661,664,662,664,660,665,666,665,660,665,666,667,668,662,664,662,668,663,664,665,668,630,663,669,591,630,669,670,591,669,670,593,591,671,670,669,663,671,669,593,670,672,672,670,671,663,673,671,671,673,672,674,672,673,593,672,675,672,674,675,675,595,593,595,675,676,675,674,676,599,595,676,677,673,663,673,677,674,599,676,678,674,678,676,663,679,677,679,663,668,677,680,674,680,677,679,668,681,679,681,680,679,665,681,668,678,682,599,682,678,683,603,599,682,678,674,684,680,684,674,678,684,683,680,683,684,603,682,685,682,683,685,604,603,685,681,665,686,686,665,667,680,681,687,683,680,687,687,681,688,687,688,683,688,681,686,688,686,689,688,690,683,683,690,685,690,688,689,685,690,691,685,691,604,690,689,691,691,692,604,601,604,692,691,693,692,693,691,689,692,694,601,694,692,693,694,568,601,693,695,694,568,694,696,695,696,694,689,697,693,695,693,697,697,689,698,697,699,695,699,697,698,568,696,700,700,570,568,570,700,701,571,570,701,702,698,689,686,702,689,696,695,703,703,695,699,704,700,696,701,700,704,571,701,705,572,571,705,706,696,703,706,704,696,707,703,699,703,707,706,701,704,708,708,705,701,704,706,709,709,708,704,709,706,707,709,705,708,710,707,699,710,699,698,711,709,707,705,709,712,712,709,711,710,713,707,711,707,713,698,714,710,710,714,713,715,705,712,572,705,715,572,715,716,716,717,572,718,715,712,717,719,572,719,573,572,719,717,720,721,712,711,721,718,712,722,573,719,556,573,722,720,723,719,722,719,723,724,718,721,718,724,725,721,726,724,726,721,727,727,721,711,711,713,727,727,713,728,713,729,728,729,713,714,714,730,729,714,698,730,698,731,730,731,698,702,702,732,731,731,732,733,733,732,734,732,667,734,732,702,735,66
27,732,735,686,735,702,735,686,667,736,738,737,738,736,739,739,740,738,741,740,739,741,508,740,508,741,742,742,506,508,742,743,506,509,506,743,744,509,743,744,745,509,745,492,509,741,746,742,742,747,743,742,746,747,748,743,747,743,748,744,741,739,749,741,749,746,746,750,747,747,750,748,749,751,746,746,751,750,739,752,749,749,753,751,753,749,752,754,752,739,736,754,739,736,755,754,736,756,755,757,755,756,757,68,755,68,757,758,68,759,755,755,759,754,68,67,759,754,759,760,67,760,759,752,754,761,761,754,760,762,752,761,753,752,762,761,760,762,763,760,67,763,762,760,763,67,80,80,764,763,763,764,762,764,80,96,753,762,765,762,764,765,765,764,96,751,753,765,766,765,96,751,765,766,766,96,92,751,766,750,767,766,92,767,92,90,750,766,768,766,767,768,750,768,748,748,768,769,769,768,767,748,769,744,770,767,90,769,767,771,771,767,770,744,769,772,771,772,769,90,773,770,89,773,90,774,770,773,773,89,774,770,775,771,775,770,774,89,776,774,89,134,776,777,775,774,775,777,771,776,777,774,772,771,778,777,778,771,778,779,772,779,744,772,777,779,778,776,780,777,780,779,777,134,781,776,780,776,781,782,744,779,745,744,782,782,779,783,783,745,782,783,779,780,745,783,492,134,784,781,784,134,133,785,780,781,785,783,780,784,785,781,492,783,786,785,786,783,787,492,786,493,492,787,786,785,788,786,788,787,789,784,133,133,401,789,790,785,784,790,788,785,790,784,791,791,788,790,791,784,789,401,792,789,792,401,402,791,793,788,787,788,793,789,794,791,794,789,792,794,793,791,493,787,795,795,421,493,787,793,796,793,794,796,795,787,796,797,794,792,402,797,792,797,796,794,421,795,798,798,795,796,798,796,797,399,421,798,402,799,797,799,798,797,799,399,798,402,396,799,396,399,799,720,801,800,720,800,723,801,802,800,801,803,802,539,802,803,804,723,800,800,802,804,805,802,539,539,560,805,806,802,805,804,802,806,804,807,723,722,723,807,808,805,560,806,805,808,809,804,806,806,808,809,807,804,809,808,560,810,810,809,808,807,809,810,560,559,810,807,811,722,807,810,811,559,811,810,722,811,556,556,811,559],"attributes":[{"name":"aPos","stride":3,"data":[-0.9753,0.6541,-0.3949,-0.9897,0.6659,-0.3153,-1.1682,0.5993,-0.3316,3.5235,-0.1058,-0.5089,3.4053,-0.1014,-0.3782,3.4298,-0.0961,-0.7053,3.3764,-0.0718,-0.6385,3.339,-0.053,-1.2144,3.4922,-0.1028,-1.2527,3.343,-0.1055,-1.5087,3.3539,-0.0078,-0.3538,3.3789,0.0031,-0.7015,3.3077,0.0619,-1.2093,3.3459,-0.0842,-0.2165,3.468,-0.0939,0.0292,3.3501,-0.077,0.0652,3.3714,-0.0926,0.2913,3.2687,-0.0081,0.3313,3.3001,-0.0117,-0.1635,3.1971,0.056,-1.6964,3.19,0.4601,-1.271,3.2349,-0.0994,-1.8288,3.2663,0.3773,-0.7875,3.3725,0.2255,-0.4974,3.2657,0.3437,-0.2831,3.1427,0.7161,-0.6022,3.3001,-0.0727,0.5912,3.3953,-0.094,0.538,3.298,0.0669,-0.0818,3.2194,0.5824,-0.3643,3.1137,-0.0749,0.7418,3.1384,-0.0816,1.0928,2.874,-0.0759,0.8221,2.7316,-0.0813,0.8768,3.2663,0.3475,-0.0751,3.1191,0.6265,-0.075,3.045,0.7059,0.2316,2.998,0.8786,-0.1419,3.2884,0.108,0.1349,3.037,0.7807,0.0565,3.0851,0.7311,-0.9674,3.0093,0.91,-1.0501,2.8299,0.9632,0.1242,2.8802,1.0506,-0.2324,2.6567,1.2374,-0.0584,3.2437,0.3727,0.1757,3.2293,0.2715,0.3657,2.9566,0.9683,-0.699,2.9312,1.0931,-0.958,2.744,1.2265,-0.3101,3.2836,0.0892,0.3717,3.1937,0.0209,0.5417,3.2039,-0.0363,0.50
258,3.0737,0.5749,0.3791,3.0663,0.325,0.533,2.9144,0.8086,0.2932,2.8949,0.6577,0.3556,2.6901,1.0068,0.2156,2.7583,0.6193,0.4131,3.257,-0.0728,0.5197,3.1649,-0.0584,0.6057,3.0422,-0.0085,0.633,2.9878,0.127,0.5978,2.841,-0.0219,0.6517,2.8667,0.3135,0.5694,2.6911,0.088,0.6071,2.5051,-0.0299,0.7222,2.3329,-0.0403,0.9644,2.2492,-0.0678,1.248,2.5836,0.0025,0.6111,2.7331,0.3382,0.5114,2.2733,0.0097,0.6815,2.482,0.109,0.5743,2.4874,0.7491,0.3175,2.4318,0.3419,0.4333,2.1115,0.1016,0.5278,2.5597,0.8561,0.3384,2.4603,1.1297,0.0762,2.3232,0.9154,0.2109,2.1446,0.7016,0.1918,2.0781,0.0783,0.6432,2.0996,0.0275,0.5372,1.9834,0.1057,0.516,1.9858,0.2149,0.4523,1.7963,0.4498,0.2103,2.0789,0.9566,0.0727,2.1292,1.0712,-0.048,2.1548,1.2304,-0.2482,1.8188,0.799,0.0709,1.5319,0.5611,0.0449,1.6208,0.2703,0.2456,1.744,0.9233,-0.0391,1.7394,0.1668,0.4019,2.4226,1.3165,-0.1877,1.5926,0.787,-0.0508,1.466,0.8908,-0.2635,1.9283,0.1812,0.5737,1.7556,0.9748,-0.1508,2.43,1.4872,-0.4172,2.2738,1.4275,-0.4207,2.4987,1.4624,-0.5745,2.4344,1.5393,-0.6987,2.5777,1.4122,-0.8169,2.779,1.299,-0.9594,2.8389,1.202,-1.1892,2.6844,1.3833,-1.0811,2.5969,1.3827,-1.0453,2.101,1.3521,-0.4809,2.2686,1.4988,-0.6314,2.0252,1.3986,-0.707,1.9728,1.2305,-0.3374,2.3939,1.3747,-0.8891,1.9225,1.3144,-0.4922,1.8467,1.1559,-0.3728,1.5606,0.9967,-0.3138,1.7144,1.2333,-0.5512,2.2253,1.4168,-0.7357,2.121,1.3493,-0.8729,2.1948,1.2278,-1.1816,1.8333,1.3079,-0.9723,2.4238,1.2757,-1.1696,1.8483,1.3586,-0.8101,1.6427,1.2178,-0.787,1.5184,1.1729,-1.059,2.5576,1.3222,-1.2658,2.4953,1.1711,-1.4216,2.6738,1.2169,-1.3868,1.4613,1.0417,-0.5269,1.4575,1.1535,-0.8556,1.0935,0.9601,-0.9641,1.3406,0.9667,-0.4589,1.3385,1.0642,-0.6083,1.1225,0.8292,-0.6193,0.9653,0.677,-0.73,1.2288,0.6334,-0.3343,2.7595,1.0782,-1.3392,2.8589,1.0519,-1.1982,2.9152,0.8784,-1.3613,2.8149,0.9196,-1.3388,3.0586,0.7974,-1.2871,3.074,0.6147,-1.4387,2.8526,0.6508,-1.6713,2.725,0.8018,-1.7541,2.6601,0.9668,-1.6376,3.0521,0.4136,-1.6405,3.0807,0.0627,-1.9117,2.9225,0.3653,-1.884,2.5153,1.0941,-1.5025,2.2934,1.0936,-1.4974,2.3068,0.9549,-1.7244,2.467,1.0028,-1.7099,2.6153,0.8349,-1.8832,2.0901,1.1893,-1.3334,2.6943,0.5503,-2.0063,2.5157,0.4696,-2.1084,2.4365,0.6585,-2.0336,2.741,0.3707,-2.0345,2.9316,0.1203,-2.0041,1.8869,1.2104,-1.1636,1.6744,1.0998,-1.1839,1.8276,1.0528,-1.3712,2.2828,0.7121,-1.961,2.0327,0.9344,-1.6245,2.1266,0.8136,-1.7895,3.0572,-0.0172,-1.9973,2.9669,-0.0598,-2.0959,3.1828,-0.1156,-1.9901,2.9897,-0.0966,-2.2811,2.7518,0.0068,-2.0929,2.8226,-0.0977,-2.2536,2.5008,0.0963,-2.174,2.2954,-0.0816,-2.424,2.4145,-0.1039,-2.4913,2.3617,-0.087,-2.598,2.1503,-0.1031,-2.5844,2.4882,-0.0544,-2.2579,2.1604,-0.0451,-2.3162,2.1765,0.0287,-2.2403,2.2154,0.2292,-2.1842,1.9726,-0.0906,-2.4496,2.0162,-0.1049,-2.5772,1.8113,-0.1172,-2.7307,2.0151,-0.0077,-2.2062,2.2554,0.4725,-2.0497,2.0119,0.1647,-2.0864,2.2219,0.6832,-1.8802,2.1027,0.3325,-2.0669,1.9154,0.3841,-2.0369,2.0848,0.657,-1.8168,2.058,0.5032,-1.9552,1.8716,0.7238,-1.8564,1.9944,0.7753,-1.7499,1.9292,0.9214,-1.627,1.6996,0.7475,-1.5287,1.8383,0.8531,-1.5417,1.7641,0.8975,-1.3676,1.5696,1.0149,-1.2648,1.3676,0.9805,-1.2422,1.7138,0.8151,-1.3645,1.507,0.8766,-1.3273,1.6678,0.6559,-1.704,1.4345,0.7369,-1.4719,1.2446,1.0433,-1.0694,1.0171,0.7078,-1.1784,1.0019,0.8335,-0.9489,1.3913,0.6346,-1.5562,1.5537,0.5547,-1.6132,1.2432,0.6429,-1.4381,1.6663,0.4939,-1.8051,1.4182,0.546,-1.6473,1.0945,0.5076,-1.5494,1.1173,0.5356,-1.4185,1.5161,0.4646,-1.7891,0.8991,0.5265,-1.3475,0.9283,0.7485,-1.0402,0.8772,0.6373,-1.1782,0.8942,0.7098,-0.8418,0.8474,0.7956,-1.0205,1.6555,0.2805,-1.8863,1.746,0.2596,-1.9548,1.6536,0.1535,-2.0068,1.8621,0.2955,-1.9773,1.8081,0.1274,-2.0595,1.7572,0.0842,-2.2149,1.7556,0.0167,-2.476,1.5173,0.282,-1.9494,1.6667,0.2013,-2.206,1.7508,-0.0677,-2.5707,1.5621,-0.1179,-2.7144,1.403,-0.0941,-2.6856,1.4121,-0.1045,-2.8303,1.557,-0.0185,-2.6066,1.6528,0.174,-2.4223,1.5468,0.2753,-2.4068,1.5382,0.2972,-2.0992,1.4414,0.246,-1.9944,1.2291,-0.1132,-2.7371,1.2675,-0.1379,-2.8938,1.1535,-0.133,-2.8245,1.0866,-0.0826,-2.5752,1.4034,-0.0234,-2.6558,1.2198,-0.0293,-2.6511,1.3308,0.22,-2.4574,1.3624,0.2957,-2.2551,1.4051,0.3095,-2.1335,1.295,0.2911,-2.1306,1.1867,0.2765,-2.2211,1.1618,0.0526,-2.4199,1.0585,-0.0546,-2.4322,0.7334,-0.1046,-2.3489,1.0023,0.0087,-2.3187,1.3458,0.3949,-2.0885,0.7291,0.0233,-2.1793,0.6334,-0.0854,-2.3342,1.4278,0.4804,-1.907,1.2756,0.5259,-2.0544,0.9902,0.1792,-2.2474,1.0795,0.4812,-1.9721,0.5837,-0.0527,-2.1321,0.4868,-0.0943,-2.1761,0.8365,0.2967,-1.9624,0.6871,0.2077,-1.8895,0.8083,0.3983,-1.6683,0.4451,0.0609,-1.9012,1.4218,0.5051,-1.7826,1.2958,0.5809,-1.6748,1.3122,0.597,-1.8596,1.0938,0.5627,-1.7193,0.9676,0.4011,-1.8108,0.5922,0.293,-1.7275,0.8403,0.4817,-1.5168,0.7827,0.5733,-1.425,0.533,0.3794,-1.6267,0.6873,0.4919,-1.6074,0.7016,0.666,-1.5096,0.8386,0.6856,-1.2819,0.7063,0.8009,-1.313,0.6123,0.74
vendor: 4,239 bytes, line 2
218,-1.5642,0.2583,0.2797,-1.6312,0.4796,0.4774,-1.6549,0.2056,0.3985,-1.6004,0.1836,0.6343,-1.5881,0.4573,0.6247,-1.5968,0.4452,0.8865,-1.4973,0.5449,0.9558,-1.3697,0.66,0.9571,-1.0134,0.7885,0.8325,-0.7774,0.0865,0.2359,-1.6109,0.0635,0.3861,-1.6497,-0.0018,0.0672,-1.748,0.1817,0.1306,-1.7238,0.1574,-0.0407,-1.8839,-0.093,-0.0928,-1.9767,-0.2367,-0.0649,-1.8593,-0.4288,-0.0841,-1.9765,-0.0904,0.4003,-1.5977,-1.011,-0.0946,-2.0259,-0.6102,0.0166,-1.762,-0.8769,-0.0986,-2.068,-1.1354,-0.1145,-2.2117,-0.1614,0.031,-1.7072,-1.163,-0.0324,-1.9084,-1.3981,-0.0974,-1.7565,-0.1363,0.2318,-1.5624,-0.2955,0.1407,-1.6074,-0.893,0.0155,-1.7932,-0.2686,0.3436,-1.5167,-1.0936,0.0788,-1.6509,-0.9809,0.136,-1.7406,-0.8116,0.1508,-1.6256,-0.91,0.1659,-1.5133,-1.3212,0.0342,-1.3878,-1.5337,-0.0554,-1.5852,-1.6179,-0.0098,-1.3685,-0.7245,0.1856,-1.4364,-0.5002,0.1884,-1.4732,-1.0148,0.1578,-1.3375,-1.0102,0.2245,-1.1573,-0.8828,0.235,-1.287,-1.4902,0.0191,-1.2722,-1.7912,0.023,-1.0135,-1.8857,-0.0006,-1.0416,-1.8707,-0.0293,-0.7935,-0.3887,0.2392,-1.4188,-0.5811,0.3698,-1.3288,-0.6681,0.2902,-1.2483,-0.7028,0.3767,-1.0646,-0.8319,0.3136,-1.328,-0.4254,0.3481,-1.4178,-0.4634,0.5187,-1.3793,-0.8579,0.3392,-1.1655,-0.756,0.3362,-1.2022,-0.8201,0.3551,-1.012,-0.0445,0.6755,-1.5643,0.186,0.8724,-1.5155,0.0419,1.0525,-1.3942,0.3543,1.0257,-1.3547,0.4042,1.1192,-1.0911,0.4768,1.0507,-0.7702,-0.5212,0.9769,-1.2177,-0.268,0.996,-1.3555,-0.6263,0.5473,-1.2491,-0.7895,0.5144,-1.0551,-0.8036,0.74,-1.0463,-0.6299,1.0742,-1.1212,-0.9722,0.7329,-0.8246,-0.8935,0.6324,-0.7289,-0.8736,0.8747,-0.9479,-0.4023,1.3157,-1.0954,-0.2269,1.1746,-1.2077,-0.5591,1.269,-1.0211,-0.1296,1.1776,-1.13,-0.2805,1.2824,-0.9992,0.0983,1.1867,-1.1499,-0.0119,1.1781,-0.9663,0.2068,1.1866,-0.8815,-0.377,1.4122,-0.7321,-0.3204,1.3053,-0.66,-0.5516,1.3545,-0.4809,-0.5347,1.3755,-0.7879,-0.2838,1.3389,-0.4292,0.2037,1.1312,-0.6135,-0.7523,1.2398,-0.6797,-0.425,1.3937,-0.4494,0.6034,0.8114,-0.3715,-0.9024,1.0276,-0.8716,-1.0248,0.8427,-0.8341,-0.2492,1.329,-0.2495,-0.0999,1.2392,-0.2648,-0.4577,1.3077,-0.3131,0.3821,0.9821,-0.4232,-0.8591,1.1251,-0.7046,-0.9551,0.9433,-0.6941,-0.9995,0.8149,-0.4825,-0.7379,1.2526,-0.4648,-0.8705,1.1013,-0.4447,-0.7381,1.2585,-0.3692,-0.6298,1.2018,-0.2861,-0.8987,0.957,-0.2912,-0.8954,0.7852,-0.2618,-1.0162,0.681,-0.4915,-0.6855,0.9613,-0.1643,-0.4103,0.8734,0.0417,-0.4932,0.7637,0.0597,-0.1121,1.1165,0.0296,0.0121,1.1524,-0.0031,0.2263,1.0519,-0.0252,0.5057,0.837,-0.02,-0.3128,0.8638,0.1448,0.0354,1.0079,0.1126,0.2894,1.0147,0.1624,-0.3942,0.7146,0.1525,0.4204,0.8912,0.2023,0.5896,0.7663,-0.0687,0.5482,0.6683,0.1892,0.4381,0.6155,0.1148,0.7222,0.707,-0.4176,0.3633,0.6679,0.3494,0.2777,0.8049,0.3483,0.5713,0.6611,-0.2024,0.839,0.7019,-0.7271,0.8556,0.5955,-0.7758,0.7867,0.6205,-0.7141,0.2,0.8675,0.2269,-0.1581,0.7902,0.1681,0.0629,0.7322,0.3124,-0.2463,0.6931,0.1691,0.2232,0.5373,0.4043,0.0354,0.5859,0.3303,0.3352,0.5324,0.3011,0.2264,0.4033,0.341,0.2957,0.4953,0.1827,0.1382,0.4929,0.2454,-0.0278,0.5754,0.1457,-0.3222,0.6302,0.051,0.1278,0.4829,0.1253,-0.5928,0.6743,0.0535,-0.0248,0.5492,0.0415,-0.6527,0.8154,-0.0397,0.3468,0.4671,0.0673,0.1861,0.3517,0.1932,0.519,0.5507,-0.1304,-0.3608,0.5442,-0.087,-0.0319,0.5049,-0.0364,-0.0602,0.3775,0.0407,-0.5844,0.5833,-0.0721,-0.74,0.5762,-0.0819,-0.2014,0.4876,-0.1508,-0.5238,0.4619,-0.1919,-0.691,0.686,-0.025,-0.7472,0.7626,0.0138,-0.7725,0.8886,-0.0865,-0.8359,0.7549,-0.1645,-0.8948,0.9194,-0.0394,-0.7478,0.8789,0.0257,-0.3616,0.3692,-0.0849,-0.6824,0.4152,-0.0721,-0.2578,0.3062,0.0431,-0.4816,0.3288,0.0174,-0.7323,0.8302,0.1482,-0.7912,0.4741,0.0856,-0.8175,0.3702,0.0209,-0.8035,0.9305,0.0529,-0.7102,0.3453,-0.0274,-0.0598,0.1902,0.2327,-0.4275,0.2303,0.0868,-0.5993,0.2204,0.1553,-0.6328,0.3137,0.1368,-0.8022,0.3501,0.1656,0.1854,0.227,0.2985,-0.0263,0.0633,0.4978,-0.233,0.1441,0.2977,0.3763,0.3222,0.2002,-0.7544,0.2425,0.2754,-0.4733,0.126,0.3347,0.2863,0.0847,0.3757,0.4771,0.3744,0.0398,-0.6863,0.1624,0.3725,-0.8407,0.1653,0.543,-0.8638,0.2709,0.2957,-0.5924,0.1373,0.5263,-0.4131,0.2338,0.4861,0.4832,0.186,0.231,-0.8395,0.3885,0.3062,-0.7326,0.6398,0.283,-0.9058,0.3584,0.5168,-0.2859,0.197,0.5171,-0.9638,0.2303,0.5626,-0.9979,0.3933,0.7692,
2-0.7401,0.8281,0.3348,-0.7837,0.7562,0.4708,-0.7809,0.9216,0.2812,-0.9478,0.5689,0.7933,-0.8241,0.9753,0.4659,-0.8894,0.9216,0.2164,-0.9524,0.9521,0.4753,-0.9182,0.2658,0.8117,-0.7571,0.1726,0.8578,-0.6038,0.181,0.8768,-0.5465,0.2707,0.7442,-0.4356,0.3307,0.6025,-0.5078,0.329,0.8101,-0.3734,0.281,0.8866,-0.3282,0.3266,0.636,-0.1413,0.1629,0.6302,-0.0568,0.0937,0.7875,-0.0681,0.0355,0.718,-0.2367,0.0911,0.9654,0.0817,-0.0214,0.6213,0.4463,-0.002,0.3923,0.6805,0.0229,0.3132,0.564,0.2316,0.0803,0.7435,0.1589,0.1036,0.6184,0.2957,-0.0973,0.3323,-0.0479,0.5911,0.6623,-0.0475,0.5308,0.1273,-0.0427,0.8069,0.7408,-0.0476,0.6007,0.9057,-0.0511,0.5804,-0.045,-0.0161,0.9093,0.0845,-0.0442,0.9506,-0.1322,-0.0102,1.0992,-0.0117,-0.0431,1.1379,-0.1097,-0.0331,1.3248,-0.2186,-0.0523,1.3347,0.9002,0.042,0.3822,1.0697,0.0006,0.5643,1.1195,-0.051,0.836,1.2894,-0.0482,0.8796,1.0745,0.2044,0.2744,-0.2952,0.1257,1.0847,-0.2889,0.1295,1.2006,-0.378,0.2205,1.0172,-0.3993,0.3055,1.1299,-0.5811,0.2615,0.9717,-0.37,0.0548,1.3421,-0.4328,-0.048,1.6032,-0.4244,0.2397,1.2191,-0.5592,0.2098,1.181,-0.6583,0.1652,1.1623,-0.4767,0.0135,1.4371,-0.5704,-0.
20382,1.5716,-0.5447,-0.0338,1.8437,-0.7515,0.1661,1.2495,-0.743,-0.0222,1.8513,-0.7318,-0.0657,2.0932,-0.7271,0.0654,1.5701,-0.9577,0.1819,1.2861,-0.8689,0.2173,1.1372,-0.9564,0.2753,1.0736,-0.9169,-0.0342,2.0857,-1.1005,-0.028,2.5406,-1.1996,-0.0462,2.7597,-1.3348,0.0579,2.5001,-0.9167,0.3333,0.9386,-0.977,0.3799,1.1595,-0.9276,0.5384,0.9323,-1.0581,0.2209,1.2178,-1.3496,0.0143,2.7322,-1.2622,-0.0187,2.8921,-1.1151,0.0792,2.0302,-0.9531,0.0306,1.9017,-0.881,0.1274,1.7417,-1.1144,0.1031,1.7782,-0.964,0.1166,1.6439,-1.0935,0.1227,1.5637,-1.1844,0.152,1.4867,-1.2938,0.1228,1.6313,-1.2668,0.0813,1.8694,-1.3571,0.1349,2.2778,-1.1738,0.2034,1.414,-1.3364,0.1817,1.5449,-1.5405,0.0932,1.8582,-1.5339,0.1489,2.3056,-1.2793,0.3082,1.5253,-1.3775,0.1388,2.4023,-1.5527,0.1446,2.5603,-1.0842,0.3814,1.4096,-1.6978,0.1417,2.2785,-1.455,0.09,2.6341,-1.3056,0.0339,2.7237,-1.6369,0.116,1.7907,-1.5651,0.24,1.7383,-1.8995,0.0988,2.106,-1.2927,0.4241,1.5877,-1.547,0.3324,1.7341,-1.7346,0.2054,1.8813,-1.8982,0.0956,1.9692,-2.121,0.158,2.0032,-1.7172,0.2994,1.8464,-2.1683,0.0989,2.1086,-2.3252,0.1089,2.2797,-2.1509,0.0539,2.4478,-1.6973,0.0894,2.5098,-1.4869,0.4634,1.6092,-1.6295,0.3971,1.7037,-1.2304,0.6086,1.5111,-1.1255,0.593,1.3638,-0.9847,0.5761,1.1328,-1.0943,0.7635,1.0707,-1.3205,0.8945,1.2823,-0.9786,0.7316,0.9213,-1.1783,0.9199,0.9521,-0.9951,0.8639,0.8178,-0.8888,0.8741,0.7102,-1.0132,0.9869,0.7989,-0.8197,0.9054,0.5501,-0.9386,1.0036,0.7197,-1.0515,1.0107,0.6699,-1.1748,0.9763,0.6813,-1.3091,0.9937,1.0138,-1.3864,0.9485,0.7807,-1.1677,0.9225,0.386,-1.4539,0.9196,1.2512,-1.1422,0.8952,0.1386,-1.4665,0.879,1.423,-1.4174,0.8241,0.1749,-1.49,0.6809,1.501,-1.8671,0.6043,1.5474,-1.9016,0.8596,1.4366,-1.832,0.3494,1.7979,-2.0953,0.256,1.9594,-2.1088,0.4256,1.759,-2.1631,0.6534,1.589,-2.2983,0.5156,1.7726,-1.2587,0.8035,-0.0416,-1.13,0.8439,-0.0316,-1.275,0.5608,-0.3202,-0.9527,0.8281,-0.0718,-1.0476,0.7141,-0.1942,
2-1.4592,0.6809,-0.0653,-0.9897,0.6659,-0.3153,-0.9753,0.6541,-0.3949,-1.1682,0.5993,-0.3316,-0.9538,0.61,-0.5331,-1.0714,0.6255,-0.4605,-0.8885,0.5235,-0.7315,-1.1162,0.5547,-0.3763,-1.0344,0.5096,-0.4864,-0.8864,0.4128,-0.8621,-1.2328,0.4456,-0.4013,-1.1179,0.4587,-0.5557,-0.9759,0.3014,-1.0411,-1.4979,0.3843,-0.2876,-1.052,0.4413,-0.8549,-1.1887,0.2195,-1.0388,-1.5755,0.6527,0.0574,-1.0737,0.3338,-0.9188,-1.2472,0.4139,-0.8841,-1.4242,0.1611,-1.1051,-1.6032,0.7254,0.4679,-1.575,0.0445,-1.1568,-1.6148,0.2744,-0.0959,-1.6211,0.0683,-0.3544,-1.6452,0.553,0.3195,-1.331,0.4084,-0.4261,-1.3037,0.4695,-0.5768,-1.391,0.303,-0.481,-1.1746,0.5001,-0.7128,-1.1871,0.4391,-0.8192,-1.303,0.5303,-0.8127,-1.4259,0.5033,-0.6692,-1.5404,0.2767,-0.4994,-1.6101,0.0784,-0.5217,-1.3557,0.3551,-0.9888,-1.5842,0.3698,-0.9075,-1.6035,0.336,-0.6751,-1.6837,0.0818,-0.698,-1.5117,0.3926,-1.0243,-1.4701,0.2705,-1.0956,-1.7008,0.1231,-0.8752,-1.6334,0.1491,-1.0265,-1.5604,0.1136,-1.1427,-1.7663,0.0088,-0.8405,-1.7851,-0.0428,-0.6991,-1.8053,-0.045,-0.4637,-1.8501,-0.0502,-0.5678,-1.6873,0.0353,-0.0604,-1.8662,-0.0443,-0.3421,-1.8355,-0.0164,-0.0037,-1.9154,-0.0042,0.2393,-1.733,0.1971,0.27,-1.76,0.4878,0.4491,-1.8487,0.6135,0.5905,-1.9015,0.1888,0.3874,-2.1327,0.087,0.5087,-2.1223,-0.0244,0.3072,-2.2233,-0.0721,0.4062,-1.9803,0.3996,0.5265,-1.6909,0.684,0.6031,-1.4901,0.8854,0.8285,-1.6608,0.8517,0.7986,-1.6481,0.9351,0.9553,-1.8084,0.9299,0.8633,-1.978,1.0257,1.2876,-1.7489,0.9894,1.2733,-1.8217,0.9902,1.367,-1.9783,0.9145,1.0336,-1.997,0.9539,1.4236,-2.041,0.6933,0.8145,-2.0976,0.9047,1.2805,-2.1663,0.5075,0.7653,-2.1922,0.7547,1.4928,-2.2945,0.7425,1.4069,-2.094,0.9615,1.3767,-2.321,0.6488,1.6085,-2.3383,0.105,0.8341,-2.2267,0.7779,1.2369,-2.3703,0.5412,1.1937,-2.4938,0.2543,1.3125,-2.3699,0.5851,1.4,-2.4206,0.505,1.6518,-2.3853,0.4602,1.8666,-2.4917,0.3847,1.7513,-2.381,0.2876,1.9164,-2.4985,0.198,1.7833,-2.4114,0.1249,1.951,-2.5285,0.1753,1.3982,-2.6019,0.0839,1.2942,-2.5325,0.0968,1.5917,-2.332,0.1535,2.0465,-2.4769,0.1325,2.1451,-2.4943,0.0296,1.0824,-2.4804,0.1285,1.8122,-2.5394,0.104,2.0366,-2.6047,0.0768,2.3433,-2.5663,0.0781,1.9102,-2.6827,0.0645,1.8052,-2.592,0.1202,2.123,-2.7573,0.1059,2.0779,-2.6333,0.0887,1.5387,-3.0068,0.0268,1.9929,-3.12,0.0298,2.1856,-2.8625,-0.0026,1.6265,-2.7646,0.0516,1.3966,-3.0226,-0.0435,2.5148,-2.3427,-0.0296,2.6999,-2.084,-0.0342,2.7243,-3.3034,-0.0526,2.3965,-1.8485,0.0013,2.6293,-1.8452,-0.0295,2.8045,-3.2424,-0.026,2.0501,-1.6967,0.0688,2.6399,-1.6583,0.0878,2.732,-3.4381,-0.0798,2.0967,-3.4463,-0.0622,2.2627,-3.2909,-0.0562,1.827,-3.1235,-0.0646,1.7513,-3.0461,-0.0334,1.6045,-2.9582,-0.0041,1.2836,-2.8818,-0.039,1.1486,-2.7891,-0.0773,1.0669,-2.4404,-0.0769,0.7543,-2.5271,-0.0975,0.6601,-2.2857,-0.0969,0.3711,-2.3308,-0.0117,0.7091,1.7326,-0.0407,1.1464,1.6715,-0.0585,1.2189,1.5299,-0.0457,1.1753,1.6352,0.0355,1.0187,1.4621,-0.0513,1.0138,1.4696,0.0141,0.8098,1.3116,0.0682,0.695,1.1428,0.1947,0.439,1.1169,0.3241,0.256,1.0018,0.205,0.1556,1.4334,0.1458,0.6669,1.2813,0.2589,0.5503,1.2885,0.2882,0.4021,1.6964,0.1367,0.8752,1.4499,0.2628,0.5307,1.7213,0.2117,0.6916,1.8621,0.2504,1.0152,1.8781,0.2433,0.8701,1.8607,0.0569,1.1376,1.9611,-0.0335,1.2148,1.6715,-0.0585,1.2189,1.7511,-0.0673,1.3091,1.9968,-0.0714,1.4302,2.1114,-0.0243,1.1341,2.1277,0.0366,1.0903,2.0162,0.154,1.093,2.1265,0.2004,0.8736,2.2295,0.0519,0.9262,2.1567,0.1348,0.7614,2.0093,0.2191,0.7367,1.7372,0.2025,0.5086,1.4949,0.1922,0.2173,1.45,0.2561,0.3196,1.2671,0.303,0.1865,1.4723,0.2749,0.0698,1.3493,0.3127,0.0531,1.2304,0.4327,0.1418,1.5274,0.4227,0.1022,1.4144,0.4092,-0.0246,1.3866,0.2619,-0.0629,1.3391,0.5141,-0.1231,1.3162,0.3953,-0.0892,1.2965,0.4129,0.0225,1.2084,0.4562,-0.0402,1.2676,0.3945,-0.1466,1.2444,0.4822,-0.2315,1.0768,0.3421,0.0615,1.0922,0.3189,-0.1976,1.117,0.4872,-0.342,1.1793,0.3371,-0.2823,0.9997,0.2408,-0.2964,0.8342,0.2395,-0.3819,1.0169,0.2688,-0.4131,0.917,0.5205,-0.6091,1.0505,0.3712,-0.3865,0.8863,0.3967,-0.5763,0.829,0.5155,-0.7196,0.8467,0.2928,-0.5796,0.7962,0.404,-0.7229,0.6328,0.3657,-0.2389,0.7205,0.3592,-0.5658,0.7018,0.5277,-0.6988,0.6066,0.5232,-0.3655,0.6801,0.6146,-0.4599,-1.6441,0.0387,2.9568,
2-1.5874,-0.0206,3.1786,-1.4579,0.0525,3.0203,-1.3829,-0.0134,3.14,-1.5795,0.1951,2.7643,-1.3705,0.1146,2.794,-1.4635,0.2201,2.7958,-1.655,0.158,2.6389,-1.3593,0.1622,2.7102,-1.5177,0.2867,2.6769,-1.5326,0.1908,2.6574,-1.5677,0.1166,2.6561]},{"name":"aNormal","stride":3,"data":[-0.3223,0.9276,-0.1887,-0.3223,0.9276,-0.1887,-0.3223,0.9276,-0.1887,0.1806,0.9815,-0.0628,0.2593,0.9586,0.1179,0.3697,0.9283,0.0393,0.8488,0.5266,-0.0472,0.7399,0.669,-0.0708,0.1261,0.985,-0.1182,0.7176,0.6703,-0.1893,0.9487,-0.1568,0.2744,0.9846,0.1418,-0.1024,0.941,0.3293,-0.0784,0.5689,0.8138,-0.1185,0.1258,0.9909,0.0472,0.5099,0.8551,0.0941,0.4726,0.8743,-0.1103,0.9348,0.3378,0.11,0.9754,0.2203,0.0079,0.8858,0.2822,-0.3684,0.9609,0.2678,-0.0709,0.678,0.678,-0.2838,0.9363,0.2911,-0.1967,0.9806,0.1961,-0.0078,0.8887,0.2359,0.3932,0.7717,0.63,-0.0866,0.165,0.9665,0.1964,0.1819,0.9729,0.1424,0.9918,0.0866,-0.0945,0.8594,0.4888,0.1498,0.1576,0.9773,0.1419,-0.0236,0.9982,-0.055,-0.0394,0.9763,0.2126,0.0394,0.9922,0.1181,0.9102,0.3688,-0.1883,0.9267,0.3377,0.1649,0.7872,0.5983,0.1496,0.7816,0.6237,0.0079,0.9847,0.0158,0.1733,0.7776,0.5576,0.2906,0.8623,0.5063,-0.0079,0.9006,0.4345,0.0079,0.6131,0.676,0.4088,0.8444,0.5287,0.0868,0.4413,0.7723,0.457,0.9173,0.3371,0.2117,0.9113,0.3064,0.275,0.9308,0.355,0.0868,0.8937,0.4429,0.0712,0.6607,0.7473,0.0708,0.9899,-0.
20079,0.1414,0.6368,0.0314,0.7704,0.5423,0.621,0.5659,0.5207,0.4497,0.7258,0.3691,0.4712,0.8011,0.3783,0.6778,0.6305,0.1103,0.4726,0.8743,0.3867,0.6156,0.6866,-0.0078,0.4156,0.9095,-0.5517,0.4256,0.7172,0.3067,0.9201,0.2438,0.2988,0.7312,0.6133,0.1421,0.0789,0.9867,-0.1022,0.7706,0.6291,-0.0237,0.4024,0.9152,-0.126,0.126,0.984,0.2202,0.9358,0.2752,0.3071,0.9372,0.1654,0.1732,0.9681,0.181,0.0865,0.6845,0.7238,-0.3063,0.4163,0.8561,0.0314,0.9816,0.1885,-0.063,0.4017,0.9136,-0.3225,0.0708,0.9439,-0.1654,0.512,0.8429,-0.1423,0.4427,0.8853,-0.0551,0.3463,0.9365,-0.3397,0.7664,0.5452,-0.4789,0.4632,0.7458,-0.3632,0.2684,0.8922,0.6284,0.652,-0.4242,0.1581,0.8617,0.4822,0.3841,0.8466,0.3684,-0.1574,0.6453,0.7476,-0.1728,0.5263,0.8326,-0.2048,0.5356,0.8192,-0.2278,0.809,0.5419,-0.275,0.6992,0.6599,-0.2432,0.2902,0.9256,-0.5849,0.4426,0.6797,-0.5521,0.3313,0.7651,-0.4082,0.7772,0.4789,-0.1658,0.9553,0.2447,-0.307,0.7401,0.5984,-0.6898,0.3998,0.6036,-0.6076,0.5208,0.5997,0.4407,0.7634,-0.4722,-0.2672,0.7623,0.5894,0.1263,0.9232,0.363,-0.4026,0.7736,0.4894,0.6225,0.7801,0.063,0.1965,0.959,-0.2044,0.6078,0.7893,0.0868,0.6519,0.7383,0.1728,0.7721,0.4333,-0.4648,0.2985,0.9268,-0.2278,-0.1025,0.946,-0.3075,-0.4561,0.7863,0.4168,-0.4332,0.8901,-0.1418,-0.055,0.9984,0.0157,-0.4796,0.8098,0.3381,-0.4007,0.7386,-0.5421,-0.2364,0.7327,0.6382,-0.2919,0.8441,0.4497,-0.5127,0.7887,0.3392,-0.6517,0.6831,0.3298,-0.3237,0.8447,-0.4263,0.2121,0.9111,-0.3534,0.0631,0.9696,-0.2365,-0.3069,0.8026,-0.5115,-0.3858,0.8897,-0.2441,-0.4782,0.878,-0.0235,-0.5282,0.8199,0.2207,-0.2038,0.9326,-0.2978,-0.1415,0.9119,-0.3852,-0.3539,0.6921,-0.6291,0.5064,0.633,-0.5855,-0.173,0.8887,0.4247,-0.3715,0.9089,0.1897,-0.7417,0.6707,0,-0.5206,0.5837,0.6231,-0.387,0.8845,0.2606,-0.8114,0.3545,0.4648,-0.6055,0.6291,0.4875,-0.7026,0.4579,0.5447,0.863,0.2981,-0.4079,0.7089,0.3466,-0.6143,0.4576,0.6706,-0.5838,0.6604,0.5503,-0.511,0.8641,0.4635,-0.1964,0.6786,0.4655,-0.5681,0.7797,0.4804,-0.4016,0.797,0.505,-0.3314,0.5975,0.6368,-0.4874,0.641,0.5697,-0.5144,0.7958,0.3467,-0.4964,0.7483,0.4884,-0.449,-0.1259,0.7792,-0.6139,0.0943,0.8247,-0.5577,-0.1335,0.8246,-0.5497,-0.0948,0.8529,-0.5133,0.3937,0.63,-0.6694,-0.1652,0.8182,-0.5507,0.5117,0.3779,-0.7716,0.1573,0.291,-0.9437,-0.0864,0.5103,-0.8557,0.4573,0.1577,-0.8752,0.3547,0.2286,-0.9066,-0.3549,0.8439,-0.4022,-0.1659,0.7822,-0.6005,-0.5117,0.6456,-0.5669,-0.5119,0.4489,-0.7324,-0.2435,0.8247,-0.5105,-0.2522,0.3783,-0.8906,0.5754,0.3626,-0.7331,0.3062,0.8637,-0.4004,0.3919,0.8935,-0.2194,-0.0316,0.9942,-0.1026,0.2369,0.5766,-0.7819,-0.0079,0.9715,-0.2369,0.3143,0.165,-0.9349,0.1422,0.9796,-0.1422,0.251,0.9648,-0.0784,0.2047,0.9685,-0.1417,-0.4552,0.8869,-0.0785,0.2435,0.7935,-0.5578,0.063,0.9136,-0.4017,-0.1335,0.2826,-0.9499,-0.0864,0.2985,-0.9505,0.2523,0.9226,-0.2918,0.1651,0.9825,-0.0865,0,0.9541,-0.2996,0.0079,0.9006,-0.4345,-0.4566,0.4566,-0.7636,-0.6153,0.1893,-0.7652,-0.6609,0.3698,-0.653,-0.1886,0.6287,-0.7544,-0.3546,0.197,-0.914,0.0079,0.5601,-0.8284,0.2451,0.5138,-0.8221,-0.1884,0.7615,-0.6202,-0.4742,0.5295,-0.7034,-0.5515,0.646,-0.5278,-0.2357,0.9428,-0.2357,-0.7952,0.3701,-0.4803,-0.69,0.2823,-0.6665,-0.0473,0.4811,-0.8754,-0.4178,0.6385,-0.6464,-0.3711,0.6159,-0.6949,0.1265,0.5773,-0.8067,-0.6919,0.4167,-0.5897,-0.1259,0.661,-0.7397,-0.4892,0.7654,-0.4182,-0.5901,0.4957,-0.6373,-0.6776,0.7327,0.063,-0.3231,0.5358,-0.7801,-0.3689,0.5652,-0.7379,-0.5662,0.5505,-0.6134,-0.6003,0.4581,-0.6556,0.1022,0.9356,-0.3381,-0.3863,0.9224,0,-0.4408,0.8029,-0.4014,0.3149,0.8187,-0.4802,0.0947,0.9071,-0.4102,-0.0237,0.9314,-0.3631,0.4257,0.678,-0.5992,0.2055,0.7904,0.577,0.5344,0.7937,-0.2908,-0.0947,0.3313,-0.9388,-0.4022,0.3154,-0.8595,0.1963,0.9735,-0.1178,-0.3302,0.1258,-0.9355,0.0787,0.7166,-0.693,0.5173,0.8465,-0.1254,0.5031,0.739,-0.4481,0.5601,0.2761,-0.781,0.8845,0.4659,-0.0237,0.0235,0.8082,-0.5885,0.0863,0.9576,-0.2747,0.1738,0.8451,-0.5055,-0.0709,0.9922,-0.1024,0.2914,0.3702,-0.8821,0.6384,0.6305,-0.4414,0.2609,0.8538,-0.4506,0.2921,0.9156,0.2763,0.6412,0.7125,-0.285,-0.1183,0.9304,-0.3469,-0.063,0.9768,-0.2048,-0.0236,0.9907,-0.1337,-0.2914,0.9136,-0.2835,0.1889,0.362,-0.9128,-0.4655,0.5681,-0.6786,-0.3689,0.777,-0.5101,-0.2049,0.9536,-0.2207,-0.0314,0.9883,0.149,0.5426,0.6841,-0.4875,-0.1496,0.6376,-0.7557,-0.7946,0.5192,
vendor: 11,960 bytes, line 2
2-0.3147,-0.3853,0.8808,-0.2752,-0.0865,0.9597,-0.2675,-0.1021,0.2671,-0.9583,0.6547,0.2367,-0.7178,-0.6482,0.5059,-0.5691,-0.1573,0.983,-0.0944,0.7454,0.5963,-0.2981,0.0787,0.693,-0.7166,-0.2522,0.6226,-0.7408,-0.5755,0.678,-0.4573,-0.2277,0.7929,-0.5652,-0.1886,0.9428,-0.275,-0.5751,0.7878,-0.2206,-0.4162,0.7302,-0.5418,-0.1182,0.8037,-0.5831,-0.347,0.694,-0.6309,0.1341,0.9783,-0.1578,0.1735,0.9777,0.1183,0.2827,0.958,-0.0471,-0.4951,0.8645,0.0865,-0.6934,0.7013,-0.1655,-0.2206,0.7091,-0.6697,0.2197,0.871,-0.4394,0.7719,0.5277,-0.3545,-0.1498,0.2601,-0.9539,0.3081,0.3871,-0.869,0.7075,0.3774,-0.5975,0.8969,0.3462,-0.2754,0.729,0.6428,-0.2352,0.371,0.4893,-0.7893,-0.244,0.5666,-0.787,-0.126,-0.0157,-0.9919,0.063,-0.1024,-0.9927,0.0393,0.2828,-0.9584,-0.1098,0.4,-0.9099,0.165,0.3771,-0.9114,0.6373,0.6924,-0.3383,0.6527,0.7471,-0.1258,0.6043,0.7142,0.3532,0.4946,0.3376,-0.8008,0.0237,0.1026,-0.9944,-0.2592,0.5027,-0.8247,-0.2124,0.6294,-0.7475,-0.1814,0.844,-0.5048,-0.0395,0.9708,-0.2368,0.0236,0.9288,-0.3699,0.0236,0.9694,-0.2443,-0.3687,0.0863,-0.9256,0.055,0.9663,-0.2514,0.0158,0.8283,-0.5601,0.0236,0.9832,-0.1809,-0.0237,0.9936,-0.1104,-0.047,0.737,-0.6743,-0.2915,0.8271,-0.4805,-0.2522,0.9614,-0.1103,-0.639,0.2761,-0.7179,-0.0553,0.7664,-0.64,0.2529,0.7112,-0.6559,-0.3767,0.0235,-0.926,-0.5527,0.8212,-0.1421,-0.1263,0.8443,-0.5208,0.322,0.8718,-0.3691,-0.0628,0.9973,0.0393,-0.283,0.8883,-0.3616,0.1805,0.918,-0.3531,-0.1103,0.9848,-0.1339,0.0157,0.9194,-0.3929,-0.1498,0.8594,-0.4888,-0.221,0.9551,-0.1973,-0.3624,0.8903,-0.2758,-0.6693,0.5669,-0.4803,-0.2603,0.9069,-0.3312,-0.2841,0.947,-0.1499,-0.1883,0.9806,-0.0549,-0.3454,0.8871,0.3062,-0.5142,0.4272,-0.7437,-0.582,0.1337,-0.8022,-0.3695,0.629,-0.684,-0.8765,0.3159,-0.3632,-0.2751,0.5423,-0.7938,-0.6744,-0.1568,-0.7215,-0.5523,0.2446,-0.7969,-0.3637,0.9249,0.1107,0.1336,0.982,-0.1336,-0.393,0.8488,-0.3537,-0.3142,0.267,-0.911,-0.1339,0.4806,-0.8667,-0.0079,0.6831,-0.7302,0.0314,0.9017,-0.4312,0.4016,0.8977,-0.1811,0.4887,0.8039,0.3389,-0.55,0.1728,-0.8171,-0.2991,0.4486,-0.8422,-0.569,0.1976,-0.7982,-0.887,-0.3925,-0.2433,-0.6959,0.2056,-0.688,-0.639,0.3313,-0.6942,-0.8128,-0.4735,-0.3393,-0.8109,-0.4881,-0.3228,-0.6144,0.1969,-0.764,-0.1417,0.7637,-0.6298,0.1023,0.7949,-0.5981,-0.5743,0.6058,-0.5507,0.2197,0.9338,-0.2825,0.5817,0.8096,-0.0786,-0.0394,0.9605,-0.2755,0.0474,0.9875,-0.1501,0.2051,0.978,0.0394,0.417,0.9048,0.0865,0.5061,0.8619,-0.0316,-0.425,0.9051,-0.0079,-0.4713,0.8797,-0.0628,0.2998,0.9466,-0.1183,0.4649,0.851,0.2443,-0.5419,0.8403,-0.0157,0.1574,0.9837,0.0866,0.6112,0.7758,0.1567,-0.7264,0.5053,-0.4658,-0.9494,0.0706,-0.306,0.0789,0.9155,0.3946,0.5183,0.8481,0.1099,-0.3142,0.5969,0.7383,0.5213,0.8451,0.1185,-0.8553,0.5179,0.0157,-0.8656,0.4957,0.0708,-0.9618,0.205,0.1813,-0.549,0.8314,-0.0863,-0.8759,0.4814,0.0316,-0.5294,0.7507,0.3951,-0.2291,0.5688,0.79,-0.724,0.2439,0.6453,-0.776,0.3959,0.491,-0.9643,-0.2529,0.079,-0.4492,0.4492,0.7723,-0.4186,0.5845,0.6951,-0.457,0.5042,0.7327,-0.3617,0.5976,0.7156,0.291,0.8888,0.354,0.4185,0.9081,-0.0158,0.7397,0.661,0.1259,-0.3384,0.5037,0.7949,-0.0632,0.395,0.9165,0.1498,0.8594,0.4888,-0.3629,-0.213,0.9072,0.7234,0.5504,0.4168,0.9518,0.118,0.2832,0.8841,-0.2842,0.371,0.6318,-0.766,0.1185,0.9429,0.11,0.3143,0.6623,-0.0158,0.7491,0.0785,0.4708,0.8788,0.8207,-0.3078,0.4814,0.8746,0.063,0.4807,-0.0711,0.332,0.9406,0.7792,-0.3621,0.5116,-0.4032,0.5851,0.7037,-0.0395,0.2368,0.9708,-0.5295,0.4742,0.7034,-0.1654,-0.4411,0.8821,0.1733,-0.126,0.9768,-0.7792,-0.2676,0.5667,0.7555,-0.5745,0.3148,0.063,-0.9614,0.2679,0.6614,-0.6693,0.3386,-0.4315,-0.9021,0,-0.5182,-0.8244,0.2277,-0.0866,-0.8191,0.5671,-0.6238,-0.3869,0.6791,-0.4816,-0.2605,0.8368,-0.3874,-0.8538,0.3478,-0.1575,0.5276,0.8347,0.7914,0.0475,0.6094,-0.1813,0.4492,0.8748,0.8215,0.1027,0.5608,-0.0315,-0.8117,0.5832,-0.5099,-0.0941,0.8551,-0.465,0.4965,0.733,-0.1655,-0.812,0.5597,0.5603,-0.4261,0.7102,-0.4559,-0.055,0.8883,0.1026,-0.0158,0.9946,0.165,-0.1964,0.9665,0.9014,0.0392,0.4311,0.1967,0.9048,-0.3777,-0.7373,0.651,-0.1804,-0.1971,0.8831,-0.4258,0.8933,0.4111,-0.1818,-0.1099,0.8794,0.4632,0.2435,0.4556,0.8562,-0.0394,0.8115,0.583,-0.0392,0.7841,0.6194,0.9973,0.0393,-0.0628,0.971,-0.2368,0.0316,0.8262,0.5508,0.118,0.3,0.9475,-0.1105,0.1814,0.844,0.5048,-0.2438,0.8337,0.4955,-0.0871,0.6965,0.7123,0.4957,0.7238,0.4799,0.4252,0.8425,0.3307,0.7561,0.5041,0.4174,-0.0791,0.6642,0.7433,0.1979,0.9101,0.364,0.0789,0.9938,0.0789,0.2285,0.6225,0.7485,0.2996,0.7726,0.5597,-0.0393,0.9973,-0.0628,0.2216,0.5698,0.7914,0.6453,0.5744,0.5036,0.2369,0.924,0.3001,0.4339,0.8993,0.0552,0.8188,0.3858,0.4251,-0.2909,0.9513,-0.1022,-0.2988,0.7312,-0.6133,0.4559,0.5502,0.6996,0.9359,-0.3225,0.1416,0.9658,-0.2591,-0.0079,0.8351,-0.3388,0.4333,0.5981,0.7555,-0.2676,0.8133,0.5527,0.1816,0.9772,0.1103,-0.1813,0.9423,0.2591,0.212,0.8717,-0.055,0.4869,0.5613,0.8222,0.0949,0.9551,-0.1973,0.221,0.5584,0.8258,-0.0787,-0.1104,0.9938,0.0158,-0.11,0.9505,-0.2906,0.8335,0.5033,-0.228,0.1735,0.9777,-0.1183,-0.53,0.8385,-0.1266,-0.8582,0.4803,-0.1811,-0.2285,0.8903,-0.3939,-0.4272,0.8703,0.2453,0.2599,0.8507,0.4569,0.3614,0.9115,-0.1964,0.7234,0.5976,-0.346,0.8834,0.3392,0.3234,0.6983,0.7061,0.1177,0.7145,0.5025,0.4868,0.282,0.9321,0.2272,0.1419,0.7881,0.599,-0.1024,0.8431,0.5279,0.628,0.6673,0.4004,-0.0314,0.9654,0.259,0.7008,0.5669,0.4331,0.0709,0.9763,0.2047,-0.0079,0.9771,0.2128,0.1656,0.9859,-0.0237,-0.0157,0.9887,0.1491,-0.1025,0.9622,0.2524,0.2286,0.9066,0.3547,0.1964,0.9115,0.3614,0.3857,0.921,-0.0551,0.3152,0.9457,-0.0788,0.1577,0.9303,0.3311,0.3072,0.8664,0.3938,-0.2451,0.7905,0.5613,-0.4728,0.7801,0.4098,-0.126,0.9768,0.1733,-0.0706,0.9654,0.2512,-0.6199,0.6277,0.4708,0.8641,0.4635,-0.1964,0.7947,0.4485,0.4091,0.5582,0.8176,-0.1415,0.251,0.9648,0.0784,-0.4424,0.8691,-0.2212,0.4412,0.6146,0.6539,0.1571,0.9662,0.2042,-0.0237,0.7264,0.6869,-0.5968,0.6125,0.5183,-0.1181,0.8897,0.4409,0.1502,0.8298,0.5374,0.2992,0.9369,0.1811,-0.0315,0.9995,0.0079,0.37,0.8896,0.2677,0.2922,0.8846,0.3633,0.055,0.9977,0.0393,0.4948,0.8639,0.0942,-0.1177,0.8944,0.4315,0.3227,0.9444,0.063,0.8252,0.4794,0.2986,0.3319,0.9325,0.1422,0.1808,0.9827,0.0393,0.0629,0.998,0,0.4568,0.8349,0.3072,0.9856,0.0788,0.1498,0.8966,-0.1494,0.4168,0.9825,0.1651,-0.0865,0.606,0.362,0.7083,0.6722,0.6801,-0.2926,0.604,0.7844,0.1412,0.3556,0.9325,0.0632,0.3236,0.8366,0.442,0.2688,0.9249,0.2688,-0.2595,0.9515,0.1651,0.0237,0.9952,-0.0948,0.0943,0.9903,0.1022,0.6473,0.6473,0.4026,0.1492,0.8561,0.4948,0.0472,0.976,-0.2125,0.2434,0.9499,0.1963,0.8337,-0.1652,0.527,0.3923,0.4394,0.8081,0.055,0.9974,-0.0471,0,0.9955,-0.0948,0.5144,-0.0712,0.8546,0.4964,0.8668,-0.0473,-0.0158,0.9562,0.2924,0.8314,-0.1804,0.5255,-0.1336,0.9903,-0.0393,0.5024,0.8086,-0.3062,0.843,0.0473,-0.5358,0.5039,0.5826,0.6377,0.7084,-0.0866,0.7005,-0.0864,0.9902,-0.11,0.4723,-0.1653,0.8658,0.5435,0.2678,0.7955,0.4265,0.0869,0.9003,0.1892,0.8278,0.5282,0.1738,0.5769,0.7981,0.2522,0.4886,0.8353,0.0553,0.9803,0.1897,0,0.992,0.126,-0.0393,0.9045,0.4247,-0.3221,0.8957,0.3064,-0.0315,0.5508,0.8341,0.1894,0.7893,0.5841,0.4561,0.4168,0.7863,0.8091,0.4635,0.3613,0.8209,0.371,0.4341,0.6283,0.6362,0.4477,0.6617,0.7089,0.2442,0.8258,0.4326,0.3618,0.6548,0.6075,0.4497,0.5358,0.3231,0.7801,0.9288,0.0236,0.3699,0.236,0.7472,0.6213,0.9128,0.1731,0.3698,0.4724,0.8346,0.2834,-0.1809,0.9754,-0.1259,-0.1343,0.9795,-0.1501,-0.079,0.972,0.2213,-0.4969,0.8518,-0.1656,-0.0709,0.9763,-0.2047,0.0157,0.9998,0.0157,-0.1806,0.9815,-0.0628,0.0708,0.6135,0.7865,-0.4341,0.892,-0.1263,-0.0708,0.3853,0.9201,0.1652,0.527,0.8337,0.0942,0.3219,0.9421,0.0474,0.7982,0.6006,0.2055,0.577,0.7904,0.3068,0.653,0.6924,0.1416,0.7,0.7,0.1577,0.7177,0.6783,-0.3768,0.7457,-0.5495,0.0553,0.7978,-0.6003,-0.4025,0.6393,-0.6551,-0.3627,0.4967,-0.7885,0.0316,0.9077,-0.4183,-0.4469,0.6742,-0.588,-0.6602,0.7309,-0.1729,-0.9594,0.2595,-0.1101,-0.3779,0.6141,-0.6928,-0.9221,0.0236,-0.3862,-0.5851,0.5851,-0.5614,-0.7549,0.401,-0.519,-0.6076,0.1815,-0.7733,-0.5932,0.6723,-0.4429,-0.2123,0.8179,-0.5348,-0.3231,0.7958,-0.5122,-0.259,0.9577,-0.1256,-0.1662,0.7754,-0.6092,-0.6594,0.3611,-0.6594,-0.0157,0.9194,-0.3929,-0.1976,0.7746,-0.6007,-0.887,0.3925,-0.2433,-0.4328,0.7476,-0.5037,0.4082,0.4239,-0.8085,0.2911,0.4957,-0.8183,-0.6722,0.7196,-0.174,-0.511,0.6604,-0.5503,-0.9667,0.1729,-0.1886,-0.7402,0.6379,-0.2126,-0.9346,0.2592,-0.2435,-0.6386,0.6701,-0.3784,-0.0236,0.7776,0.6283,-0.6936,0.6857,0.2207,0.4801,0.8737,0.0787,0.3541,0.9049,-0.2361,-0.0473,0.9307,-0.3628,-0.4863,0.855,0.1804,-0.4322,0.3457,0.8329,-0.8269,0.4489,0.3386,0.4909,0.3801,-0.7839,-0.7091,0.6854,-0.1655,-0.8315,0.5412,0.1255,-0.9633,0.1105,0.2448,-0.3148,0.724,-0.6138,0.0393,0.4406,-0.8969,-0.9555,0.2843,-0.079,-0.8221,0.1344,-0.5533,-0.4337,0.134,-0.891,-0.4392,0.8626,0.251,-0.3223,0.9434,0.0786,-0.3005,0.949,-0.0949,-0.2993,0.953,0.0473,-0.733,0.6699,-0.1182,-0.2199,0.974,-0.055,-0.378,0.9136,-0.1496,-0.2671,0.8405,-0.4713,-0.8213,0.379,-0.4264,-0.5597,0.3547,-0.7489,-0.4573,0.5755,-0.678,-0.3695,0.4559,-0.8097,-0.7219,0.3374,-0.6042,-0.5908,0.7168,-0.3702,-0.4235,0.8469,-0.3215,-0.4566,0.4566,-0.7636,-0.3934,0.8026,-0.4485,-0.3067,0.9201,-0.2438,0.0549,0.8007,-0.5966,0.2762,0.939,-0.2052,-0.1963,0.8011,-0.5655,-0.2276,0.9732,-0.0314,0.2994,0.9533,0.0394,0.2127,0.8508,0.4805,-0.6683,0.6054,-0.4324,-0.0866,0.5435,0.8349,-0.5496,0.636,-0.5417,-0.694,0.6546,-0.2997,-0.74,0.4173,-0.5275,-0.3066,0.6367,0.7075,-0.7475,0.6294,0.2124,-0.5122,0.7958,0.3231,-0.4876,0.8259,0.2831,-0.8733,0.2518,-0.417,-0.5737,0.7388,-0.3537,-0.9186,0.2591,-0.2984,-0.8922,0.3632,-0.2684,-0.9217,0.3781,0.0867,-0.8275,0.5595,-0.0473,-0.2839,0.4968,0.8201,-0.9763,0.1811,0.1181,-0.4182,0.2682,0.8679,-0.9562,0.1019,0.2743,-0.5131,0.7814,0.3552,-0.967,0.2516,0.0393,-0.5273,0.8185,-0.2282,-0.6776,0.7327,0.063,-0.0787,0.9844,0.1575,0.0471,0.958,0.2827,-0.5531,0.6795,-0.482,-0.7489,0.5597,0.3547,-0.0157,0.9094,-0.4155,-0.0944,0.9363,0.3383,-0.1181,0.9919,0.0472,-0.2754,0.952,-0.1338,-0.4007,0.9114,0.0943,-0.0237,0.9952,-0.0948,-0.0866,0.9837,0.1574,-0.2288,0.9153,-0.3314,-0.283,0.9434,0.173,-0.3075,0.946,0.1025,-0.3137,0.9412,-0.1255,-0.1022,0.9751,0.1966,-0.0236,0.9818,0.1885,0,0.9874,0.158,-0.1574,0.9678,0.1967,-0.2047,0.9369,0.2834,-0.3708,0.9152,0.1578,-0.3476,0.9242,-0.158,-0.5536,0.8304,0.0633,-0.7393,0.6528,0.1652,-0.1181,0.9919,-0.0472,-0.1102,0.9914,0.0708,-0.1501,0.9875,-0.0474,-0.102,0.9887,-0.1099,-0.2054,0.9715,0.1185,-0.1968,0.9759,-0.0944,-0.0079,0.9006,-0.4345,-0.1186,0.9489,-0.2926,-0.2839,0.9384,-0.1971,-0.1105,0.9868,-0.1184,-0.2761,0.9467,-0.1657,-0.7834,0.5302,-0.3244,-0.071,0.7727,0.6308,-0.2363,0.9531,0.189,-0.1893,0.9704,0.1499,-0.6055,0.692,0.3932,-0.237,0.9558,0.1738,-0.3688,0.7611,0.5336,-0.3795,0.5614,0.7354,-0.7,0.5427,0.4641,-0.393,0.7309,0.558,-0.5829,0.7798,0.2284,-0.1578,0.6943,0.7022,-0.3552,0.7814,0.5131,-0.1178,0.9893,0.0864,-0.5534,0.7985,0.2372,0.1896,0.9323,0.3081,-0.2131,0.9629,0.1657,-0.2512,0.8949,0.3689,-0.2202,0.9753,-0.0157,-0.1264,0.158,0.9793,-0.0314,0.9349,0.3535,-0.0314,0.9895,0.1414,-0.1024,0.9766,0.189,0.0079,0.991,0.1337,0.2763,0.7972,0.5367,0.4789,0.5417,0.6908,0.4315,0.5806,0.6904,0.5925,0.7979,0.1106,0.8721,0.4871,0.0471,0.7923,0.4314,-0.4314,0.2834,0.9209,-0.2676,0.1422,0.9796,-0.1422,0.1574,0.9761,0.1496,0.3228,0.8897,-0.3228,0.5356,0.7955,0.2835,-0.5607,0.6791,0.4738,0.5662,0.7943,0.2202,0.2986,0.8252,0.4794,-0.7188,0.2528,0.6477,-0.6453,0.0315,0.7633,0.1254,0.7054,0.6976,-0.6709,0.3473,0.6551,-0.1569,0.8157,0.5568,0.6984,0.6905,0.1883,-0.2918,0.9226,-0.2523,-0.593,0.7986,0.1028,-0.7776,0.2199,0.5891,-0.8019,0.5975,-0.0079,-0.5265,0.8408,-0.1257,-0.6076,0.3709,0.7023,-0.7149,0.6285,0.3064,-0.3063,0.9503,-0.055,0.2366,0.9623,0.1341,-0.5747,0.5826,0.5747,-0.7723,0.457,0.4413,-0.6443,0.0629,0.7622,-0.7693,0.2826,0.573,-0.4876,0.2831,0.8259,-0.1492,0.8166,0.5575,-0.0474,0.5686,0.8213,0.8995,0.4103,0.1499,0.6874,0.6242,0.3713,0.8431,-0.1024,0.5279,0.9768,
2-0.0236,0.2127,0.8336,-0.4876,0.2595,-0.5043,0.7643,0.4019,-0.134,0.954,0.2681,0.2599,0.8034,0.5356,0.1736,0.9786,0.1105,-0.558,0.7309,0.393,0.6317,0.6475,0.4264,0.2286,0.8277,0.5124,-0.5639,0.4778,-0.6736,0.7707,0.519,-0.3696,0.0158,0.9316,-0.3632,0.1103,0.2206,-0.9691,0.0552,0.7255,-0.686]},{"name":"aUV0","stride":2,"data":[0.68213,0.36133,0.68213,0.37598,0.70654,0.36963,0.0041,0.3501,0.01235,0.37354,0.01385,0.31836,0.02428,0.33154,0.0303,0.24316,0.00941,0.2373,0.03766,0.20117,0.03827,0.375,0.0401,0.32275,0.04584,0.24951,0.02007,0.40039,0.01273,0.44141,0.02792,0.44238,0.04111,0.47559,0.05978,0.47363,0.03732,0.40332,0.07928,0.18799,0.07751,0.25098,0.06281,0.15234,0.06021,0.3125,0.05621,0.35205,0.06235,0.38086,0.08502,0.33789,0.06616,0.51514,0.05185,0.50757,0.04755,0.41357,0.07782,0.36768,0.08295,0.54199,0.0741,0.58032,0.11615,0.55957,0.13623,0.57349,0.065,0.40967,0.08893,0.40381,0.112,0.43506,0.11255,0.39062,0.05957,0.44189,0.11053,0.41455,0.09149,0.29443,0.1153,0.28613,0.14099,0.41602,0.13293,0.37695,0.16724,0.38965,0.07867,0.43896,0.08728,0.46289,0.11792,0.32666,0.1311,0.29932,0.15332,0.36523,0.07843,0.46924,0.0874,0.49707,0.07617,0.5061,0.11145,0.45459,0.10876,0.48291,0.13098,0.43799,0.13123,0.45557,0.15808,0.42334,0.14636,0.46484,0.07159,0.51196,0.07947,0.52368,0.09686,0.52954,0.11029,0.51221,0.12561,0.54321,0.12927,0.49414,0.14709,0.52686,0.1709,0.56152,0.19226,0.59131,0.20544,0.62622,0.16162,0.54712,0.14612,0.49316,0.19812,0.55884,0.17432,0.53247,0.17896,0.45557,0.18408,0.5,0.2207,0.53564,0.17004,0.44531,0.18604,0.41016,0.1991,0.43652,0.22266,0.45557,0.22302,0.55273,0.21973,0.54321,0.23718,0.53638,0.24011,0.52173,0.26538,0.47949,0.22913,0.4248,0.22522,0.40771,0.22473,0.38135,0.25977,0.43701,0.29736,0.45166,0.28784,0.49463,0.26807,0.41699,0.27368,0.52002,0.19373,0.37939,0.28784,0.4248,0.30469,0.39648,0.25073,0.54321,0.2688,0.40332,0.19519,0.35303,0.21191,0.35645,0.18774,0.33936,0.19763,0.3291,0.18018,0.31738,0.15881,0.30127,0.15369,0.27881,0.17432,0.29297,0.18274,0.2959,0.23218,0.35352,0.21338,0.33496,0.24109,0.32861,0.24475,0.37305,0.2052,0.30762,0.25049,0.35303,0.2605,0.37305,0.29321,0.38525,0.27466,0.3501,0.22107,0.32422,0.2345,0.31006,0.22839,0.27588,0.2666,0.30176,0.20288,0.27881,0.26196,0.31982,0.28735,0.32422,0.30347,0.29395,0.18665,0.27344,0.19287,0.25195,0.17322,0.26025,0.30664,0.35889,0.30908,0.31738,0.35913,0.30811,0.31934,0.36963,0.31958,0.34814,0.35181,0.35596,0.38062,0.35156,0.3396,0.40527,0.15613,0.25879,0.14111,0.27197,0.12927,0.25098,0.14062,0.25244,0.11066,0.25732,0.10333,0.23438,0.13354,0.2085,0.15662,0.20703,0.16919,0.22607,0.10345,0.20459,0.10107,0.16309,0.125,0.17578,0.18945,0.2417,0.21606,0.24121,0.21252,0.21387,0.19299,0.21924,0.17395,0.19775,0.23962,0.26074,0.16003,0.17188,0.18054,0.15527,0.19202,0.17236,0.15039,0.15918,0.1203,0.14893,0.26294,0.27832,0.29004,0.27393,0.27148,0.25146,0.21106,0.17871,0.24597,0.22119,0.23389,0.19873,0.10187,0.14648,0.10992,0.12061,0.07532,0.12549,0.10907,0.09424,0.14062,0.11523,0.13098,0.09131,0.17676,0.11475,0.20398,0.06104,0.18628,0.05518,0.19324,0.03955,0.22729,0.03906,0.177,0.08643,0.22363,0.07178,0.22107,0.09033,0.21533,0.12305,0.2522,0.05566,0.24988,0.04004,0.27905,0.02197,0.24194,0.08447,0.21375,0.15234,0.24573,0.1167,0.22229,0.18066,0.23315,0.1377,0.25806,0.14258,0.24084,0.18213,0.2417,0.15869,0.26636,0.18604,0.25293,0.19873,0.25757,0.22021,0.29565,0.2168,0.27368,0.22314,0.28638,0.24121,0.3042,0.26367,0.32861,0.26953,0.29492,0.23584,0.31616,0.24854,0.29712,0.19287,0.32861,0.22607,0.33813,0.29443,0.38354,0.27197,0.37842,0.31006,0.33691,0.21191,0.31836,0.19434,0.35669,0.229,0.29834,0.16992,0.33545,0.19385,0.38013,0.20996,0.37695,0.22705,0.32007,0.16992,0.40186,0.23779,0.39429,0.2959,0.40259,0.2666,0.39526,0.3335,0.40747,0.30176,0.29565,0.14209,0.28223,0.13477,0.2915,0.12012,0.26758,0.13623,0.27222,0.1123,0.27783,0.09131,0.28589,0.06104,0.31323,0.13867,0.29736,0.09912,0.28711,0.04346,0.3103,0.01953,0.33276,0.0249,0.33496,0.00879,0.31641,0.05273,0.3064,0.07764,0.32178,0.08545,0.31592,0.11475,0.31982,0.13037,0.3584,0.01953,0.35522,0.00049,0.36694,0.0083,0.37915,0.04395,0.33521,0.04785,0.35596,0.0498,0.34546,0.0835,0.34229,0.10498,0.33325,
20.1167,0.34595,0.12061,0.36621,0.11523,0.36938,0.07959,0.38599,0.0625,0.42725,0.0791,0.3938,0.0874,0.34619,0.13525,0.427,0.12109,0.43872,0.08984,0.33447,0.15869,0.35767,0.14941,0.39282,0.11133,0.3811,0.15723,0.44727,0.12256,0.45874,0.11523,0.41479,0.15186,0.4375,0.1582,0.42212,0.19189,0.47021,0.15039,0.33569,0.17529,0.35254,0.19287,0.35254,0.1709,0.37842,0.18799,0.40088,0.17383,0.45093,0.17773,0.41455,0.21484,0.41943,0.2334,0.45923,0.19189,0.43823,0.20557,0.4375,0.23193,0.41553,0.25879,0.43335,0.26318,0.45239,0.23291,0.49756,0.18066,0.46655,0.20264,0.50342,0.19385,0.50586,0.21631,0.4707,0.21729,0.47314,0.24658,0.46021,0.26367,0.44019,0.30469,0.41992,0.33643,0.51758,0.17969,0.52393,0.19482,0.53662,0.16504,0.5083,0.1665,0.51074,0.14697,0.54688,0.13184,0.56982,0.14502,0.59717,0.12939,0.54541,0.2002,0.67383,0.12061,0.62207,0.15576,0.65576,0.11621,0.68555,0.09619,0.56152,0.16357,0.68994,0.13867,0.72266,0.15186,0.56006,0.18555,0.58105,0.17627,0.6582,0.15234,0.57373,0.20215,0.68701,0.17139,0.6709,0.1626,0.65088,0.17529,0.66553,0.18848,0.72266,0.20117,0.74805,0.17822,0.76562,0.21191,0.6416,0.19775,0.61133,0.19238,0.68457,0.20801,0.68408,0.23047,0.66748,0.2168,0.74902,0.22119,0.79297,0.25977,0.80371,0.25635,0.80762,0.28809,0.59814,0.19922,0.61865,0.22168,0.63623,0.22412,0.65039,0.24805,0.65625,0.21729,0.59619,0.21191,0.59521,0.22803,0.66309,0.23438,0.6499,0.23096,0.66504,0.25391,0.53467,0.22217,0.50391,0.24219,0.51855,0.26416,0.4834,0.26758,0.47632,0.29688,0.4646,0.33154,0.58691,0.27539,0.55469,0.26514,0.61719,0.24414,0.64453,0.26562,0.63086,0.28271,0.59424,0.2915,0.65479,0.30957,0.66992,0.30957,0.63135,0.30176,0.56543,0.30469,0.54736,0.28711,0.58252,0.30859,0.53613,0.29443,0.55176,0.31006,0.51123,0.29199,0.521,0.31152,0.49829,0.31982,0.56689,0.33691,0.55762,0.34277,0.58691,0.36084,0.58154,0.33252,0.55908,0.36426,0.49829,0.34668,0.60889,0.34082,0.57373,0.36328,0.45166,0.38525,0.62646,0.31787,0.64648,0.31592,0.56006,0.38135,0.5415,0.37939,0.58398,0.37891,0.47827,0.37061,0.62256,0.3374,0.64258,0.33496,0.66162,0.35645,0.6084,0.36328,0.62939,0.36621,0.60938,0.37305,0.60742,0.38672,0.64453,0.38477,0.66357,0.39014,0.67529,0.34961,0.62744,0.41309,0.5874,0.43311,0.59619,0.44629,0.54834,0.41113,0.53418,0.40527,0.5083,0.40381,0.47363,0.41797,0.56787,0.4375,0.53174,0.42139,0.50537,0.41992,0.57471,0.4502,0.49316,0.43018,0.46313,0.42188,0.47876,0.44238,0.4729,0.45459,0.43677,0.38721,0.49561,0.44922,0.50488,0.44238,0.448,0.42188,0.40967,0.34961,0.396,0.35791,0.40723,0.36182,0.51465,0.43457,0.54883,0.44531,0.52295,0.4502,0.55615,0.45459,0.50439,0.45898,0.52197,0.46143,0.49194,0.46094,0.50146,0.46875,0.48608,0.47363,0.50977,0.47363,0.53027,0.47314,0.56592,0.46338,0.50928,0.48633,0.6001,0.45508,0.53174,0.48096,0.62158,0.43945,0.46777,0.47266,0.49292,0.49609,0.44702,0.43994,0.57031,0.47607,0.53467,0.4873,0.5293,0.50073,0.5957,0.47168,0.60889,0.47607,0.55518,0.48828,0.58105,0.4873,0.61523,0.45947,0.63135,0.45361,0.64648,0.43066,0.65967,0.40625,0.66699,0.43115,0.64844,0.44678,0.56348,0.50317,0.59668,0.49561,0.54736,0.51294,0.57324,0.51196,0.64795,0.46338,0.61523,0.49414,0.60742,0.50073,0.65967,0.44629,0.59766,0.50366,0.51953,0.52905,0.56543,0.52368,0.58398,0.5271,0.59131,0.52026,0.61035,0.51489,0.48706,0.51367,0.50537,0.56055,0.53857,0.54346,0.46582,0.4917,0.60156,0.53369,0.56836,0.54907,0.47119,0.52417,0.44873,0.4707,0.59326,0.5481,0.61133,0.56128,0.61328,0.53101,0.58545,0.56641,0.55957,0.56738,0.44629,0.50122,0.62305,0.52075,0.64062,0.49365,0.63232,0.54346,0.5415,0.56836,0.62451,0.55737,0.64551,0.56982,0.65967,0.48486,0.66064,0.50537,0.66699,0.47363,0.66406,0.55786,0.68066,0.49268,0.67773,0.46094,0.69336,0.48828,0.63428,0.58423,0.61523,0.59863,0.59619,0.60547,0.58008,0.59399,0.56152,0.58276,0.57275,0.60205,0.56055,0.61328,0.55225,0.58691,0.52637,0.58179,0.52148,0.59961,0.51123,0.59106,0.53662,0.62476,0.49097,0.57324,0.44849,0.52954,0.41968,0.51587,0.43262,0.48145,0.40942,0.48682,0.42505,0.45703,0.45923,0.55933,0.41968,0.54639,0.48486,0.59985,0.40845,0.5564,0.38989,0.55176,0.5083,0.61963,0.49292,0.62329,0.5293,0.64551,0.51855,0.65454,0.53809,0.67578,0.55469,0.67871,0.3916,0.52344,0.36694,0.54565,0.35742,0.57935,0.3374,0.58447,0.36816,0.50562,0.55078,0.63818,0.56152,0.65112,0.56201,0.6272,0.57324,0.64062,0.59033,0.62061,0.57617,0.66626,0.59961,0.69971,0.57959,0.64917,0.59766,0.64307,0.61523,0.63843,0.59521,0.67554,0.61621,0.69165,0.61963,0.72534,0.62988,0.64526,0.64551,0.72314,0.65137,0.75269,0.63623,0.68652,0.65723,0.64624,0.6416,0.62622,0.65137,0.61328,0.67383,0.74927,0.70557,0.80249,0.72217,0.82825,0.7334,0.79309,0.64795,0.59326,0.67041,0.61011,0.66748,0.57544,0.66699,0.63501,0.73779,0.82117,0.7373,0.8501,0.69678,0.73901,0.67383,0.72656,0.65771,0.7041,0.68945,0.70801,0.66797,0.69116,0.68262,0.67993,0.69141,0.66821,0.70947,0.68872,0.7124,0.71826,0.73145,0.76514,0.68848,0.65454,0.71289,0.67627,0.74512,0.71265,0.75439,0.76453,0.71094,0.65723,0.73877,0.78235,0.76318,0.79517,0.69482,0.62915,0.7749,0.75708,0.75146,0.80579,0.74316,0.83008,0.75391,0.70361,0.74854,0.6853,0.7959,0.73022,0.72217,0.64502,0.75098,0.67285,0.77295,0.69897,0.79199,0.71558,0.82422,0.70947,0.77197,0.68652,0.83154,0.72241,0.85303,0.74146,0.8335,0.76233,0.78027,0.78528,0.74561,0.64868,0.76172,0.66431,0.72217,0.61938,0.70605,0.60889,0.68408,0.59082,0.70166,0.56982,0.73535,0.5791,0.68604,0.55762,0.7168,0.54614,0.69385,0.53662,0.68359,0.52441,0.70264,0.52539,0.67725,0.50488,0.6958,0.51611,0.70752,0.50977,0.72021,0.50952,0.7334,0.54712,0.74463,0.51855,0.71484,0.47412,0.74951,0.573,0.70508,0.44385,0.75098,0.59326,0.73975,0.44678,0.75049,0.61792,0.78955,0.63135,0.79297,0.60107,0.78613,0.67749,0.82129,0.69531,0.81738,0.66309,0.82227,
20.62695,0.83838,0.65161,0.7168,0.42041,0.7002,0.42285,0.7207,0.37305,0.67432,0.41943,0.68896,0.39453,0.7417,0.41699,0.68213,0.37646,0.68213,0.36133,0.70654,0.36963,0.68213,0.33789,0.69287,0.35449,0.67725,0.30225,0.70459,0.35693,0.6958,0.33887,0.67627,0.27881,0.71973,0.35107,0.70459,0.32764,0.68262,0.25049,0.75098,0.37744,0.69531,0.28271,0.70801,0.24658,0.75781,0.43213,0.69678,0.2666,0.7168,0.28027,0.73682,0.24219,0.76807,0.479,0.76318,0.23926,0.77148,0.40234,0.77686,0.35596,0.77783,0.45947,0.73193,0.3501,0.729,0.32617,0.74512,0.34277,0.71387,0.30664,0.71143,0.29004,0.729,0.2959,0.74219,0.31201,0.75879,0.33008,0.77588,0.33398,0.73047,0.26953,0.75684,0.28516,0.75977,0.30908,0.77832,0.30713,0.74854,0.27393,0.74609,0.26172,0.7749,0.28369,0.76807,0.26416,0.75586,0.25244,0.79443,0.28516,0.80225,0.30664,0.7998,0.33984,0.80811,0.32471,0.79102,0.39697,0.80566,0.35596,0.81104,0.40479,0.82617,0.44482,0.79932,0.44775,0.79395,0.47559,0.80078,0.49609,0.81641,0.46729,0.86475,0.48975,0.87549,0.4668,0.90381,0.4834,0.82373,0.48828,0.78027,0.49561,0.75635,0.52319,0.7749,0.51953,0.77197,0.53809,0.7915,0.53003,0.80078,0.57666,0.77979,0.57446,0.78564,0.58447,0.80957,0.54956,0.80127,0.59229,0.82324,0.52539,0.81885,0.57886,0.84814,0.52271,0.82471,0.6106,0.83594,0.60107,0.81055,0.58765,0.83887,0.62646,0.8999,0.53809,0.83545,0.5791,0.85938,0.58154,0.89014,0.60498,0.85107,0.60449,0.854,0.63647,0.84863,0.6604,0.86377,0.65356,0.85547,0.68091,0.87891,0.6709,0.86816,0.69653,0.90039,0.62183,0.91699,0.61328,0.90234,0.65479,0.85498,0.71045,0.87354,0.72388,0.91699,0.57568,0.8833,0.68066,0.88379,0.71021,0.88818,0.74927,0.89209,0.69507,0.91113,0.68481,0.88965,0.72217,0.91162,0.71973,0.91553,0.64966,0.94336,0.71533,0.95166,0.74048,0.93848,0.6665,0.93457,0.63062,0.93408,0.77649,0.85791,0.79114,0.83105,0.79956,0.96826,0.76941,0.80176,0.79578,0.80908,0.8175,0.96924,0.72803,0.78369,0.80347,0.78271,0.82178,0.99023,0.73828,0.98779,0.75806,0.98047,0.7041,0.96338,0.69092,0.95996,0.66724,0.95996,0.62256,0.95459,0.60474,0.94873,0.58838,0.92969,0.5332,0.94189,0.52563,0.92188,0.48145,0.90918,0.52295,0.27515,0.62622,0.28418,0.63135,0.30054,0.6311,0.29297,0.60156,0.31567,0.60742,0.31421,0.57568,0.33374,0.55835,0.35522,0.52368,0.35571,0.49805,0.37891,0.49219,0.31763,0.55347,0.33545,0.5354,0.33496,0.5188,0.28662,0.57935,0.31543,0.53589,0.28198,0.55664,0.26831,0.59229,0.26562,0.57739,0.26172,0.61597,0.24121,0.63232,0.28223,0.6355,0.2666,0.64893,0.23145,0.65479,0.22498,0.6167,0.2312,0.60596,0.24902,0.60229,0.23633,0.58179,0.21326,0.58813,0.22559,0.57007,0.24707,0.56445,0.27661,0.53418,0.30566,0.5,0.31299,0.51147,0.33496,0.49463,0.31177,0.479,0.32642,0.479,0.34473,0.48193,0.29883,0.46826,0.31812,0.45752,0.32129,0.46875,0.3269,0.43994,0.33325,0.45557,0.3374,0.47021,0.34668,0.46387,0.34204,0.44727,0.3418,0.42969,0.36279,0.47705,0.36572,0.44727,0.35425,0.4126,0.35815,0.43408,0.37866,0.43701,0.3938,0.42773,0.37744,0.42236,0.38086,0.37988,0.36792,0.4165,0.38574,0.39453,0.39453,0.37158,0.39209,0.40381,0.39673,0.38477,0.42212,0.4375,0.40381,0.40234,0.40698,0.37646,0.42773,0.4126,0.42798,0.3916,0.78857,0.84949,0.79053,0.87958,0.76758,0.86255,0.76318,0.88141,0.7749,0.8313,0.75488,0.84009,0.76514,0.83923,0.77832,0.81348,0.75586,0.83264,0.76758,0.82764,0.76367,0.81384,0.7666,0.80469]},{"name":"aUV1","stride":2,"data":[0.68311,0.4751,0.68359,0.48975,0.70752,0.48291,0.00869,0.46387,0.01689,0.4873,0.01839,0.43262,0.02878,0.44531,0.03476,0.35742,0.01397,0.35156,0.04208,0.31543,0.04266,0.48877,0.04453,0.43652,0.05023,0.36377,0.02458,0.51392,0.01726,0.55444,0.03238,0.55542,0.0455,0.58838,0.06409,0.58667,0.04175,0.5166,0.0835,0.30273,0.08173,0.36523,0.06708,0.26709,0.06451,0.42627,0.06055,0.46582,0.06665,0.49463,0.08917,0.45166,0.07043,0.62817,0.05621,0.62061,0.05194,0.52661,0.08203,0.48145,0.08716,0.65479,0.07837,0.69312,0.12018,0.67236,0.14014,0.68628,0.06927,0.52295,0.09314,0.51709,0.11603,0.5481,0.11664,0.50391,0.0639,0.55493,0.11462,0.52759,0.09564,0.40869,0.11938,0.40039,0.14502,0.5293,0.13684,0.49072,0.17102,0.50293,0.08289,0.55225,0.09149,0.57593,0.12195,0.44043,0.13501,0.41309,0.15723,0.47852,0.08264,0.58203,0.09161,0.61011,0.08044,0.61914,0.11554,0.56787,0.11285,0.5957,0.13489,0.55151,0.13513,0.5686,0.16187,0.53687,0.15027,0.57764,0.07587,0.625,0.08368,0.63672,0.10101,0.64233,0.11438,0.62524,0.12964,0.65601,0.13318,0.60693,0.151,0.63965,0.17468,0.67432,0.19604,0.70386,0.20898,0.73853,0.16541,0.65967,0.15002,0.6062,0.20178,0.67163,0.1781,0.64526,0.18274,0.5686,0.18787,0.61304,0.22424,0.64844,0.17383,0.55835,0.18982,0.52319,0.20276,0.54956,0.2262,0.5686,0.22656,0.66553,0.22327,0.65601,0.24072,0.64917,0.24353,0.63452,0.2688,0.59229,0.23267,0.53833,0.22876,0.521,0.22827,0.49512,0.26318,0.55005,0.30054,0.5647,0.29126,0.60742,0.27148,0.53052,0.2771,0.63281,0.19739,0.49268,0.29102,0.53833,0.30762,0.51001,0.25415,0.65601,0.27222,0.5166,0.19885,0.4668,0.21545,0.47021,0.19141,0.45312,0.20129,0.44287,0.18396,0.43115,0.1626,0.41553,0.15759,0.39307,0.1781,0.40674,0.18652,0.40967,0.2356,0.46729,0.21704,0.44873,0.24463,0.44238,0.24817,0.48682,0.20886,0.42139,0.25391,0.4668,0.26392,0.48633,0.29639,0.49854,0.27783,0.46387,0.22461,0.43799,0.23804,0.42383,0.23193,0.39014,0.27002,0.41602,0.20654,0.39258,0.26514,0.43359,0.29053,0.43799,0.30664,0.40771,0.19031,0.3877,0.19653,0.36621,0.177,0.37451,0.30981,0.47266,0.31226,0.43164,0.36182,0.42188,0.32227,0.48291,0.32275,0.46191,0.35474,0.46973,0.3833,0.46484,0.34253,0.51855,0.16003,0.37305,0.14502,0.38574,0.1333,0.36523,0.14453,0.3667,0.11475,0.37158,0.10
2742,0.34863,0.13757,0.32275,0.16052,0.32178,0.1731,0.34033,0.10754,0.31934,0.10516,0.27734,0.12903,0.29004,0.19324,0.35596,0.2196,0.35547,0.21606,0.32812,0.19666,0.3335,0.17773,0.31201,0.24316,0.375,0.16382,0.28613,0.18433,0.26953,0.1958,0.28662,0.15417,0.27393,0.12433,0.26367,0.26636,0.39258,0.29321,0.38818,0.27466,0.36572,0.21472,0.29297,0.24939,0.33545,0.2373,0.31299,0.10602,0.26123,0.11395,0.23535,0.07953,0.24023,0.11316,0.20947,0.14453,0.22998,0.13501,0.20654,0.18054,0.22949,0.20752,0.17578,0.18994,0.16992,0.1969,0.15479,0.23083,0.1543,0.18079,0.20166,0.22717,0.18701,0.22461,0.20557,0.21887,0.23779,0.25562,0.1709,0.25317,0.15527,0.28223,0.13721,0.24536,0.19922,0.21741,0.26709,0.24915,0.23145,0.22583,0.29492,0.23669,0.25244,0.26123,0.25732,0.24438,0.29688,0.24512,0.27344,0.26978,0.30029,0.25635,0.31348,0.26074,0.33447,0.29883,0.33154,0.27686,0.33789,0.28979,0.35547,0.30737,0.37793,0.33179,0.38379,0.2981,0.3501,0.31934,0.36279,0.30029,0.30762,0.33154,0.34033,0.34106,0.4082,0.38623,0.38623,0.38135,0.42383,0.34009,0.32617,0.32153,0.30859,0.35962,0.34326,0.30151,0.28418,0.33838,0.30859,0.38306,0.32422,0.37964,0.34131,0.32324,0.28467,0.40454,0.35205,0.39697,0.41016,0.40527,0.38086,0.39795,0.44727,0.41016,0.41553,0.29883,0.25684,0.2854,0.24951,0.29468,0.23486,0.271,0.25098,0.27563,0.22705,0.28101,0.20605,0.28906,0.17578,0.31616,0.25342,0.30054,0.21387,0.29028,0.15869,0.31348,0.13525,0.33569,0.14014,0.33789,0.12451,0.31934,0.16797,0.30957,0.19238,0.32495,0.2002,0.31909,0.22949,0.323,0.24512,0.36133,0.13477,0.35815,0.11621,0.36987,0.12354,0.38184,0.15918,0.33813,0.16309,0.35864,0.16504,0.34839,0.19873,0.34521,0.22021,0.33618,0.23145,0.34888,0.23584,0.36914,0.22998,0.37231,0.19434,0.38867,0.17773,0.42969,0.19385,0.39648,0.20264,0.34912,0.25,0.42969,0.23584,0.44141,0.20459,0.3374,0.27295,0.3606,0.26367,0.39551,0.22607,0.38379,0.27197,0.44971,0.2373,0.46118,0.23047,0.41748,0.2666,0.43994,0.27246,0.42456,0.30615,0.47266,0.26514,0.33862,0.29004,0.35547,0.30762,0.35547,0.28564,0.38135,0.30273,0.40356,0.28809,0.45337,0.29199,0.41724,0.3291,0.42212,0.34766,0.46167,0.30615,0.44067,0.32031,0.43994,0.34619,0.41821,0.37305,0.43604,0.37744,0.45483,0.34717,0.49976,0.29541,0.46899,0.31738,0.50586,0.30859,0.5083,0.33105,0.4729,0.33154,0.47534,0.36084,0.46265,0.37793,0.44263,0.41846,0.42236,0.4502,0.52002,0.29443,0.52588,0.30957,0.53857,0.27979,0.51074,0.28125,0.51318,0.26172,0.54883,0.24658,0.57178,0.25977,0.59912,0.24414,0.54736,0.31445,0.67529,0.23535,0.62354,0.27051,0.65723,0.23096,0.68652,0.21094,0.56348,0.27832,0.69141,0.25342,0.72412,0.26611,0.56201,0.2998,0.58252,0.29102,0.65967,0.26709,0.57568,0.31641,0.68848,0.28613,0.67188,0.27734,0.65234,0.28955,0.6665,0.30273,0.72412,0.31543,0.74902,0.29297,0.7666,0.32666,0.64307,0.31201,0.61328,0.30664,0.68555,0.32275,0.68555,0.34473,0.66895,0.33105,0.75,0.33545,0.79395,0.37402,0.80469,0.37061,0.80811,0.40234,0.59961,0.31396,0.62012,0.33643,0.6377,0.33838,0.65186,0.3623,0.65771,0.33154,0.59814,0.32666,0.59668,0.34229,0.66455,0.34863,0.65137,0.34521,0.6665,0.36816,0.53662,0.33643,0.50635,0.35645,0.521,0.37842,0.48584,0.38184,0.47852,0.41064,0.46704,0.44531,0.58887,0.38965,0.55664,0.37939,0.61914,0.3584,0.646,0.37988,0.63281,0.39648,0.59619,0.40576,0.65625,0.42383,0.67139,0.42334,0.63281,0.41553,0.56738,0.41846,0.54932,0.40137,0.58447,0.42285,0.53809,0.4082,0.55371,0.42432,0.51318,0.40625,0.52295,0.42529,0.50049,0.43359,0.56885,0.45068,0.55908,0.45654,0.58838,0.47461,0.5835,0.44629,0.56104,0.47803,0.50049,0.46045,0.61084,0.45459,0.57568,0.47656,0.4541,0.49902,0.62793,0.43164,0.64795,0.43018,0.56201,0.49512,0.54346,0.49316,0.58594,0.49219,0.48071,0.48389,0.62451,0.45117,0.64404,0.44873,0.66309,0.47021,0.61035,0.47656,0.63086,0.47998,0.61084,0.48682,0.60889,0.5,0.646,0.49854,0.66504,0.50366,0.67676,0.46338,0.62891,0.52612,0.58887,0.54639,0.59766,0.55933,0.55029,0.52441,0.53613,0.51855,0.51025,0.51709,0.47583,0.53149,0.56982,0.55054,0.53369,0.53442,0.50781,0.5332,0.57666,0.56323,0.49536,0.54346,0.46558,0.5354,0.4812,0.55542,0.47534,0.56738,0.43921,0.50073,0.4978,0.5625,0.50684,0.55566,0.45044,0.53516,0.41235,0.46338,0.39868,0.47168,0.40991,0.4751,0.5166,0.54785,0.55078,0.55859,0.52539,0.56323,0.55811,0.56787,0.50684,0.57202,0.52393,0.57471,0.49414,0.57397,0.50342,0.58179,0.48828,0.58667,0.51172,0.58667,0.53223,0.58618,0.56787,0.57642,0.51172,0.59937,0.60205,0.56812,0.53369,0.59375,0.62305,0.55249,0.46997,0.58545,0.49512,0.60913,0.44946,0.55322,0.57178,0.58911,0.53662,0.6001,0.53125,0.61377,0.59717,0.58447,0.61035,0.58911,0.55713,0.60132,0.58301,0.60034,0.6167,0.57275,0.63281,0.56665,0.64795,0.5437,0.66113,0.51953,0.66846,0.54419,0.6499,0.56006,0.56543,0.61621,0.59863,0.6084,0.54932,0.62598,0.5752,0.62476,0.64941,0.57617,0.61719,0.60718,0.60889,0.61377,0.66113,0.55957,0.59912,0.61646,0.52148,0.64209,0.56738,0.63672,0.58545,0.64014,0.59326,0.63306,0.6123,0.62769,0.48926,0.62671,0.50781,0.67334,0.54
2053,0.65625,0.46802,0.60474,0.60303,0.64648,0.57031,0.66187,0.47363,0.63721,0.45117,0.5835,0.59521,0.66089,0.61328,0.67407,0.61475,0.64404,0.58691,0.67896,0.56152,0.67993,0.44873,0.61426,0.62451,0.63354,0.64258,0.60669,0.63379,0.65625,0.54346,0.68091,0.62598,0.67017,0.64746,0.68262,0.66113,0.59766,0.66211,0.61816,0.66846,0.58667,0.66553,0.67065,0.68213,0.60571,0.67871,0.57397,0.69434,0.60132,0.63574,0.69702,0.6167,0.71118,0.59814,0.71802,0.58154,0.70654,0.56348,0.69531,0.57471,0.7146,0.5625,0.72583,0.5542,0.69946,0.52881,0.69434,0.52344,0.71216,0.51318,0.70361,0.53857,0.73706,0.49316,0.68579,0.45093,0.64233,0.42236,0.62891,0.43506,0.59424,0.41187,0.59985,0.42773,0.57007,0.46143,0.67188,0.42236,0.65918,0.48706,0.7124,0.41113,0.66919,0.39282,0.66455,0.51074,0.73193,0.49512,0.73584,0.53125,0.75781,0.52051,0.76672,0.54053,0.78784,0.55664,0.79077,0.39429,0.63647,0.36963,0.65845,0.36035,0.69189,0.34033,0.69727,0.37085,0.61865,0.55273,0.75037,0.56348,0.76331,0.56396,0.7395,0.5752,0.75293,0.59229,0.73291,0.57812,0.77844,0.60156,0.81165,0.58105,0.76147,0.59912,0.75525,0.61719,0.75073,0.59668,0.78748,0.61768,0.80383,0.62109,0.83716,0.63135,0.75757,0.64697,0.83508,0.65283,0.8645,0.6377,0.79858,0.65869,0.75842,0.64307,0.73853,0.65283,0.72559,0.67529,0.86096,0.70703,0.91406,0.72314,0.93967,0.73438,0.90466,0.64941,0.70581,0.67188,0.72266,0.66895,0.68823,0.66846,0.74756,0.73877,0.93256,0.73828,0.96133,0.69824,0.85071,0.67529,0.83838,0.65918,0.81616,0.69092,0.81995,0.66895,0.80322,0.68359,0.79199,0.69287,0.7804,0.71094,0.80066,0.71338,0.83008,0.73291,0.87683,0.68994,0.76685,0.71436,0.78833,0.74609,0.82471,0.75537,0.87622,0.7124,0.76953,0.73975,0.89398,0.76416,0.90668,0.69629,0.74146,0.77539,0.8689,0.75244,0.91724,0.74414,0.94144,0.75488,0.81555,0.74951,0.79736,0.79639,0.84216,0.72314,0.7572,0.75195,0.78503,0.77393,0.81091,0.79248,0.82764,0.82471,0.82141,0.77295,0.79871,0.83252,0.83423,0.85352,0.85315,0.83398,0.87402,0.78125,0.89679,0.74658,0.76086,0.7627,0.77649,0.72314,0.73169,0.70752,0.72119,0.68555,0.70337,0.70312,0.68237,0.73633,0.69165,0.6875,0.67041,0.71826,0.65894,0.69531,0.64966,0.68506,0.63721,0.70361,0.63818,0.67822,0.61792,0.69727,0.62915,0.7085,0.6228,0.72119,0.62256,0.73438,0.65991,0.74561,0.63135,0.71582,0.58691,0.75049,0.68579,0.70605,0.55713,0.75195,0.70581,0.74072,0.55981,0.75146,0.73047,0.79053,0.74365,0.79395,0.71362,0.78662,0.78943,0.82178,0.80725,0.81787,0.77515,0.82324,0.73926,0.83887,0.76379,0.71826,0.53369,0.70117,0.53613,0.72217,0.48633,0.67578,0.53271,0.69043,0.50781,0.74268,0.53027,0.68359,0.48975,0.68311,0.4751,0.70752,0.48291,0.68359,0.45166,0.69385,0.46826,0.67871,0.41602,0.70557,0.4707,0.69678,0.45264,0.67725,0.39307,0.7207,0.46484,0.70605,0.44141,0.68408,0.36475,0.75195,0.49121,0.69678,0.39648,0.70898,0.36084,0.75879,0.54517,0.69824,0.38037,0.71826,0.39453,0.73828,0.35645,0.76904,0.59204,0.76416,0.35352,0.77246,0.51562,0.77783,0.46924,0.77832,0.57251,0.73291,0.46387,0.72998,0.43994,0.74609,0.45654,0.71484,0.42041,0.7124,0.4043,0.72998,0.40967,0.74316,0.42578,0.75977,0.44385,0.77686,0.44775,0.73193,0.3833,0.75781,0.39893,0.76074,0.42285,0.7793,0.4209,0.74951,0.3877,0.74707,0.37598,0.77588,0.39795,0.76904,0.37842,0.75684,0.3667,0.79541,0.39893,0.80322,0.42041,0.80029,0.45361,0.80859,0.43848,0.79199,0.5105,0.80615,0.46924,0.81152,0.51782,0.82666,0.55811,0.80029,0.56079,0.79443,0.58862,0.80127,0.60889,0.81738,0.58032,0.86523,0.60278,0.87598,0.58008,0.9043,0.59644,0.82471,0.60107,0.78125,0.6084,0.75732,0.63599,0.77588,0.63232,0.77295,0.65088,0.79199,0.64282,0.80176,0.68945,0.78076,0.68701,0.78662,0.69702,0.81006,0.66235,0.80225,0.70483,0.82373,0.63818,0.81934,0.69141,0.84863,0.6355,0.82568,0.72314,0.83643,0.71362,0.81152,0.7002,0.83984,0.73901,0.8999,0.65088,0.83594,0.69165,0.85986,0.69409,0.89062,0.71753,0.85156,0.71704,0.85449,0.74878,0.84912,0.77271,0.86426,0.76587,0.85596,0.79297,0.87891,0.78296,0.86865,0.80847,0.90088,0.73438,0.91748,0.72583,0.90283,0.76685,0.85547,0.82239,0.87402,0.83582,0.91699,0.68823,0.88379,0.79272,0.88428,0.82202,0.88867,0.86108,0.89209,0.80713,0.91113,0.79688,0.88965,0.83411,0.91211,0.83167,0.91602,0.76184,0.94336,0.82727,0.95166,0.85242,0.93848,0.77869,0.93457,0.74316,0.93408,0.88812,0.8584,0.90265,0.83154,0.91107,0.96777,0.8811,0.80273,0.90735,0.81006,0.92896,0.96924,0.83997,0.78467,0.91492,0.78369,0.93323,0.99023,0.8501,0.9873,0.86987,0.98047,0.81604,0.96338,0.80298,0.95996,0.77942,0.95996,0.73486,0.95459,0.71729,0.94873,0.70093,0.92969,0.646,0.94189,0.63867,0.92188,0.59448,0.90918,0.63599,0.27856,
20.73853,0.2876,0.7439,0.30371,0.74341,0.29614,0.71411,0.3186,0.71997,0.31738,0.68848,0.33667,0.6709,0.35815,0.63647,0.3584,0.61084,0.38159,0.60522,0.32056,0.66626,0.33838,0.64819,0.33789,0.63159,0.29004,0.69189,0.31836,0.64868,0.2854,0.66943,0.27173,0.70483,0.2688,0.68994,0.26514,0.72852,0.24463,0.74463,0.2854,0.7478,0.27002,0.76111,0.23499,0.76697,0.22852,0.72925,0.23462,0.71826,0.25244,0.71484,0.23975,0.69458,0.21692,0.70068,0.22913,0.68262,0.25049,0.677,0.28003,0.64697,0.30859,0.61279,0.31616,0.62451,0.33789,0.60742,0.31494,0.59229,0.32959,0.5918,0.34766,0.59473,0.302,0.5813,0.32129,0.5708,0.32446,0.58179,0.32983,0.55298,0.33618,0.56885,0.34033,0.58325,0.34961,0.57666,0.34497,0.5603,0.34473,0.54272,0.36572,0.58984,0.36865,0.56055,0.35718,0.52588,0.36108,0.54712,0.38135,0.55005,0.39673,0.54102,0.38013,0.53589,0.38354,0.49365,0.37061,0.53003,0.38843,0.50806,0.39722,0.48535,0.39478,0.51709,0.39941,0.49854,0.4248,0.55078,0.40649,0.51587,0.40942,0.48975,0.43018,0.52588,0.43066,0.50513,0.78955,0.96075,0.7915,0.99073,0.76855,0.97375,0.76367,0.99254,0.77588,0.94269,0.75586,0.95142,0.76611,0.95062,0.7793,0.92499,0.75684,0.944,0.76855,0.93896,0.76465,0.92529,0.76758,0.9162]}]}],"models":[{"meshId":"id_278740","materialId":27478,"transformId":30480,"animatorId":-1,"isStatic":false,"isLod":false,"bbExtents":[2.69396,0.51649,3.28599],"bbCenter":[1.95677,0.40215,-2.9119],"sphereCollider":[0,0,0,0],"lightmapScaleOffset":[1,1,0,0],"lightmapIndex":-1},{"meshId":"id_277460","materialId":27478,"transformId":30514,"animatorId":-1,"isStatic":false,"isLod":false,"bbExtents":[2.40027,0.47138,1.75237],"bbCenter":[-10.52425,0.37606,-2.97897],"sphereCollider":[0,0,0,0],"lightmapScaleOffset":[1,1,0,0],"lightmapIndex":-1},{"meshId":"id_276800","materialId":27478,"transformId":30522,"animatorId":-1,"isStatic":false,"isLod":false,"bbExtents":[1.92975,0.45853,1.61459],"bbCenter":[-4.65153,0.38881,-2.89754],"sphereCollider":[0,0,0,0],"lightmapScaleOffset":[1,1,0,0],"lightmapIndex":-1},{"meshId":"id_280080","materialId":27524,"transformId":30472,"animatorId":-1,"isStatic":false,"isLod":false,"bbExtents":[2.75712,0.92295,3.25944],"bbCenter":[-3.22637,0.83031,5.31094],"sphereCollider":[0,0,0,0],"lightmapScaleOffset":[1,1,0,0],"lightmapIndex":-1},{"meshId":"id_276100","materialId":27492,"transformId":30488,"animatorId":-1,"isStatic":false,"isLod":false,"bbExtents":[3.48492,0.8386,3.03621],"bbCenter":[3.39859,0.70069,5.29236],"sphereCollider":[0,0,0,0],"lightmapScaleOffset":[1,1,0,0],"lightmapIndex":-1}],"textures":[{"name":"T_RockGroup01_1_D","clamp":false,"mipmap":true,"filterLinear":true},{"name":"T_RockGroup01_3_D","clamp":false,"mipmap":true,"filterLinear":true},{"name":"T_RockGroup01_2_D","clamp":false,"mipmap":true,"filterLinear":true}],"lods":[],"lights":[],"sceneReferences":{"timelineName":""}}')}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}n.m=e,n.u=function(e){return"build/app/js/chunks/"+e+".js?id="+{2574:"7a635af6207dbfde",5882:"0ad4156508124eb5"}[e]},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n.b=self.location+"/../../../../../",function(){"use strict";function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,r(o.key),o)}}function t(e,t,n){return(t=r(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e){var t=function(e,t){if("object"!=o(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=o(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==o(t)?t:t+""}function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}var i;function a(){return"undefined"==typeof document||i||(i=document.createElement("div"),Object.assign(i.style,{position:"fixed",left:"0",bottom:"0",color:"#fff",backgroundColor:"#22222288",overflowX:"hidden",overflowY:"auto !important",display:"block",boxSizing:"border-box",width:"100vw",height:"30vh",padding:"16px",margin:"0",font:"12px monospace",zIndex:"998"}),document.body.appendChild(i)),i}function s(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];if("undefined"!=typeof document){var i=n.length>1&&n[0]&&n[0].toString().indexOf("%c")>=0;n[0]=n[0].toString().replace(/\t/gi,"&nbsp;&nbsp;"),n[0]=n[0].toString().replace(/ /gi,"&nbsp;");var s,l,u="<span ".concat(e?'style="color: '.concat(e,'; font-weight: bold;"'):"",">");if(i){var c=0;u+=n[0].replace(/%c/gi,(function(){return c++,'</span><span style="'.concat(n[c],'">')}))}else u+="".concat(n.map((function(e){return e&&e!==e.toString()?(t=e,n=[],JSON.stringify(t,(function(e,t){if("object"===o(t)&&null!==t){if(-1!==n.indexOf(t))return;n.push(t)}return t}))):e;var t,n})).join(" "));s=(u+"</span><br />").replace(/\n/gi,"<br />"),(l=a())&&(l.innerHTML+=s,l.scrollTop=l.scrollHeight)}else{var f;
2(f=console).log.apply(f,n)}}var l=function(){function t(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t)}return n=t,o=[{key:"ENABLED",get:function(){return t._enabled},set:function(e){t._enabled=e,t.ENABLED?t.LOG_TO_SCREEN?(t.log=t.screenLog,t.warn=t.screenWarn,t.error=t.screenError):(t.log=console.log,t.warn=console.warn,t.error=t.screenError):(t.log=function(){},t.warn=function(){},t.error=t.LOG_TO_SCREEN?t.screenError:console.error)}},{key:"LOG_TO_SCREEN",get:function(){return t._logToScreen},set:function(e){t._logToScreen=e}},{key:"log",value:function(){}},{key:"error",value:function(){}},{key:"warn",value:function(){}},{key:"screen",value:function(){!0===t._screenClearFlag&&(function(){var e=a();e&&(e.innerHTML="")}(),t._screenClearFlag=!1,setTimeout((function(){t._screenClearFlag=!0}),0));for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.screenLog.apply(t,[""].concat(n));var o=a();o&&(o.style.height="30px")}},{key:"screenLog",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];s.apply(void 0,[""].concat(t))}},{key:"screenWarn",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];s.apply(void 0,["#fa4"].concat(t))}},{key:"screenError",value:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];s.apply(void 0,["#f44"].concat(n)),t.LOG_TO_SCREEN=!0}}],(r=null)&&e(n.prototype,r),o&&e(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}();t(l,"_enabled",!1),t(l,"_logToScreen",!1),t(l,"_screenClearFlag",!0);var u=34962,c=1029,f=33071,h=36064,d=6402,p=34963,v=5126,m=36193,y=36160,b=32774,g=9729,w=9987,_=6410,x=9728,S=36161,k=10497,P=6407,T=6408,M=3089,E=35044,O=3553,j=34074,D=34069,A=34073,L=5121,C=5125,z=5123,F=6403,R=32856,V=32879,N=35051,B=34837,U=34842,I=35898,W=36244,H=36248,G=36249,q=5131,X=33319,Y=33320,K=33321,Z=33327;function J(e){return J="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},J(e)}function $(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,ee(r.key),r)}}function Q(e,t,n){return(t=ee(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ee(e){var t=function(e,t){if("object"!=J(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=J(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==J(t)?t:t+""}var te=function(){return e=function e(t,n,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Q(this,"id",void 0),Q(this,"name",void 0),Q(this,"drawType",4),Q(this,"depthTest",!0),Q(this,"depthWrite",!0),Q(this,"alphaToCoverage",!1),Q(this,"depthFunc",513),Q(this,"blend",!1),Q(this,"blendEquation",void 0),Q(this,"sourceBlend",void 0),Q(this,"destinationBlend",void 0),Q(this,"shader",void 0),Q(this,"culling",c),Q(this,"renderer",void 0),Q(this,"blendFuncSeparate",!1),Q(this,"sourceBlendRGB",1),Q(this,"destinationBlendRGB",0),Q(this,"sourceBlendAlpha",1),Q(this,"destinationBlendAlpha",0),Q(this,"shaderDefines",{}),this.renderer=t,this.name=n,this.shader=r,this.id=e.staticId++,this.setDefaultBlending()},t=[{key:"setActive",value:function(){if(this.renderer.renderState.setProgram(this.shader.program),this.shader.getTextureUniforms().forEac
2h((function(e){return e.bind()})),this.renderer.renderState.material!=this&&(this.renderer.renderState.material=this,this.renderer.renderState.setAlphaToCoverage(this.alphaToCoverage),this.renderer.renderState.setDepthTest(this.depthTest),this.renderer.renderState.setDepthMask(this.depthWrite),this.renderer.renderState.setDepthFunc(this.depthFunc),this.renderer.renderState.setCulling(this.culling),this.renderer.renderState.setBlendEnabled(this.blend),this.blend))if(this.renderer.renderState.setBlendEquation(this.blendEquation),this.blendFuncSeparate){if(null===this.sourceBlendRGB||null===this.destinationBlendRGB||null===this.sourceBlendAlpha||null===this.destinationBlendAlpha)throw new ReferenceError("expected blend properties to be set");this.renderer.renderState.setBlendFuncSeparate(this.sourceBlendRGB,this.destinationBlendRGB,this.sourceBlendAlpha,this.destinationBlendAlpha)}else this.renderer.renderState.setBlendFunc(this.sourceBlend,this.destinationBlend)}},{key:"setDefaultBlending",value:function(){this.depthTest=!0,this.depthWrite=!0,this.blend=!1,this.blendEquation=b,this.sourceBlend=0,this.destinationBlend=1}},{key:"setAlphaBlending",value:function(){this.depthWrite=!1,this.depthTest=!0,this.blend=!0,this.blendEquation=b,this.setBlendUnified(770,771)}},{key:"setPreMultipliedAlphaBlending",value:function(){this.depthWrite=!1,this.depthTest=!0,this.blend=!0,this.blendEquation=b,this.setBlendUnified(1,771)}},{key:"setMaxBlending",value:function(){this.depthWrite=!1,this.depthTest=!1,this.blend=!0,this.blendEquation=32776,this.sourceBlend=1,this.destinationBlend=1,this.setBlendUnified(1,1)}},{key:"setAdditiveBlending",value:function(){this.depthWrite=!1,this.depthTest=!0,this.blend=!0,this.blendEquation=b,this.setBlendUnified(1,1)}},{key:"setMultiplyBlending",value:function(){this.depthWrite=!1,this.depthTest=!0,this.blend=!0,this.blendEquation=b,this.setBlendUnified(0,768)}},{key:"setSubtractiveBlending",value:function(){this.depthWrite=!1,this.depthTest=!1,this.blend=!0,this.blendEquation=32778,this.setBlendUnified(1,771)}},{key:"setBlendUnified",value:function(e,t){this.blendFuncSeparate=!1,this.sourceBlend=e,this.destinationBlend=t}},{key:"setBlendSeparate",value:function(e,t,n,r){this.blendFuncSeparate=!0,this.sourceBlendRGB=e,this.sourceBlendAlpha=n,this.destinationBlendRGB=t,this.destinationBlendAlpha=r}},{key:"setCullingBackFace",value:function(){this.culling=c}},{key:"setCullingFrontFace",value:function(){this.culling=1028}},{key:"setCullingDisabled",value:function(){this.culling=0}},{key:"setDrawTypePoints",value:function(){this.drawType=0}},{key:"setDrawTypeLines",value:function(){this.drawType=1}},{key:"setDrawTypeLineStrip",value:function(){this.drawType=3}},{key:"setDrawTypeTriangles",value:function(){this.drawType=4}},{key:"setDrawTypeTriangleFan",value:function(){this.drawType=6}},{key:"setDrawTypeTriangleStrip",value:function(){this.drawType=5}},{key:"setFloat",value:function(e,t){var n=this.getUniformLocation(e);n&&(this.renderer.renderState.setProgram(this.shader.program),this.renderer.context.uniform1f(n,t))}},{key:"setInt",value:function(e,t){var n=this.getUniformLocation(e);n&&(this.renderer.renderState.setProgram(this.shader.program),this.renderer.context.uniform1i(n,t))}},{key:"setFloats",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,i=this.getUniformLocation(e);i&&(this.renderer.renderState.setProgram(this.shader.program),this.renderer.context.uniform4f(i,t,n,r,o))}},{key:"setMatrix",value:function(e,t){var n=this.getUniformLocation(e);n&&(this.renderer.renderState.setProgram(this.shader.program),this.renderer.context.uniformMatrix4fv(n,!1,t.m))}},{key:"setMatrix3x3",value:function(e,t){var n=this.getUniformLocation(e);n&&(this.renderer.renderState.setProgram(this.shader.program),this.renderer.context.uniformMatrix3fv(n,!1,t.m))}},{key:"setMatrix2x2",value:function(e,t){var n=this.getUniformLocation(e);n&&(this.renderer.renderState.setProgram(this.shader.program),this.renderer.context.uniformMatrix2fv(n,!1,t.m))}},{key:"setMatrixArray",value:function(e,t){var n=this;t.forEach((function(t,r){var o="".concat(e,"[").concat(r,"]");n.setMatrix(o,t)}))}},{key:"setMatrixArray2",value:function(e,t){var n=this.getUniformLocation(e);n&&(this.renderer.renderState.setProgram(this.shader.program),this.renderer.context.uniformMatrix4fv(n,!1,t.m))}},{key:"setMatrixFloatArray",value:function(e,t){var n=this.getUniformLocation(e);n&&(this.renderer.renderState.setProgram(this.shader.program),this.renderer.context.uniformMatrix4fv(n,!1,t))}},{key:"setMatrix3x3FloatArray",value:function(e,t){var n=this.getUniformLocation(e);n&&(this.renderer.renderState.setProgram(this.shader.program),this.renderer.context.uniformMatrix3fv(n,!1,t))}},{key:"setTexture",value:function(e,t){if(!this.shader)throw new ReferenceError("Material has no Shader");var n=this.shader.getTextureUniformByName(e);n&&n.set(t)}},{key:"unSetTexture",value:function(e){var t=this.shader.getTextureUniformByName(e);t&&t.unSet()}},{key:"setFloat32Array",value:function(e,t){var n=this.getUniformLocation(e);n&&(this.renderer.renderState.setProgram(this.shader.program),this.renderer.context.uniform1fv(n,t))}},{key:"setInt32Array",value:function(e,t){var n=this.getUniformLocation(e);n&&(this.renderer.renderState.setProgram(this.shader.program),this.renderer.context.uniform1iv(n,t))}},{key:"setColor",value:function(e,t){var n=this.getUniformLocation(e);n&&(this.renderer.renderState.setProgram(this.shader.program),this.renderer.context.uniform4f(n,t.r,t.g,t.b,t.a))}},{key:"setVector3",value:function(e,t){var n=this.getUniformLocation(e);n&&(this.renderer.renderState.setProgram(this.shader.program),this.renderer.context.uniform3f(n,t.x,t.y,t.z))}},{key:"setVector3Array",value:function(e,t){var n=this.getUniformLocation(e);n&&(this.renderer.renderState.setProgram(this.shader.program),this.renderer.context.uniform3fv(n,t))}},{key:"setVector2",value:function(e,t){var n=this.getUniformLocation(e);n&&(this.renderer.renderState.setProgram(this.shader.program),this.renderer.context.uniform2f(n,t.x,t.y))}},{key:"setVector2Array",value:function(e,t){var n=this.getUniformLocation(e);n&&(this.renderer.renderState.setProgram(this.shader.program),this.renderer.context.uniform2fv(n,t))}},{key:"setVector4",value:function(e,t){var n=this.getUniformLocation(e);n&&(this.renderer.renderState.setProgram(this.shader.program),this.renderer.context.uniform4f(n,t.x,t.y,t.z,t.w))}},{key:"setVector4Array",value:function(e,t){var n=this.getUniformLocation(e);n&&(this.renderer.renderState.setProgram(this.shader.program),this.renderer.context.uniform4fv(n,t))}},{key:"getUniformLocation",value:function(e){return this.shader.getUniformLocation(e)}},{key:"hasUniform",value:function(e){return!!this.getUniformLocation(e)}},{key:"addShaderDefines",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];for(var r=0;r<t.length;r++){var o=t[r]instanceof Array?t[r][0]:t[r],i=t[r]instanceof Array?t[r][1]:1;null==this.shaderDefines[o]&&(this.shaderDefines[o]=i)}}},{key:"getShaderDefines",value:function(){return this.shaderDefines}},{key:"clearShaderDefines",value:function(){this.shaderDefines=[]}},{key:"destruct",value:function(){this.shader.destruct()}}],t&&$(e.prototype,t),n&&$(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function ne(e){return ne="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ne(e)}function re(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,ie(r.key),r)}}function oe(e,t,n){return(t=ie(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ie(e){var t=function(e,t){if("object"!=ne(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=ne(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==ne(t)?t:t+""}Q(te,"staticId",0);var ae=function(){return e=function e(t,n,r,o,i,a){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),oe(this,"data",null),oe(this,"name",void 0),oe(this,"stride",void 0),oe(this,"storeData",void 0),oe(this,"buffer",null),oe(this,"vertexCount",-1),oe(this,"renderer",void 0),this.renderer=t,this.stride=o,this.name=n,this.storeData=i,this.vertexCount=r.length/o,a?(this.buffer=this.renderer.context.createBuffer(),this.setData(r,i)):this.data=r},(t=[{key:"setData",value:function(e,t){if(t||!this.buffer?this.data=e:this.data=null,0!==e.length){if(this.buffer){var n=this.renderer.context;n.bindBuffer(u,this.buffer),n.bufferData(u,e.byteLength,E),n.bufferSubData(u,0,e)}}else l.warn("VertexAttribute: no data: probably a mesh file could not be loaded: "+this.name)}},{key:"destruct",value:function(){this.buffer&&this.renderer.context.deleteBuffer(this.buffer),this.data=null}}])&&re(e.prototype,t),n&&re(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}(),se={POSITION:{name:"aPos",stride:3},TEXCOORD0:{name:"aUV0",stride:2},TEXCOORD1:{name:"aUV1",stride:2},NORMAL:{name:"aNormal",stride:3},COLOR0:{name:"aColor0",stride:3},COLOR1:{name:"aColor1",stride:3},TANGENT:{name:"aTangent",stride:4}};function le(e){return le="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},le(e)}function ue(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,fe(r.key),r)}}function ce(e,t,n){return(t=fe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function fe(e){var t=function(e,t){if("object"!=le(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=le(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==le(t)?t:t+""}var he=0,de=function(){function e(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),ce(this,"name",""),ce(this,"id",void 0),ce(this,"animatorId",-1),ce(this,"indexBuffer",void 0),ce(this,"interleaved",void 0),ce(this,"interleavedBuffer",void 0),ce(this,"interleavedStrideSum",0),ce(this,"isDynamic",void 0),ce(this,"indices",void 0),ce(this,"attributes",[]),ce(this,"renderer",void 0),ce(this,"indexType",z),ce(this,"vertexCount",0),ce(this,"dirty",!0),this.renderer=t,this.vertexCount=0,this.id=he++,this.interleaved=n,this.isDynamic=r}return t=e,n=[{key:"setJSONData",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.animatorId=e.animatorId,this.isDynamic=e.isDynamic||!1,e.indices&&e.indices.length>0&&(e.use32BitIndices?this.setIndices32(new Uint32Array(e.indices)):this.setIndices(new Uint16Array(e.indices))),e.attributes.forEac
2h((function(e){t.setAttribute(e.name,e.stride,new Float32Array(e.data),n)}))}},{key:"clone",value:function(){var t=new e(this.renderer,this.interleaved,this.isDynamic);return this.attributes.forEach((function(e){t.attributes.push(e)})),t.vertexCount=this.vertexCount,t}},{key:"interleaveData",value:function(){var e=this;if(this.dirty&&this.interleaved){this.interleavedStrideSum=0,this.attributes.forEach((function(t){e.interleavedStrideSum+=t.stride}));for(var t=new Float32Array(this.interleavedStrideSum*(this.vertexCount+1)),n=0,r=function(r){e.attributes.forEach((function(e){for(var o=0;o<e.stride;o++)t[n++]=e.data[r*e.stride+o]}))},o=0;o<this.vertexCount;o++)r(o);this.attributes.forEach((function(e){e.storeData||(e.data=null)})),this.interleavedBuffer=this.renderer.context.createBuffer();var i=this.renderer.context;i.bindBuffer(u,this.interleavedBuffer),i.bufferData(u,t,E),this.dirty=!1}}},{key:"isInterleaved",value:function(){return this.interleaved}},{key:"hasIndices",value:function(){return!!this.indices}},{key:"setAttribute",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];this.setData(n,e,t,r)}},{key:"setPositions",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=se.POSITION;this.setData(e,n.name,n.stride,t)}},{key:"getPositions",value:function(){return this.getData(se.POSITION.name)}},{key:"setNormals",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=se.NORMAL;this.setData(e,n.name,n.stride,t)}},{key:"getNormals",value:function(){return this.getData(se.NORMAL.name)}},{key:"setColors",value:function(e){var t=se.COLOR0;this.setData(e,t.name,t.stride)}},{key:"getColors",value:function(){return this.getData(se.COLOR0.name)}},{key:"setColors1",value:function(e){var t=se.COLOR1;this.setData(e,t.name,t.stride)}},{key:"getColors1",value:function(){return this.getData(se.COLOR1.name)}},{key:"setUV0",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=se.TEXCOORD0;this.setData(e,n.name,n.stride,t)}},{key:"getUV0",value:function(){return this.getData(se.TEXCOORD0.name)}},{key:"setUV1",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=se.TEXCOORD1;this.setData(e,n.name,n.stride,t)}},{key:"getUV1",value:function(){return this.getData(se.TEXCOORD1.name)}},{key:"setTangents",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=se.TANGENT;this.setData(e,n.name,n.stride,t)}},{key:"getTangents",value:function(){return this.getData(se.TANGENT.name)}},{key:"setData",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=this.getAttributeIndex(t),i=e.length/n;if(o<0)this.attributes.push(new ae(this.renderer,t,e,n,r,!this.interleaved));else{var a=this.attributes[o];a.vertexCount==i?a.setData(e,r):(a.destruct(),this.attributes[o]=new ae(this.renderer,t,e,n,r,!this.interleaved))}this.vertexCount=i,this.dirty=!0}},{key:"deleteAttribute",value:function(e){var t=this.getAttributeIndex(e);t>=0&&this.attributes.splice(t,1),this.dirty=!0}},{key:"hasAttribute",value:function(e){return this.getAttributeIndex(e)>=0}},{key:"getAttribute",value:function(e){var t=this.getAttributeIndex(e);if(t>=0)return this.attributes[t]}},{key:"getData",value:function(e){var t=this.getAttribute(e);return t&&t.data?t.data:void l.log("Mesh: getData",e,"no data")}},{key:"setIndices",value:function(e){if(!(e instanceof Uint16Array))throw"Indices need to be of type Uint16Array";this.indexType=z,this.indices=e;var t=this.renderer.context;this.indexBuffer||(this.indexBuffer=t.createBuffer()),t.bindBuffer(p,this.indexBuffer),t.bufferData(p,this.indices,E)}},{key:"setIndices32",value:function(e){if(!(e instanceof Uint32Array))throw"Indices need to be of type Uint32Array";this.indexType=C,this.indices=e;var t=this.renderer.context;this.indexBuffer||(this.indexBuffer=t.createBuffer()),t.bindBuffer(p,this.indexBuffer),t.bufferData(p,this.indices,E)}},{key:"isSkinned",value:function(){return this.hasAttribute("aSkinIndex")}},{key:"destruct",value:function(){this.renderer.destructVAO(this);var e=this.renderer.context;this.interleavedBuffer&&e.deleteBuffer(this.interleavedBuffer),this.indexBuffer&&e.deleteBuffer(this.indexBuffer),this.attributes.forEac
2h((function(e){e.destruct()}))}},{key:"getAttributeIndex",value:function(e){return this.attributes.findIndex((function(t){return t.name===e}))}}],n&&ue(t.prototype,n),r&&ue(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,n,r}();function pe(e){return pe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},pe(e)}function ve(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,ye(r.key),r)}}function me(e,t,n){return(t=ye(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ye(e){var t=function(e,t){if("object"!=pe(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=pe(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==pe(t)?t:t+""}var be=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-0;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),me(this,"x",-0),me(this,"y",-0),this.x=t,this.y=n}return t=e,r=[{key:"ZERO",get:function(){return new e(0,0)}},{key:"ONE",get:function(){return new e(1,1)}},{key:"dot",value:function(e,t){return e.x*t.x+e.y*t.y}},{key:"distance",value:function(e,t){var n=e.x-t.x,r=e.y-t.y;return Math.sqrt(n*n+r*r)}},{key:"distanceSquared",value:function(e,t){var n=e.x-t.x,r=e.y-t.y;return n*n+r*r}},{key:"transformMat2",value:function(t,n){var r=t.x,o=t.y,i=n.m;return new e(i[0]*r+i[2]*o,i[1]*r+i[3]*o)}},{key:"transformMat3",value:function(t,n){var r=t.x,o=t.y,i=n.m;return new e(i[0]*r+i[3]*o+i[6],i[1]*r+i[4]*o+i[7])}},{key:"transformMat4",value:function(t,n){var r=t.x,o=t.y,i=n.m;return new e(i[0]*r+i[4]*o+i[12],i[1]*r+i[5]*o+i[13])}},{key:"multiplyScalar",value:function(t,n){return new e(t.x*n,t.y*n)}},{key:"add",value:function(t,n){return new e(t.x+n.x,t.y+n.y)}},{key:"sub",value:function(t,n){return new e(t.x-n.x,t.y-n.y)}},{key:"lerp",value:function(e,t,n){return e.clone().lerp(t,n)}},{key:"fract",value:function(t){return e.sub(t,e.floor(t))}},{key:"floor",value:function(t){return new e(Math.floor(t.x),Math.floor(t.y))}},{key:"normalize",value:function(e){var t=e.x*e.x+e.y*e.y;return t>0&&(t=1/Math.sqrt(t)),e.clone().multiplyScalar(t)}}],(n=[{key:"clone",value:function(){return new e(this.x,this.y)}},{key:"copy",value:function(e){return this.x=e.x,this.y=e.y,this}},{key:"setValues",value:function(e,t){return this.x=e,this.y=t,this}},{key:"length",value:function(){return Math.sqrt(this.x*this.x+this.y*this.y)}},{key:"equals",value:function(e){return e.x===this.x&&e.y===this.y}},{key:"lerp",value:function(e,t){return this.x=this.x+(e.x-this.x)*t,this.y=this.y+(e.y-this.y)*t,this}},{key:"normalize",value:function(){var e=this.x*this.x+this.y*this.y;return e>0&&(e=1/Math.sqrt(e)),this.x*=e,this.y*=e,this}},{key:"negate",value:function(){return this.x=-this.x,this.y=-this.y,this}},{key:"multiplyScalar",value:function(e){return this.x*=e,this.y*=e,this}},{key:"addScalar",value:function(e){return this.x+=e,this.y+=e,this}},{key:"multiplyMatrix",value:function(e){var t=e.m,n=t[0]*this.x+t[2]*this.y,r=t[1]*this.x+t[3]*this.y;return this.setValues(n,r)}},{key:"multiply",value:function(e){return this.x*=e.x,this.y*=e.y,this}},{key:"add",value:function(e){return this.x+=e.x,this.y+=e.y,this}},{key:"subtract",value:function(e){return this.x-=e.x,this.y-=e.y,this}},{key:"subtractScalar",value:function(e){return this.x-=e,this.y-=e,this}},{key:"rotate",value:function(e,t){var n=Math.sin(t),r=Math.cos(t);this.x-=e.x,this.y-=e.y;var o=this.x*r-this.y*n,i=this.x*n+this.y*r;return this.x=o+e.x,this.y=i+e.y,this}},{key:"randomize",value:function(){return this.x=2*Math.random()-1,this.y=2*Math.random()-1,this}},{key:"randomize01",value:function(){return this.x=Math.random(),this.y=Math.random(),this}},{key:"randomizeDisc",value:function(){do{this.randomize()}while(this.length()>1);return this}}])&&ve(t.prototype,n),r&&ve(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,n,r}();function ge(e,t,n){return(1-n)*e+n*t}function we(e){return e<0?0:e>1?1:e}function _e(e,t,n){return(n=Se((n-e)/(t-e),0,1))*n*(3-2*n)}function xe(e){return!isNaN(parseFloat(e))&&isFinite(e)}function Se(e,t,n){return Math.min(Math.max(e,t),n)}function ke(e){return e*(Math.PI/180)}function Pe(e,t){for(var n=0,r=1,o=e;o>0;)n+=(r/=t)*(o%t),o=Math.floor(o/t);return n}function Te(e){return Te="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Te(e)}function Me(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Oe(r.key),r)}}function Ee(e,t,n){return(t=Oe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Oe(e){var t=function(e,t){if("object"!=Te(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Te(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Te(t)?t:t+""}var je=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-0;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}
2(this,e),Ee(this,"x",-0),Ee(this,"y",-0),Ee(this,"z",-0),this.x=t,this.y=n,this.z=r}return t=e,n=[{key:"xy",get:function(){return new be(this.x,this.y)}},{key:"yz",get:function(){return new be(this.y,this.z)}},{key:"xz",get:function(){return new be(this.x,this.z)}},{key:"v",get:function(){return[this.x,this.y,this.z]}},{key:"clone",value:function(){return new e(this.x,this.y,this.z)}},{key:"copy",value:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}},{key:"setValues",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return this.x=e,this.y=t,this.z=n,this}},{key:"length",value:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}},{key:"lengthSquared",value:function(){return this.x*this.x+this.y*this.y+this.z*this.z}},{key:"equals",value:function(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}},{key:"normalize",value:function(){var e=this.x*this.x+this.y*this.y+this.z*this.z;return e>0&&(e=1/Math.sqrt(e)),this.x*=e,this.y*=e,this.z*=e,this}},{key:"normalized",get:function(){return this.clone().normalize()}},{key:"negate",value:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}},{key:"multiplyScalar",value:function(e){return this.x*=e,this.y*=e,this.z*=e,this}},{key:"addScalar",value:function(e){return this.x+=e,this.y+=e,this.z+=e,this}},{key:"multiply",value:function(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}},{key:"divide",value:function(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}},{key:"add",value:function(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}},{key:"sub",value:function(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}},{key:"min",value:function(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}},{key:"max",value:function(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}},{key:"powScalar",value:function(e){return this.x=Math.pow(this.x,e),this.y=Math.pow(this.y,e),this.z=Math.pow(this.z,e),this}},{key:"lerp",value:function(e,t){return this.x=this.x+(e.x-this.x)*t,this.y=this.y+(e.y-this.y)*t,this.z=this.z+(e.z-this.z)*t,this}},{key:"rotateX",value:function(e,t){var n=this.y-e.y,r=this.z-e.z;return this.y=n*Math.cos(t)-r*Math.sin(t)+e.y,this.z=n*Math.sin(t)+r*Math.cos(t)+e.z,this}},{key:"rotateY",value:function(e,t){var n=this.x-e.x,r=this.z-e.z;return this.x=r*Math.cos(t)-n*Math.sin(t)+e.x,this.z=r*Math.sin(t)+n*Math.cos(t)+e.z,this}},{key:"rotateZ",value:function(e,t){var n=this.x-e.x,r=this.y-e.y;return this.x=n*Math.cos(t)-r*Math.sin(t)+e.x,this.y=n*Math.sin(t)+r*Math.cos(t)+e.y,this}},{key:"transform",value:function(e){var t=this.x,n=this.y,r=this.z,o=e.m,i=o[3]*t+o[7]*n+o[11]*r+o[15];return i=i||1,this.x=(o[0]*t+o[4]*n+o[8]*r+o[12])/i,this.y=(o[1]*t+o[5]*n+o[9]*r+o[13])/i,this.z=(o[2]*t+o[6]*n+o[10]*r+o[14])/i,this}},{key:"transformMat3",value:function(e){var t=this.x,n=this.y,r=this.z,o=e.m;return this.x=t*o[0]+n*o[3]+r*o[6],this.y=t*o[1]+n*o[4]+r*o[7],this.z=t*o[2]+n*o[5]+r*o[8],this}},{key:"randomize",value:function(){return this.x=2*Math.random()-1,this.y=2*Math.random()-1,this.z=2*Math.random()-1,this}},{key:"randomize01",value:function(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}},{key:"randomizeSphere",value:function(){do{this.randomize()}while(this.length()>1);return this}}],r=[{key:"ZERO",get:function(){return new e(0,0,0)}},{key:"RIGHT",get:function(){return new e(1,0,0)}},{key:"UP",get:function(){return new e(0,1,0)}},{key:"FORWARD",get:function(){return new e(0,0,1)}},{key:"ONE",get:function(){return new e(1,1,1)}},{key:"dot",value:function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z}},{key:"distance",value:function(e,t){var n=e.x-t.x,r=e.y-t.y,o=e.z-t.z;return Math.sqrt(n*n+r*r+o*o)}},{key:"distance2",value:function(e,t){var n=e.x-t.x,r=e.y-t.y,o=e.z-t.z;return n*n+r*r+o*o}},{key:"add",value:function(e,t){return e.clone().add(t)}},{key:"sub",value:function(e,t){return e.clone().sub(t)}},{key:"multiply",value:function(e,t){return e.clone().multiply(t)}},{key:"divide",value:function(e,t){return e.clone().divide(t)}},{key:"multiplyScalar",value:function(e,t){return e.clone().multiplyScalar(t)}},{key:"powScalar",value:function(e,t){return e.clone().powScalar(t)}},{key:"normalize",value:function(e){return e.clone().normalize()}},{key:"max",value:function(e,t){return e.clone().max(t)}},{key:"min",value:function(e,t){return e.clone().min(t)}},{key:"lerp",value:function(e,t,n){return e.clone().lerp(t,n)}},{key:"lerp3",value:function(t,n,r){return new e(ge(t.x,n.x,r.x),ge(t.y,n.y,r.y),ge(t.z,n.z,r.z))}},{key:"cross",value:function(t,n){var r=t.x,o=t.y,i=t.z,a=n.x,s=n.y,l=n.z;return new e(o*l-i*s,i*a-r*l,r*s-o*a)}},{key:"fract",value:function(t){return new e(t.x-Math.floor(t.x),t.y-Math.floor(t.y),t.z-Math.floor(t.z))}},{key:"floor",value:function(t){return new e(Math.floor(t.x),Math.floor(t.y),Math.floor(t.z))}},{key:"transform",value:function(e,t){return e.clone().transform(t)}},{key:"transformMat3",value:function(e,t){return e.clone().transformMat3(t)}}],n&&Me(t.prototype,n),r&&Me(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,n,r}();function De(e){return De="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},De(e)}function Ae(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Ce(r.key),r)}}function Le(e,t,n){return(t=Ce(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ce(e){var t=function(e,t){if("object"!=De(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=De(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==De(t)?t:t+""}var ze=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}
2(this,e),Le(this,"x",-0),Le(this,"y",-0),Le(this,"z",-0),Le(this,"w",-0),this.x=t,this.y=n,this.z=r,this.w=o}return t=e,r=[{key:"ZERO",get:function(){return new e(0,0,0,0)}},{key:"ONE",get:function(){return new e(1,1,1,1)}},{key:"dot",value:function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w}},{key:"distance",value:function(e,t){var n=t.x-e.x,r=t.y-e.y,o=t.z-e.z,i=t.w-e.w;return Math.sqrt(n*n+r*r+o*o+i*i)}},{key:"add",value:function(e,t){return e.clone().add(t)}},{key:"sub",value:function(e,t){return e.clone().sub(t)}},{key:"multiply",value:function(e,t){return e.clone().multiply(t)}},{key:"divide",value:function(e,t){return e.clone().divide(t)}},{key:"multiplyScalar",value:function(e,t){return e.clone().multiplyScalar(t)}},{key:"powScalar",value:function(e,t){return e.clone().powScalar(t)}},{key:"normalize",value:function(e){return e.clone().normalize()}},{key:"max",value:function(e,t){return e.clone().max(t)}},{key:"min",value:function(e,t){return e.clone().min(t)}},{key:"lerp",value:function(e,t,n){return e.clone().lerp(t,n)}},{key:"cross",value:function(t,n,r){var o=n.x*r.y-n.y*r.x,i=n.x*r.z-n.z*r.x,a=n.x*r.w-n.w*r.x,s=n.y*r.z-n.z*r.y,l=n.y*r.w-n.w*r.y,u=n.z*r.w-n.w*r.z,c=t.x,f=t.y,h=t.z,d=t.w,p=new e;return p.x=f*u-h*l+d*s,p.y=-c*u+h*a-d*i,p.z=c*l-f*a+d*o,p.w=-c*s+f*i-h*o,p}},{key:"transform",value:function(e,t){return e.clone().transform(t)}}],(n=[{key:"clone",value:function(){return new e(this.x,this.y,this.z,this.w)}},{key:"copy",value:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w,this}},{key:"setValues",value:function(e,t,n,r){return this.x=e,this.y=t,this.z=n,this.w=r,this}},{key:"length",value:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}},{key:"equals",value:function(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}},{key:"normalize",value:function(){var e=this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w;return e>0&&(e=1/Math.sqrt(e)),this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}},{key:"negate",value:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}},{key:"multiplyScalar",value:function(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}},{key:"addScalar",value:function(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}},{key:"multiply",value:function(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}},{key:"divide",value:function(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this.w/=e.w,this}},{key:"add",value:function(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}},{key:"sub",value:function(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}},{key:"min",value:function(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}},{key:"max",value:function(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}},{key:"powScalar",value:function(e){return this.x=Math.pow(this.x,e),this.y=Math.pow(this.y,e),this.z=Math.pow(this.z,e),this.w=Math.pow(this.w,e),this}},{key:"lerp",value:function(e,t){return this.x=this.x+(e.x-this.x)*t,this.y=this.y+(e.y-this.y)*t,this.z=this.z+(e.z-this.z)*t,this.w=this.w+(e.w-this.w)*t,this}},{key:"dot",value:function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w}},{key:"transform",value:function(e){var t=this.x,n=this.y,r=this.z,o=this.w,i=e.m;return this.x=i[0]*t+i[4]*n+i[8]*r+i[12]*o,this.y=i[1]*t+i[5]*n+i[9]*r+i[13]*o,this.z=i[2]*t+i[6]*n+i[10]*r+i[14]*o,this.w=i[3]*t+i[7]*n+i[11]*r+i[15]*o,this}},{key:"xyz",get:function(){return new je(this.x,this.y,this.z)}},{key:"v",get:function(){return[this.x,this.y,this.z,this.w]}}])&&Ae(t.prototype,n),r&&Ae(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,n,r}();function Fe(e){return Fe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Fe(e)}function Re(e){return function(e){if(Array.isArray(e))return Ve(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Ve(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ve(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ve(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Ne(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Be(r.key),r)}}function Be(e){var t=function(e,t){if("object"!=Fe(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Fe(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Fe(t)?t:t+""}function Ue(e,t,n){return t=We(t),function(e,t){if(t&&("object"==Fe(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Ie()?Reflect.construct(t,n||[],We(e).constructor):t.apply(e,n))}function Ie(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Ie=function(){return!!e})()}function We(e){return We=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},We(e)}function He(e,t){return He=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},He(e,t)}var Ge=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Ue(this,t,arguments)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&He(e,t)}(t,e),n=t,r=[{key:"r",get:function(){return this.x},set:function(e){this.x=e}},{key:"g",get:function(){return this.y},set:function(e){this.y=e}},{key:"b",get:function(){return this.z},set:function(e){this.z=e}},{key:"a",get:function(){return this.w},set:function(e){this.w=e}},{key:"vector3",get:function(){return new je(this.x,this.y,this.z)}},{key:"gammaToLinearSpace",get:function(){return t.multiply(this,t.multiply(this,t.multiplyScalar(this,.305306011).addScalar(.682171111)).addScalar(.012522878))}},{key:"linearToGammaSpace",get:function(){var e=t.max(this,t.ZERO);return t.max(e.powScalar(.416666667).multiplyScalar(1.055).addScalar(-.055),t.ZERO)}},{key:"clone",value:function(){return new t(this.x,this.y,this.z,this.w)}}
2,{key:"setRGBA255",value:function(e){return this.r=e[0]/255,this.g=e[1]/255,this.b=e[2]/255,this.a=e[3],this}},{key:"setHex",value:function(e){e=e.replace(/[^0-9A-F]/gi,"");var t=parseInt(e,16);return this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,this.a=1,this}},{key:"getHex",value:function(){function e(e){var t=e.toString(16);return 1==t.length?"0"+t:t}return"#".concat(e(255*this.r|0)).concat(e(255*this.g|0)).concat(e(255*this.b|0))}},{key:"getRGBAString",value:function(){return"rgba(".concat(Math.round(255*this.r),", ").concat(Math.round(255*this.g),", ").concat(Math.round(255*this.b),",").concat(this.a,")")}},{key:"setHSV",value:function(e,t,n){var r=0,o=0,i=0,a=Math.floor(6*e),s=6*e-a,l=n*(1-t),u=n*(1-s*t),c=n*(1-(1-s)*t);switch(a%6){case 0:r=n,o=c,i=l;break;case 1:r=u,o=n,i=l;break;case 2:r=l,o=n,i=c;break;case 3:r=l,o=u,i=n;break;case 4:r=c,o=l,i=n;break;case 5:r=n,o=l,i=u}return this.r=r,this.g=o,this.b=i,this}}],o=[{key:"ONE",get:function(){return new t(1,1,1,1)}},{key:"ZERO",get:function(){return new t(0,0,0,0)}},{key:"random",get:function(){return new t(Math.random(),Math.random(),Math.random())}},{key:"fromHex",value:function(e){return(new t).setHex(e)}},{key:"fromRGB255",value:function(e){return(new t).setRGBA255([].concat(Re(e),[1]))}},{key:"fromHSV",value:function(e,n,r){return(new t).setHSV(e,n,r)}}],r&&Ne(n.prototype,r),o&&Ne(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(ze);function qe(e){return qe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},qe(e)}function Xe(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Ke(r.key),r)}}function Ye(e,t,n){return(t=Ke(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ke(e){var t=function(e,t){if("object"!=qe(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=qe(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==qe(t)?t:t+""}var Ze,Je,$e=function(){return e=function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Ye(this,"enabledAttribArrays",[]),Ye(this,"material",null),Ye(this,"mesh",null),Ye(this,"renderer",void 0),Ye(this,"program",null),Ye(this,"depthMask",!0),Ye(this,"depthTest",!0),Ye(this,"alphaToCoverage",!1),Ye(this,"depthFunc",-1),Ye(this,"culling",-1),Ye(this,"cullingEnabled",!0),Ye(this,"blendEquation",-1),Ye(this,"blendEnabled",!0),Ye(this,"sourceBlend",-1),Ye(this,"destinationBlend",-1),Ye(this,"textureSlots",[]),Ye(this,"activeTextureSlot",-1),this.renderer=t,this.setBlendEnabled(!this.blendEnabled),this.setCullingEnabled(!this.cullingEnabled),this.setDepthMask(!this.depthMask),this.setDepthTest(!this.depthTest)},t=[{key:"bindTextureToSlot",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this.textureSlots[t]!=e.textureGL&&(this.activateSlot(t),this.renderer.context.bindTexture(e.target,e.textureGL),this.textureSlots[t]=e.textureGL)}},{key:"activateSlot",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.activeTextureSlot!=e&&(this.activeTextureSlot=e,this.renderer.context.activeTexture(33984+e))}},{key:"unBindTextureFromSlot",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this.textureSlots[t]==e&&(this.activateSlot(t),this.renderer.context.bindTexture(O,null),this.textureSlots[t]=null)}},{key:"setProgram",value:function(e){return e!=this.program&&(this.program=e,this.renderer.context.useProgram(this.program),!0)}},{key:"setDepthMask",value:function(e){e!=this.depthMask&&(this.renderer.context.depthMask(e),this.depthMask=e)}},{key:"getDepthMask",value:function(){return this.depthMask}},{key:"setAlphaToCoverage",value:function(e){e!=this.alphaToCoverage&&(e?this.renderer.context.enable(32926):this.renderer.context.disable(32926),this.alphaToCoverage=e)}},{key:"setDepthTest",value:function(e){e!=this.depthTest&&(e?this.renderer.context.enable(2929):this.renderer.context.disable(2929),this.depthTest=e)}},{key:"setDepthFunc",value:function(e){e!=this.depthFunc&&(this.renderer.context.depthFunc(e),this.depthFunc=e)}},{key:"setCullingEnabled",value:function(e){e!=this.cullingEnabled&&(e?this.renderer.context.enable(2884):this.renderer.context.disable(2884),this.cullingEnabled=e)}},{key:"setCulling",value:function(e){e!=this.culling&&(0==e?this.setCullingEnabled(!1):(this.setCullingEnabled(!0),this.renderer.context.cullFace(e)),this.culling=e)}},{key:"setBlendEquation",value:function(e){e!=this.blendEquation&&(this.renderer.context.blendEquation(e),this.blendEquation=e)}},{key:"setBlendEnabled",value:function(e){e!=this.blendEnabled&&(e?this.renderer.context.enable(3042):this.renderer.context.disable(3042),this.blendEnabled=e)}},{key:"setBlendFunc",value:function(e,t){e==this.sourceBlend&&t==this.destinationBlend||(this.renderer.context.blendFunc(e,t),this.sourceBlend=e,this.destinationBlend=t)}},{key:"setBlendFuncSeparate",value:function(e,t,n,r){this.renderer.context.blendFuncSeparate(e,t,n,r),this.sourceBlend=-1}}],t&&Xe(e.prototype,t),n&&Xe(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function Qe(e,t){var n=e.getExtension(t);return n?l.log("enabled extension "+t):l.log("extension "+t+" is not supported"),n}function et(e){return et="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},et(e)}function tt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,rt(r.key),r)}}function nt(e,t,n){return(t=rt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function rt(e){var t=function(e,t){if("object"!=et(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=et(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==et(t)?t:t+""}var ot=[],it=[],at=[],st=[],lt=[],ut=[],ct=new be,ft=new be,ht=new be,dt=!1,pt=!1,vt=!1;function mt(e){var t=0,n=0;if("touches"in e?(t=e.touches[0].clientX,n=e.touches[0].clientY):"clientX"in e&&"clientY"in e&&(t=e.clientX,n=e.clientY),Je&&Je.getBoundingClientRect){var r=Je.getBoundingClientRect();ct.x=(t-r.left)/r.width,ct.y=(n-r.top)/r.height}else ct.setValues(t,n)}function yt(){vt||it.forEach((function(e){return e()}))}function bt(e){var t=Math.sign(-e.deltaY);ot.forEach((function(e){return e(t)}))}function gt(e){vt=!1,mt(e),ft.copy(ct),dt||(dt=pt=!0,at.forEach((function(e){return e(ct.clone())})))}function wt(e){mt(e),lt.forEach((function(e){return e(ct.clone())}))}function _t(){dt&&(dt=pt=!1,st.forEach((function(e){return e()})))}var xt=function(){return e=function e(t,n){var r;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),nt(this,"updateRequest",void 0),nt(this,"manualUpdate",!1),Je=n,(Ze=t)&&((r=t).addEventListener("click",yt),r.addEventListener("mousedown",gt),r.addEventListener("touchstart",gt),r.addEventListener("mousemove",wt),r.addEventListener("touchmove",wt),r.addEventListener("mouseup",_t),r.addEventListener("touchend",_t),r.addEventListener("touchcancel",_t),r.addEventListener("mousecancel",_t),r.addEventListener("mouseleave",_t),r.addEventListener("wheel",bt)),this.updateLoop()},(t=[{key:"normalizedPos",get:function(){return ct.clone()}},{key:"screenPos",get:function(){return new be(2*ct.x-1,1-2*ct.y)}},{key:"normalizedVelocity",get:function(){return ht.clone()}},{key:"mouseDown",get:function(){return dt}},{key:"mouseDownThisFrame",get:function(){return pt}},{key:"addWheelEvent",value:function(e){ot.push(e)}},{key:"addClickEvent",value:function(e){it.push(e)}},{key:"addDownEvent",value:function(e){at.push(e)}},{key:"addMoveEvent",value:function(e){lt.push(e)}},{key:"addUpEvent",value:function(e){st.push(e)}}
2,{key:"addDragEvent",value:function(e){ut.push(e)}},{key:"updateManual",value:function(){this.manualUpdate=!0,this.update()}},{key:"destruct",value:function(){var e;Ze&&((e=Ze).removeEventListener("click",yt),e.removeEventListener("mousedown",gt),e.removeEventListener("mousemove",wt),e.removeEventListener("mouseup",_t),e.removeEventListener("mousecancel",_t),e.removeEventListener("mouseleave",_t),e.removeEventListener("wheel",bt)),cancelAnimationFrame(this.updateRequest)}},{key:"updateLoop",value:function(){var e=this;this.manualUpdate||(this.update(),this.updateRequest=requestAnimationFrame((function(){return e.updateLoop()})))}},{key:"update",value:function(){ht.copy(ct).subtract(ft),ft.copy(ct),this.mouseDown&&ht.length()>0&&(ht.length()>.002&&(vt=!0),ut.forEach((function(e){return e(ht)}))),pt=!1}}])&&tt(e.prototype,t),n&&tt(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function St(e){return St="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},St(e)}function kt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Mt(r.key),r)}}function Pt(e,t,n){return t&&kt(e.prototype,t),n&&kt(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function Tt(e,t,n){return(t=Mt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Mt(e){var t=function(e,t){if("object"!=St(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=St(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==St(t)?t:t+""}var Et=Pt((function e(t,n,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Tt(this,"name",void 0),Tt(this,"stride",void 0),Tt(this,"loc",void 0),this.name=t,this.stride=n,this.loc=r}));function Ot(e){return Ot="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ot(e)}function jt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,At(r.key),r)}}function Dt(e,t,n){return(t=At(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function At(e){var t=function(e,t){if("object"!=Ot(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Ot(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Ot(t)?t:t+""}var Lt=function(){return e=function e(t,n,r,o){if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Dt(this,"name",void 0),Dt(this,"texture",null),Dt(this,"samplerIndex",void 0),this.name=n,this.samplerIndex=o,!t.program)throw new ReferenceError("Cannot construct TextureUniform from shader: shader is not yet initialized.");t.renderer.renderState.setProgram(t.program),t.renderer.context.uniform1i(r,o)},(t=[{key:"set",value:function(e){this.texture=e}},{key:"unSet",value:function(){this.texture&&this.texture.renderer.renderState.unBindTextureFromSlot(this.texture.textureGL,this.samplerIndex)}},{key:"bind",value:function(){this.texture&&this.texture.bindToSlot(this.samplerIndex)}}])&&jt(e.prototype,t),n&&jt(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function Ct(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,s=[],l=!0,u=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){u=!0,o=e}
2finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(u)throw o}}return s}}(e,t)||zt(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function zt(e,t){if(e){if("string"==typeof e)return Ft(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ft(e,t):void 0}}function Ft(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var Rt={},Vt=[];function Nt(e,t){Rt[e]=t}function Bt(e){var t;e=e.replace("./","");var n=null===(t=Object.entries(Rt).find((function(t){var n=Ct(t,2),r=n[0];n[1];return r.includes(e)})))||void 0===t?void 0:t[1];return new Promise(n?function(e){return e(n)}:function(t){var n,r=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=zt(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}(Vt);try{for(r.s();!(n=r.n()).done;){(0,n.value)().then((function(n){Nt(e,n),t(n)})).catch((function(){l.warn("Failed to load shader source for ".concat(e))}))}}catch(e){r.e(e)}finally{r.f()}})}function Ut(e){return Ut="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ut(e)}function It(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Ht(r.key),r)}}function Wt(e,t,n){return(t=Ht(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ht(e){var t=function(e,t){if("object"!=Ut(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Ut(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Ut(t)?t:t+""}function Gt(e,t){var n=/^#include\s+(\S+)/,r=[];if(e.forEach((function(e){e.split("\n").forEach((function(e){var t=n.exec(e.trim());null!==t&&r.push([t[1],t])}))})),r.length){var o=r.map((function(e){return e[0]}));Promise.all(o.map(Bt)).then((function(n){e.forEach((function(t,i){r.forEach((function(r,a){e[i]=t.replace(r[1][0],"\n\n///// Start ".concat(o[a],"\n\n").concat(n[a],"\n\n///// End ").concat(o[a],"\n\n"))}))})),Gt(e,t)}))}else t(e)}function qt(e){var t=/^uniform\s+(\S*)\s+(\S*);/,n={};return e.split("\n").map((function(e){var r=t.exec(e);if(r){var o=r[2];n[o]&&(e="// "+e),n[o]=!0}return e})).join("\n")}function Xt(e,t,n){var r=e.createShader(n);return e.shaderSource(r,t),e.compileShader(r),r}function Yt(e){switch(e){case v:case 5124:return 1;case 35664:return 2;case 35665:return 3;case 35666:case 35674:return 4;case 35675:return 9;case 35676:return 16;default:return l.error("attribute type not handled: "+e),-1}}function Kt(e,t,n){if(t){var r,o=/ERROR: (\d+):(\d+):/,i=t.split("\n"),a=[];i.forEach((function(e){var t=o.exec(e);null!==t&&(a[parseInt(t[2],10)-1]=e)})),i=n.split("\n");for(var s=[""],u=0;u<i.length;u++)s[0]+="%c"+i[u]+"\n",s[u+1]=a[u]?"color: #f44":"",a[u]&&(s[0]+=" --\x3e "+a[u]+"\n");return l.error("Compile error for shader: "+e),l.log.apply(l,s),(r=console).log.apply(r,s),!0}return!1}var Zt=function(){return e=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Wt(this,"id",void 0),Wt(this,"program",void 0),Wt(this,"name","unnamed"),Wt(this,"attributes",void 0),Wt(this,"renderer",void 0),Wt(this,"shaderDefines",void 0),Wt(this,"textureUniforms",void 0),Wt(this,"uniformLocationsByName",void 0),Wt(this,"vShader",void 0),Wt(this,"fShader",void 0),Wt(this,"vShaderSource",""),Wt(this,"fShaderSource",""),Wt(this,"compileStatusChecked",!1),this.id=e.staticId++,this.renderer=t,this.shaderDefines=n},t=[{key:"load",value:function(e,t){var n=this;Promise.all([Bt("".concat(e,".vs.glsl")),Bt("".concat(e,".fs.glsl"))]).then((function(r){Gt(r,(function(r){n.init(e,r[0],r[1],t)}))}))}},{key:"init",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;if(this.name=e,this.shaderDefines){var o="",i=0;for(var a in this.shaderDefines)o+="#define "+a+" "+this.shaderDefines[a]+"\n",i++;i>0&&(t=o+t,n=o+n)}t=qt(t),n=qt(n),this.vShaderSource=this.renderer.preprocessShaderString(t),this.fShaderSource=this.renderer.preprocessShaderString(n);var s=this.renderer.context;return this.vShader=Xt(s,this.vShaderSource,35633),this.fShader=Xt(s,this.fShaderSource,35632),this.program=function(e,t,n){var r=e.createProgram();return e.attachShader(r,t),e.attachShader(r,n),e.linkProgram(r),r}(s,this.vShader,this.fShader),r&&r.call(this),this}},{key:"getUniformLocation",value:function(e){this.uniformLocationsByName||this.getTextureUniforms();var t=this.uniformLocationsByName[e];return void 0===t&&(t=this.renderer.context.getUniformLocation(this.program,e)||!1,this.uniformLocationsByName[e]=t),t}},{key:"getTextureUniforms",value:function(){if(!this.textureUniforms){this.checkCompileStatus();var e=this.renderer.context,t=e.getProgramParameter(this.program,35718);this.textureUniforms=[],this.uniformLocationsByName={};for(var n=0,r=0;r<t;r++){var o=e.getActiveUniform(this.program,r),i=e.getUniformLocation(this.program,o.name);this.uniformLocationsByName[o.name]=i,35678!==o.type&&35680!==o.type&&35679!==o.type||(this.textureUniforms.push(new Lt(this,o.name,i,n)),n++)}}return this.textureUniforms}},{key:"getAttributes",value:function(){if(!this.attributes){this.checkCompileStatus();var e=this.renderer.context,t=e.getProgramParameter(this.program,35721);this.attributes=[];for(var n=0;n<t;n++){var r=e.getActiveAttrib(this.program,n),o=e.getAttribLocation(this.program,r.name),i=Yt(r.type);this.attributes.push(new Et(r.name,i,o))}}return this.attributes}},{key:"getAttributeByName",value:function(e){return this.getAttributes().find((function(t){return t.name===e}))}},{key:"getTextureUniformByName",value:function(e){return this.getTextureUniforms().find((function(t){return t.name===e}))}},{key:"destruct",value:function(){var e=this.renderer.context;e.deleteShader(this.vShader),e.deleteShader(this.fShader),e.deleteProgram(this.program)}},{key:"checkCompileStatus",value:function(){if(!this.compileStatusChecked){this.compileStatusChecked=!0;var e=this.renderer.context;if(e.getProgramParameter(this.program,35714))return;throw Kt(this.name,e.getShaderInfoLog(this.vShader),this.vShaderSource)||Kt(this.name,e.getShaderInfoLog(this.fShader),this.fShaderSource)||Kt(this.name,e.getProgramInfoLog(this.program),this.fShaderSource),new Error("unable to compile shader")}}}],t&&It(e.prototype,t),n&&It(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function Jt(e){return Jt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Jt(e)}function $t(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];
2if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Qt(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Qt(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function Qt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function en(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function tn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?en(Object(n),!0).forEach((function(t){rn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):en(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function nn(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,on(r.key),r)}}function rn(e,t,n){return(t=on(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function on(e){var t=function(e,t){if("object"!=Jt(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Jt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Jt(t)?t:t+""}Wt(Zt,"staticId",0);var an={alpha:!1,antialias:!0,depth:!0,failIfMajorPerformanceCaveat:!1,powerPreference:"high-performance",premultipliedAlpha:!0,preserveDrawingBuffer:!1,stencil:!0},sn=0;var ln=function(){return e=function e(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),rn(this,"id",0),rn(this,"context",void 0),rn(this,"maxParams",void 0),rn(this,"renderState",void 0),rn(this,"extensions",void 0),rn(this,"canvas",void 0),rn(this,"options",void 0),rn(this,"_clearColor",new Ge(.5,.5,.5,1)),rn(this,"_size",new be),rn(this,"_mouseListener",void 0),rn(this,"fb",[]),rn(this,"vertexArrayObjects",{}),rn(this,"blitMat",void 0),rn(this,"blitMesh",void 0),rn(this,"rt",null),rn(this,"drawCallCount",0),this.options=tn(tn({},an),r),this.id=sn++,this.canvas=t;var o,i=this.canvas.getContext("webgl2",this.options);if(!i)throw new Error("could not get a 3d context: aborting");this.context=i,this.extensions=function(e){var t,n=e.context;return{color_buffer_float:Qe(n,"EXT_color_buffer_float")||Qe(n,"WEBGL_color_buffer_float"),color_buffer_half_float:Qe(n,"EXT_color_buffer_half_float"),texture_float_linear:Qe(n,"OES_texture_float_linear"),seamless_cube_map:Qe(n,"OES_seamless_cube_map"),filter_anisotropic:t=Qe(n,"EXT_texture_filter_anisotropic")||Qe(n,"texture_filter_anisotropic")||Qe(n,"MOZ_EXT_texture_filter_anisotropic")||Qe(n,"WEBKIT_EXT_texture_filter_anisotropic"),maxAnisotropy:t?n.getParameter(t.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0,shader_texture_lod:Qe(n,"EXT_shader_texture_lod")}}(this),this.maxParams={MAX_VERTEX_ATTRIBS:(o=this.context).getParameter(34921),MAX_VARYING_VECTORS:o.getParameter(36348),MAX_VERTEX_UNIFORM_VECTORS:o.getParameter(36347),MAX_FRAGMENT_UNIFORM_VECTORS:o.getParameter(36349),MAX_TEXTURE_IMAGE_UNITS:o.getParameter(34930),MAX_VERTEX_TEXTURE_IMAGE_UNITS:o.getParameter(35660),MAX_TEXTURE_SIZE:o.getParameter(3379),MAX_CUBE_MAP_TEXTURE_SIZE:o.getParameter(34076),MAX_VIEWPORT_DIMS:o.getParameter(3386),MAX_RENDERBUFFER_SIZE:o.getParameter(34024),MAX_COMBINED_TEXTURE_IMAGE_UNITS:o.getParameter(35661)},this.renderState=new $e(this);var a=new Zt(this);a.init("default","#version 300 es\nin vec3 aPos;\n        in vec2 aUV0;\n        out vec2 vUV;\n        void main(void) {\n          vUV = aUV0;\n          gl_Position = vec4(aPos, 1.0);\n        }","#version 300 es\n        precision mediump float;\n        in vec2 vUV;\n        uniform sampler2D _Texture;\n        out vec4 fragColor;\n        void main(void) {\n    fragColor = texture(_Texture, vUV);\n}"),this.blitMat=new te(this,"default",a),this.blitMat.depthTest=!1,this.blitMat.depthWrite=!1,this.blitMesh=function(e){var t=new de(e),n=new Float32Array([-1,-1,0,-1,3,0,3,-1,0]);t.setPositions(n);var r=new Float32Array([0,0,0,2,2,0]);t.setUV0(r);var o=new Uint16Array([0,2,1]);return t.setIndices(o),t}(this),this.canvas.addEventListener&&this.canvas.addEventListener("resize",(function(){return n.handleCanvasResize()})),this.vertexArrayObjects={}}
2,t=[{key:"clearColor",get:function(){return this._clearColor},set:function(e){this._clearColor.copy(e),this.context.clearColor(e.r,e.g,e.b,e.a)}},{key:"size",get:function(){return this._size}},{key:"mouseListener",get:function(){return this._mouseListener||(this._mouseListener=new xt(this.options.mouseEventsElement||this.canvas,this.canvas)),this._mouseListener}},{key:"renderTarget",get:function(){return this.rt},set:function(e){e?(e.scaleToCanvas&&e.setSize(Math.round(this.canvas.width*e.sizeMultiplier),Math.round(this.canvas.height*e.sizeMultiplier)),e.setAsTarget(),this.setSize(e.width,e.height),this.rt=e):this.unsetRenderTarget()}},{key:"width",get:function(){return this._size.x}},{key:"height",get:function(){return this._size.y}},{key:"aspectRatio",get:function(){return this.width/this.height}},{key:"init",value:function(){this.unsetRenderTarget(),this.handleCanvasResize()}},{key:"handleCanvasResize",value:function(){this.setSize(this.canvas.width,this.canvas.height)}},{key:"enablePointSprites",value:function(){this.context.enable(34370)}},{key:"blit",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],i=null!=n?n:this.blitMat;t&&(this.renderTarget=t),e&&i.setTexture("_Texture",e),r&&(t&&t.hasDepth()?this.clear():this.context.clear(17408)),this.draw(this.blitMesh,i),t&&o&&this.unsetRenderTarget(),e&&i.unSetTexture("_Texture")}},{key:"unsetRenderTarget",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this.rt||e){var t=this.context;t.bindFramebuffer(y,null),t.bindRenderbuffer(S,null),this.setSize(this.canvas.width,this.canvas.height)}this.rt=null}},{key:"clearWithColor",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;this.context.clearColor(e,t,n,r),this.context.depthMask(!0),this.context.clear(17664),this.context.depthMask(this.renderState.getDepthMask()),this.context.clearColor(this._clearColor.r,this._clearColor.g,this._clearColor.b,this._clearColor.a)}},{key:"clearRenderTexture",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0;this.renderTarget=e,this.clearWithColor(t,n,r,o),this.unsetRenderTarget()}},{key:"clearDepth",value:function(){this.renderState.setDepthMask(!0),this.context.clear(256)}},{key:"clear",value:function(){this.renderState.getDepthMask()||this.context.depthMask(!0),this.context.clear(17664),this.renderState.getDepthMask()||this.context.depthMask(this.renderState.getDepthMask())}},{key:"setSize",value:function(e,t){e|=0,t|=0,this.width===e&&this.height===t||(this._size.setValues(e,t),this.context.viewport(0,0,this.width,this.height))}},{key:"setScissor",value:function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];e=we(e),t=we(t);var i=(n=we(n))-e,a=(r=we(r))-t,s=this.width,l=this.height;this.context.enable(M),this.context.scissor(e*s|0,t*l|0,i*s|0,a*l|0),o&&this.context.viewport(e*s|0,t*l|0,i*s|0,a*l|0)}},{key:"setScissorPixels",value:function(e,t,n,r){this.context.enable(M),this.context.scissor(e,t,n-e,r-t)}},{key:"unsetScissor",value:function(){this.context.disable(M)}},{key:"setViewPort",value:function(e,t,n,r){this._size.setValues(n,r),this.context.viewport(e,t,this.width,this.height)}},{key:"unsetViewPort",value:function(){this._size.setValues(this.canvas.width,this.canvas.height),this.context.viewport(0,0,this.canvas.width,this.canvas.height)}},{key:"setChannelMask",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];this.context.colorMask(e,t,n,r)}},{key:"clearChannelMask",value:function(){this.context.colorMask(!0,!0,
2!0,!0)}},{key:"setStencilEnabled",value:function(e){e?this.context.enable(2960):this.context.disable(2960)}},{key:"startDrawToStencil",value:function(){var e=this.context;this.setStencilEnabled(!0),e.stencilFunc(519,1,255),e.stencilOp(7680,7680,7681),e.stencilMask(255)}},{key:"setStencilFuncEqual",value:function(e){this.context.stencilFunc(e?514:517,1,255)}},{key:"getFramebuffer",value:function(){var e=this.fb.pop();return e||this.context.createFramebuffer()}},{key:"releaseFramebuffer",value:function(e){this.fb.push(e)}},{key:"getVAO",value:function(e,t){var n,r=this,o=this.vertexArrayObjects[e.id];return e.dirty&&o&&(o.forEach((function(e){r.context.deleteVertexArray(e)})),o=void 0),o?(n=o[t.id])||(n=this.initVAO(e,t),o[t.id]=n):(o=[],n=this.initVAO(e,t),o[t.id]=n,this.vertexArrayObjects[e.id]=o),e.dirty=!1,n}},{key:"drawInstanced",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;t.setActive();var o=this.getVAO(e,t),i=this.context;if(i.bindVertexArray(o),r){var a,s=$t(r.attributes);try{for(s.s();!(a=s.n()).done;){var l=a.value;i.bindBuffer(u,l.buffer),i.enableVertexAttribArray(l.index),i.vertexAttribPointer(l.index,l.nrComponents,v,!1,l.bufferStride,l.bufferOffset),i.vertexAttribDivisor(l.index,1)}}catch(e){s.e(e)}finally{s.f()}}e.hasIndices()?i.drawElementsInstanced(t.drawType,e.indices.length,e.indexType,0,n):i.drawArraysInstanced(t.drawType,0,e.vertexCount,n)}},{key:"destructVAO",value:function(e){var t=this.vertexArrayObjects[e.id];for(var n in t){var r=t[n];this.context.deleteVertexArray(r)}delete this.vertexArrayObjects[e.id]}},{key:"draw",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1;t.setActive();var o=this.getVAO(e,t),i=this.context;i.bindVertexArray(o),this.drawElements(e,t,n,r),i.bindVertexArray(null),this.drawCallCount++}},{key:"drawElements",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1;if(e.hasIndices()){var o=e.indices.length;r>0?this.context.drawElements(t.drawType,Math.min(o,r),e.indexType,0):this.context.drawElements(t.drawType,o,e.indexType,0)}else{var i=e.vertexCount-n;r>0?this.context.drawArrays(t.drawType,n,Math.min(i,r)):this.context.drawArrays(t.drawType,n,i)}}},{key:"preprocessShaderString",value:function(e){var t=e.indexOf("#version"),n="";return t>-1&&(n=e.substr(t,e.indexOf("\n",t)-t)),e=n+"\n#define WEBGL2\n"+(e=e.replace(n,""))}},{key:"startBatch",value:function(e,t){t.setActive();var n=this.getVAO(e,t);this.context.bindVertexArray(n)}},{key:"destruct",value:function(){var e=this;l.log("RendererWebGL2: destruct"),this.vertexArrayObjects&&Object.values(this.vertexArrayObjects).forEach((function(t){t.forEach((function(t){e.context.deleteVertexArray(t)}))}));var t=this.context;this.fb.forEach((function(e){t.deleteFramebuffer(e)}));for(var n=t.getParameter(34930),r=0;r<n;++r)t.activeTexture(t.TEXTURE0+r),t.bindTexture(t.TEXTURE_2D,null),t.bindTexture(t.TEXTURE_CUBE_MAP,null);t.bindBuffer(u,null),t.bindBuffer(p,null),t.bindRenderbuffer(S,null),t.bindFramebuffer(y,null),t.useProgram(null);var o=t.getExtension("WEBGL_lose_context");o&&o.loseContext(),this.blitMesh&&this.blitMesh.destruct(),this.blitMat&&this.blitMat.destruct(),this.canvas.removeEventListener("resize",this.handleCanvasResize),this._mouseListener&&this._mouseListener.destruct()}},{key:"initVAO",value:function(e,t){var n=this.context,r=n.createVertexArray();n.bindVertexArray(r);var o=0;return e.isInterleaved()&&(e.interleaveData(),this.context.bindBuffer(u,e.interleavedBuffer)),e.attributes.forEach((function(r){var i=t.shader.getAttributeByName(r.name);if(i){if(r.stride!==i.stride)return void l.log("Renderer: initVAO: strides don't match: ",r.stride,i.stride);if(e.isInterleaved())n.enableVertexAttribArray(i.loc),n.vertexAttribPointer(i.loc,i.stride,v,!1,4*e.interleavedStrideSum,o);else{if(null===r.buffer)throw new ReferenceError("Expected buffer to be defined on VertexAttribute on non-interleaved mesh.");n.bindBuffer(u,r.buffer),n.enableVertexAttribArray(i.loc),n.vertexAttribPointer(i.loc,i.stride,v,!1,4*i.stride,0)}}e.interleaved&&(o+=4*r.stride)})),e.indexBuffer&&n.bindBuffer(p,e.indexBuffer),r}}],t&&nn(e.prototype,t),n&&nn(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function un(e){return un="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},un(e)}
2function cn(e,t){return cn=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},cn(e,t)}function fn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(fn=function(){return!!e})()}function hn(e){return function(e){if(Array.isArray(e))return dn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return dn(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?dn(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function dn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function pn(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,vn(r.key),r)}}function vn(e){var t=function(e,t){if("object"!=un(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=un(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==un(t)?t:t+""}var mn=function(){function e(){var t,n,r;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),t=this,r=[1,0,0,0,1,0,0,0,1],(n=vn(n="m"))in t?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r;for(var o=arguments.length,i=new Array(o),a=0;a<o;a++)i[a]=arguments[a];9===i.length&&(this.m=[].concat(i))}return t=e,r=[{key:"clone",value:function(t){return function(e,t,n){if(fn())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var o=new(e.bind.apply(e,r));return n&&cn(o,n.prototype),o}(e,hn(t.m))}},{key:"copy",value:function(e,t){return e.m=hn(t.m),e}},{key:"setValues",value:function(e,t,n,r,o,i,a,s,l,u){var c=e.m;return c[0]=t,c[1]=n,c[2]=r,c[3]=o,c[4]=i,c[5]=a,c[6]=s,c[7]=l,c[8]=u,c}},{key:"identity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,n=(t=t||new e).m;return n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=1,n[5]=0,n[6]=0,n[7]=0,n[8]=1,t}},{key:"transpose",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,r=(n=n||new e).m,o=t.m;if(r===o){var i=o[1],a=o[2],s=o[5];r[1]=o[3],r[2]=o[6],r[3]=i,r[5]=o[7],r[6]=a,r[7]=s}else r[0]=o[0],r[1]=o[3],r[2]=o[6],r[3]=o[1],r[4]=o[4],r[5]=o[7],r[6]=o[2],r[7]=o[5],r[8]=o[8];return n}},{key:"invert",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,r=(n=n||new e).m,o=t.m,i=o[0],a=o[1],s=o[2],l=o[3],u=o[4],c=o[5],f=o[6],h=o[7],d=o[8],p=d*u-c*h,v=-d*l+c*f,m=h*l-u*f,y=i*p+a*v+s*m;return y?(y=1/y,r[0]=p*y,r[1]=(-d*a+s*h)*y,r[2]=(c*a-s*u)*y,r[3]=v*y,r[4]=(d*i-s*f)*y,r[5]=(-c*i+s*l)*y,r[6]=m*y,r[7]=(-h*i+a*f)*y,r[8]=(u*i-a*l)*y,n):n}},{key:"determinant",value:function(e){var t=e.m,n=t[0],r=t[1],o=t[2],i=t[3],a=t[4],s=t[5],l=t[6],u=t[7],c=t[8];return n*(c*a-s*u)+r*(-c*i+s*l)+o*(u*i-a*l)}},{key:"multiply",value:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,o=(r=r||new e).m,i=t.m,a=n.m,s=i[0],l=i[1],u=i[2],c=i[3],f=i[4],h=i[5],d=i[6],p=i[7],v=i[8],m=a[0],y=a[1],b=a[2],g=a[3],w=a[4],_=a[5],x=a[6],S=a[7],k=a[8];return o[0]=m*s+y*c+b*d,o[1]=m*l+y*f+b*p,o[2]=m*u+y*h+b*v,o[3]=g*s+w*c+_*d,o[4]=g*l+w*f+_*p,o[5]=g*u+w*h+_*v,o[6]=x*s+S*c+k*d,o[7]=x*l+S*f+k*p,o[8]=x*u+S*h+k*v,r}},{key:"fromQuat",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,r=(n=n||new e).m,o=t.x,i=t.y,a=t.z,s=t.w,l=o+o,u=i+i,c=a+a,f=o*l,h=i*l,d=i*u,p=a*l,v=a*u,m=a*c,y=s*l,b=s*u,g=s*c;return r[0]=1-d-m,r[3]=h-g,r[6]=p+b,r[1]=h+g,r[4]=1-f-m,r[7]=v-y,r[2]=p-b,r[5]=v+y,r[8]=1-f-d,n}},{key:"add",value:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,o=(r=r||new e).m,i=t.m,a=n.m;return o[0]=i[0]+a[0],o[1]=i[1]+a[1],o[2]=i[2]+a[2],o[3]=i[3]+a[3],o[4]=i[4]+a[4],o[5]=i[5]+a[5],o[6]=i[6]+a[6],o[7]=i[7]+a[7],o[8]=i[8]+a[8],r}},{key:"subtract",value:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,o=(r=r||new e).m,i=t.m,a=n.m;return o[0]=i[0]-a[0],o[1]=i[1]-a[1],o[2]=i[2]-a[2],o[3]=i[3]-a[3],o[4]=i[4]-a[4],o[5]=i[5]-a[5],o[6]=i[6]-a[6],o[7]=i[7]-a[7],o[8]=i[8]-a[8],r}},{key:"multiplyScalar",value:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,o=(r=r||new e).m,i=t.m;return o[0]=i[0]*n,o[1]=i[1]*n,o[2]=i[2]*n,o[3]=i[3]*n,o[4]=i[4]*n,o[5]=i[5]*n,o[6]=i[6]*n,o[7]=i[7]*n,o[8]=i[8]*n,r}},{key:"normalFromMat4",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,r=(n=n||new e).m,o=t.m,i=o[0],a=o[1],s=o[2],l=o[3],u=o[4],c=o[5],f=o[6],h=o[7],d=o[8],p=o[9],v=o[10],m=o[11],y=o[12],b=o[13],g=o[14],w=o[15],_=i*c-a*u,x=i*f-s*u,S=i*h-l*u,k=a*f-s*c,P=a*h-l*c,T=s*h-l*f,M=d*b-p*y,E=d*g-v*y,O=d*w-m*y,j=p*g-v*b,D=p*w-m*b,A=v*w-m*g,L=_*A-x*D+S*j+k*O-P*E+T*M;return L?(L=1/L,r[0]=(c*A-f*D+h*j)*L,r[1]=(f*O-u*A-h*E)*L,r[2]=(u*D-c*O+h*M)*L,r[3]=(s*D-a*A-l*j)*L,r[4]=(i*A-s*O+l*E)*L,r[5]=(a*O-i*D-l*M)*L,r[6]=(b*T-g*P+w*k)*L,r[7]=(g*S-y*T-w*x)*L,r[8]=(y*P-b*S+w*_)*L,n):null}},{key:"fromMat4",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,r=(n=n||new e).m,o=t.m;return r[0]=o[0],r[1]=o[1],r[2]=o[2],r[3]=o[4],r[4]=o[5],r[5]=o[6],r[6]=o[8],r[7]=o[9],r[8]=o[10],n}}],(n=[{key:"clone",value:function(){return e.clone(this)}}])&&pn(t.prototype,n),r&&pn(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,n,r}();function yn(e){return yn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},yn(e)}function bn(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,wn(r.key),r)}}function gn(e,t,n){return(t=wn(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function wn(e){var t=function(e,t){if("object"!=yn(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=yn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==yn(t)?t:t+""}var _n=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}
2(this,e),gn(this,"x",-0),gn(this,"y",-0),gn(this,"z",-0),gn(this,"w",-0),this.x=t,this.y=n,this.z=r,this.w=o}return t=e,n=[{key:"clone",value:function(){return new e(this.x,this.y,this.z,this.w)}},{key:"copy",value:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w,this}},{key:"setValues",value:function(e,t,n,r){return this.x=e,this.y=t,this.z=n,this.w=r,this}},{key:"dot",value:function(t){return e.dot(this,t)}},{key:"identity",value:function(){return this.x=0,this.y=0,this.z=0,this.w=1,this}},{key:"lerp",value:function(t,n){return e.slerp(this,t,n)}},{key:"multiply",value:function(e){var t=this.x,n=this.y,r=this.z,o=this.w,i=e.x,a=e.y,s=e.z,l=e.w;return this.x=t*l+o*i+n*s-r*a,this.y=n*l+o*a+r*i-t*s,this.z=r*l+o*s+t*a-n*i,this.w=o*l-t*i-n*a-r*s,this}},{key:"invert",value:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=this.w,this}},{key:"rotateEulerValues",value:function(e,t,n){return this.rotateY(t),this.rotateX(e),this.rotateZ(n),this}},{key:"rotateX",value:function(e){e*=.5;var t=this.x,n=this.y,r=this.z,o=this.w,i=Math.sin(e),a=Math.cos(e);return this.x=t*a+o*i,this.y=n*a+r*i,this.z=r*a-n*i,this.w=o*a-t*i,this}},{key:"rotateY",value:function(e){e*=.5;var t=this.x,n=this.y,r=this.z,o=this.w,i=Math.sin(e),a=Math.cos(e);return this.x=t*a-r*i,this.y=n*a+o*i,this.z=r*a+t*i,this.w=o*a-n*i,this}},{key:"rotateZ",value:function(e){e*=.5;var t=this.x,n=this.y,r=this.z,o=this.w,i=Math.sin(e),a=Math.cos(e);return this.x=t*a+n*i,this.y=n*a-t*i,this.z=r*a+o*i,this.w=o*a-r*i,this}},{key:"setAxisAngle",value:function(e,t){t*=.5;var n=Math.sin(t);return this.x=n*e.x,this.y=n*e.y,this.z=n*e.z,this.w=Math.cos(t),this}},{key:"rotateAxisAngle",value:function(t,n){var r=e.createFromAxisAngle(t,n),o=r.x,i=r.y,a=r.z,s=r.w,l=this.x,u=this.y,c=this.z,f=this.w;return this.x=o*f+s*l+i*c-a*u,this.y=i*f+s*u+a*l-o*c,this.z=a*f+s*c+o*u-i*l,this.w=s*f-o*l-i*u-a*c,this}},{key:"lookAt",value:function(e,t,n){var r=e.clone();r.sub(t),r.normalize();var o=je.cross(n,r);o.normalize();var i=je.cross(r,o);i.normalize();var a=new mn(o.x,o.y,o.z,i.x,i.y,i.z,r.x,r.y,r.z);return this.fromMat3(a)}},{key:"fromMat3",value:function(e){var t,n=e.m,r=n[0]+n[4]+n[8];if(r>0)t=Math.sqrt(r+1),this.w=.5*t,t=.5/t,this.x=(n[5]-n[7])*t,this.y=(n[6]-n[2])*t,this.z=(n[1]-n[3])*t;else{var o=0;n[4]>n[0]&&(o=1),n[8]>n[3*o+o]&&(o=2);var i=(o+1)%3,a=(o+2)%3,s=.5*(t=Math.sqrt(n[3*o+o]-n[3*i+i]-n[3*a+a]+1)),l=.5/t;this.w=(n[3*i+a]-n[3*a+i])*l;var u=(n[3*i+o]+n[3*o+i])*l,c=(n[3*a+o]+n[3*o+a])*l;this.x=0==o?s:0==i?u:c,this.y=1==o?s:1==i?u:c,this.z=2==o?s:2==i?u:c}return this}},{key:"normalize",value:function(){var e=this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w;return e>0&&(e=1/Math.sqrt(e)),this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}}],r=[{key:"IDENTITY",get:function(){return new e}},{key:"ZERO",get:function(){return new e(0,0,0,0)}},{key:"dot",value:function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w}},{key:"lerp",value:function(t,n,r){var o=t.x,i=t.y,a=t.z,s=t.w,l=new e;return l.x=o+r*(n.x-o),l.y=i+r*(n.y-i),l.z=a+r*(n.z-a),l.w=s+r*(n.w-s),l}},{key:"closestSlerp",value:function(t,n,r){return t.dot(n)<0?e.slerp(t,e.invert(n),r):e.slerp(t,n,r)}},{key:"lookAt",value:function(t,n,r){var o=t.clone().sub(n).normalize(),i=je.cross(r,o).normalize(),a=je.cross(o,i).normalize(),s=new mn(i.x,i.y,i.z,a.x,a.y,a.z,o.x,o.y,o.z);return e.fromMat3(s)}},{key:"createFromAxisAngle",value:function(t,n){var r=.5*n,o=Math.sin(r);return new e(t.x*o,t.y*o,t.z*o,Math.cos(r))}},{key:"getAxisAngle",value:function(t){var n=2*Math.acos(t.w),r=Math.sin(n/2),o=new je;return r>e.EPSILON?(o.x=t.x/r,o.y=t.y/r,o.z=t.z/r):(o.x=1,o.y=0,o.z=0),o}},{key:"getAngle",value:function(t,n){var r=e.dot(t,n);return Math.acos(2*r*r-1)}},{key:"multiply",value:function(t,n){var r=t.x,o=t.y,i=t.z,a=t.w,s=n.x,l=n.y,u=n.z,c=n.w,f=new e;return f.x=r*c+a*s+o*u-i*l,f.y=o*c+a*l+i*s-r*u,f.z=i*c+a*u+r*l-o*s,f.w=a*c-r*s-o*l-i*u,f}},{key:"calculateW",value:function(t){var n=t.x,r=t.y,o=t.z,i=new e;return i.x=n,i.y=r,i.z=o,i.w=Math.sqrt(Math.abs(1-n*n-r*r-o*o)),i}},{key:"exp",value:function(t){var n=t.x,r=t.y,o=t.z,i=t.w,a=Math.sqrt(n*n+r*r+o*o),s=Math.exp(i),l=a>0?s*Math.sin(a)/a:0,u=new e;return u.x=n*l,u.y=r*l,u.z=o*l,u.w=s*Math.cos(a),u}},{key:"ln",value:function(t){var n=t.x,r=t.y,o=t.z,i=t.w,a=Math.sqrt(n*n+r*r+o*o),s=a>0?Math.atan2(a,i)/a:0,l=new e;return l.x=n*s,l.y=r*s,l.z=o*s,l.w=.5*Math.log(n*n+r*r+o*o+i*i),l}},{key:"scale",value:function(t,n){return new e(t.x*n,t.y*n,t.z*n,t.w*n)}},{key:"pow",value:function(t,n){var r=e.ln(t);return r=e.scale(r,n),e.exp(r)}},{key:"slerp",value:function(t,n,r){var o,i,a,s,l,u=t.x,c=t.y,f=t.z,h=t.w,d=n.x,p=n.y,v=n.z,m=n.w;(i=u*d+c*p+f*v+h*m)<0&&(i=-i,d=-d,p=-p,v=-v,m=-m),1-i>e.EPSILON?(o=Math.acos(i),a=Math.sin(o),s=Math.sin((1-r)*o)/a,l=Math.sin(r*o)/a):(s=1-r,l=r);var y=new e;return y.x=s*u+l*d,y.y=s*c+l*p,y.z=s*f+l*v,y.w=s*h+l*m,y}},{key:"random",value:function(){var t=Math.random(),n=Math.random(),r
2=Math.random(),o=Math.sqrt(1-t),i=Math.sqrt(t),a=new e;return a.x=o*Math.sin(2*Math.PI*n),a.y=o*Math.cos(2*Math.PI*n),a.z=i*Math.sin(2*Math.PI*r),a.w=i*Math.cos(2*Math.PI*r),a}},{key:"invert",value:function(t){var n=t.x,r=t.y,o=t.z,i=t.w,a=n*n+r*r+o*o+i*i,s=a?1/a:0,l=new e;return l.x=-n*s,l.y=-r*s,l.z=-o*s,l.w=i*s,l}},{key:"conjugate",value:function(t){var n=new e;return n.x=-t.x,n.y=-t.y,n.z=-t.z,n.w=t.w,n}},{key:"fromMat3",value:function(t){var n,r=t.m,o=r[0]+r[4]+r[8],i=new e;if(o>0)n=Math.sqrt(o+1),i.w=.5*n,n=.5/n,i.x=(r[5]-r[7])*n,i.y=(r[6]-r[2])*n,i.z=(r[1]-r[3])*n;else{var a=0;r[4]>r[0]&&(a=1),r[8]>r[3*a+a]&&(a=2);var s=(a+1)%3,l=(a+2)%3,u=.5*(n=Math.sqrt(r[3*a+a]-r[3*s+s]-r[3*l+l]+1)),c=.5/n;i.w=(r[3*s+l]-r[3*l+s])*c;var f=(r[3*s+a]+r[3*a+s])*c,h=(r[3*l+a]+r[3*a+l])*c;i.x=0==a?u:0==s?f:h,i.y=1==a?u:1==s?f:h,i.z=2==a?u:2==s?f:h}return i}},{key:"fromEuler",value:function(t,n,r){return(new e).rotateEulerValues(t,n,r)}}],n&&bn(t.prototype,n),r&&bn(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,n,r}();function xn(e){return xn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},xn(e)}function Sn(e,t){return Sn=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Sn(e,t)}function kn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(kn=function(){return!!e})()}function Pn(e){return function(e){if(Array.isArray(e))return Tn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Tn(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Tn(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Tn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Mn(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,En(r.key),r)}}function En(e){var t=function(e,t){if("object"!=xn(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=xn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==xn(t)?t:t+""}gn(_n,"EPSILON",1e-9);var On=1e-9,jn=function(){function e(){var t,n,r;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),t=this,r=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],(n=En(n="m"))in t?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r;for(var o=arguments.length,i=new Array(o),a=0;a<o;a++)i[a]=arguments[a];16===i.length&&(this.m=[].concat(i))}return t=e,r=[{key:"clone",value:function(t){return function(e,t,n){if(kn())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var o=new(e.bind.apply(e,r));return n&&Sn(o,n.prototype),o}(e,Pn(t.m))}},{key:"copy",value:function(e,t){return t.m=Pn(e.m),t}},{key:"identity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,n=(t=t||new e).m;return n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=1,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=1,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,t}},{key:"transpose",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,r=(n=n||new e).m,o=t.m;if(r===o){var i=o[1],a=o[2],s=o[3],l=o[6],u=o[7],c=o[11];r[1]=o[4],r[2]=o[8],r[3]=o[12],r[4]=i,r[6]=o[9],r[7]=o[13],r[8]=a,r[9]=l,r[11]=o[14],r[12]=s,r[13]=u,r[14]=c}else r[0]=o[0],r[1]=o[4],r[2]=o[8],r[3]=o[12],r[4]=o[1],r[5]=o[5],r[6]=o[9],r[7]=o[13],r[8]=o[2],r[9]=o[
26],r[10]=o[10],r[11]=o[14],r[12]=o[3],r[13]=o[7],r[14]=o[11],r[15]=o[15];return n}},{key:"invert",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,r=(n=n||new e).m,o=t.m,i=o[0],a=o[1],s=o[2],l=o[3],u=o[4],c=o[5],f=o[6],h=o[7],d=o[8],p=o[9],v=o[10],m=o[11],y=o[12],b=o[13],g=o[14],w=o[15],_=i*c-a*u,x=i*f-s*u,S=i*h-l*u,k=a*f-s*c,P=a*h-l*c,T=s*h-l*f,M=d*b-p*y,E=d*g-v*y,O=d*w-m*y,j=p*g-v*b,D=p*w-m*b,A=v*w-m*g,L=_*A-x*D+S*j+k*O-P*E+T*M;return L?(L=1/L,r[0]=(c*A-f*D+h*j)*L,r[1]=(s*D-a*A-l*j)*L,r[2]=(b*T-g*P+w*k)*L,r[3]=(v*P-p*T-m*k)*L,r[4]=(f*O-u*A-h*E)*L,r[5]=(i*A-s*O+l*E)*L,r[6]=(g*S-y*T-w*x)*L,r[7]=(d*T-v*S+m*x)*L,r[8]=(u*D-c*O+h*M)*L,r[9]=(a*O-i*D-l*M)*L,r[10]=(y*P-b*S+w*_)*L,r[11]=(p*S-d*P-m*_)*L,r[12]=(c*E-u*j-f*M)*L,r[13]=(i*j-a*E+s*M)*L,r[14]=(b*x-y*k-g*_)*L,r[15]=(d*k-p*x+v*_)*L,n):n}},{key:"determinant",value:function(e){var t=e.m,n=t[0],r=t[1],o=t[2],i=t[3],a=t[4],s=t[5],l=t[6],u=t[7],c=t[8],f=t[9],h=t[10],d=t[11],p=t[12],v=t[13],m=t[14],y=n*s-r*a,b=n*l-o*a,g=r*l-o*s,w=c*v-f*p,_=c*m-h*p,x=f*m-h*v;return u*(n*x-r*_+o*w)-i*(a*x-s*_+l*w)+t[15]*(c*g-f*b+h*y)-d*(p*g-v*b+m*y)}},{key:"multiply",value:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,o=(r=r||new e).m,i=t.m,a=n.m,s=i[0],l=i[1],u=i[2],c=i[3],f=i[4],h=i[5],d=i[6],p=i[7],v=i[8],m=i[9],y=i[10],b=i[11],g=i[12],w=i[13],_=i[14],x=i[15],S=a[0],k=a[1],P=a[2],T=a[3];return o[0]=S*s+k*f+P*v+T*g,o[1]=S*l+k*h+P*m+T*w,o[2]=S*u+k*d+P*y+T*_,o[3]=S*c+k*p+P*b+T*x,S=a[4],k=a[5],P=a[6],T=a[7],o[4]=S*s+k*f+P*v+T*g,o[5]=S*l+k*h+P*m+T*w,o[6]=S*u+k*d+P*y+T*_,o[7]=S*c+k*p+P*b+T*x,S=a[8],k=a[9],P=a[10],T=a[11],o[8]=S*s+k*f+P*v+T*g,o[9]=S*l+k*h+P*m+T*w,o[10]=S*u+k*d+P*y+T*_,o[11]=S*c+k*p+P*b+T*x,S=a[12],k=a[13],P=a[14],T=a[15],o[12]=S*s+k*f+P*v+T*g,o[13]=S*l+k*h+P*m+T*w,o[14]=S*u+k*d+P*y+T*_,o[15]=S*c+k*p+P*b+T*x,r}},{key:"translate",value:function(t,n){var r,o,i,a,s,l,u,c,f,h,d,p,v=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,m=(v=v||new e).m,y=t.m,b=n.x,g=n.y,w=n.z;return y===m?(m[12]=y[0]*b+y[4]*g+y[8]*w+y[12],m[13]=y[1]*b+y[5]*g+y[9]*w+y[13],m[14]=y[2]*b+y[6]*g+y[10]*w+y[14],m[15]=y[3]*b+y[7]*g+y[11]*w+y[15]):(r=y[0],o=y[1],i=y[2],a=y[3],s=y[4],l=y[5],u=y[6],c=y[7],f=y[8],h=y[9],d=y[10],p=y[11],m[0]=r,m[1]=o,m[2]=i,m[3]=a,m[4]=s,m[5]=l,m[6]=u,m[7]=c,m[8]=f,m[9]=h,m[10]=d,m[11]=p,m[12]=r*b+s*g+f*w+y[12],m[13]=o*b+l*g+h*w+y[13],m[14]=i*b+u*g+d*w+y[14],m[15]=a*b+c*g+p*w+y[15]),v}},{key:"scale",value:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,o=(r=r||new e).m,i=t.m,a=n.x,s=n.y,l=n.z;return o[0]=i[0]*a,o[1]=i[1]*a,o[2]=i[2]*a,o[3]=i[3]*a,o[4]=i[4]*s,o[5]=i[5]*s,o[6]=i[6]*s,o[7]=i[7]*s,o[8]=i[8]*l,o[9]=i[9]*l,o[10]=i[10]*l,o[11]=i[11]*l,o[12]=i[12],o[13]=i[13],o[14]=i[14],o[15]=i[15],r}},{key:"rotate",value:function(t,n,r){var o,i,a,s,l,u,c,f,h,d,p,v,m,y,b,g,w,_,x,S,k,P,T,M,E=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0,O=(E=E||new e).m,j=t.m,D=r.x,A=r.y,L=r.z,C=r.length();return C<On||(D*=C=1/C,A*=C,L*=C,o=Math.sin(n),a=1-(i=Math.cos(n)),s=j[0],l=j[1],u=j[2],c=j[3],f=j[4],h=j[5],d=j[6],p=j[7],v=j[8],m=j[9],y=j[10],b=j[11],g=D*D*a+i,w=A*D*a+L*o,_=L*D*a-A*o,x=D*A*a-L*o,S=A*A*a+i,k=L*A*a+D*o,P=D*L*a+A*o,T=A*L*a-D*o,M=L*L*a+i,O[0]=s*g+f*w+v*_,O[1]=l*g+h*w+m*_,O[2]=u*g+d*w+y*_,O[3]=c*g+p*w+b*_,O[4]=s*x+f*S+v*k,O[5]=l*x+h*S+m*k,O[6]=u*x+d*S+y*k,O[7]=c*x+p*S+b*k,O[8]=s*P+f*T+v*M,O[9]=l*P+h*T+m*M,O[10]=u*P+d*T+y*M,O[11]=c*P+p*T+b*M,j!==O&&(O[12]=j[12],O[13]=j[13],O[14]=j[14],O[15]=j[15])),E}},{key:"rotateX",value:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,o=(r=r||new e).m,i=t.m,a=Math.sin(n),s=Math.cos(n),l=i[4],u=i[5],c=i[6],f=i[7],h=i[8],d=i[9],p=i[10],v=i[11];return i!==o&&(o[0]=i[0],o[1]=i[1],o[2]=i[2],o[3]=i[3],o[12]=i[12],o[13]=i[13],o[14]=i[14],o[15]=i[15]),o[4]=l*s+h*a,o[5]=u*s+d*a,o[6]=c*s+p*a,o[7]=f*s+v*a,o[8]=h*s-l*a,o[9]=d*s-u*a,o[10]=p*s-c*a,o[11]=v*s-f*a,r}},{key:"rotateY",value:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,o=(r=r||new e).m,i=t.m,a=Math.sin(n),s=Math.cos(n),l=i[0],u=i[1],c=i[2],f=i[3],h=i[8],d=i[9],p=i[10],v=i[11];return i!==o&&(o[4]=i[4],o[5]=i[5],o[6]=i[6],o[7]=i[7],o[12]=i[12],o[13]=i[13],o[14]=i[14],o[15]=i[15]),o[0]=l*s-h*a,o[1]=u*s-d*a,o[2]=c*s-p*a,o[3]=f*s-v*a,o[8]=l*a+h*s,o[9]=u*a+d*s,o[10]=c*a+p*s,o[11]=f*a+v*s,r}},{key:"rotateZ",value:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,o=(r=r||new e).m,i=t.m,a=Math.sin(n),s=Math.cos(n),l=i[0],u=i[1],c=i[2],f=i[3],h=i[4],d=i[5],p=i[6],v=i[7];return i!==o&&(o[8]=i[8],o[9]=i[9],o[10]=i[10],o[11]=i[11],o[12]=i[12],o[13]=i[13],o[14]=i[14],o[15]=i[15]),o[0]=l*s+h*
2a,o[1]=u*s+d*a,o[2]=c*s+p*a,o[3]=f*s+v*a,o[4]=h*s-l*a,o[5]=d*s-u*a,o[6]=p*s-c*a,o[7]=v*s-f*a,r}},{key:"fromTranslation",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;return n=n||new e,e.translate(n,t)}},{key:"fromRotation",value:function(t,n){var r,o,i,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,s=(a=a||new e).m,l=n.x,u=n.y,c=n.z,f=n.length();return f<On||(l*=f=1/f,u*=f,c*=f,r=Math.sin(t),i=1-(o=Math.cos(t)),s[0]=l*l*i+o,s[1]=u*l*i+c*r,s[2]=c*l*i-u*r,s[3]=0,s[4]=l*u*i-c*r,s[5]=u*u*i+o,s[6]=c*u*i+l*r,s[7]=0,s[8]=l*c*i+u*r,s[9]=u*c*i-l*r,s[10]=c*c*i+o,s[11]=0,s[12]=0,s[13]=0,s[14]=0,s[15]=1),a}},{key:"fromXRotation",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;return e.fromRotation(t,new je(1,0,0),n)}},{key:"fromYRotation",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;return e.fromRotation(t,new je(0,1,0),n)}},{key:"fromZRotation",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;return e.fromRotation(t,new je(0,0,1),n)}},{key:"fromRotationTranslationScale",value:function(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0,i=(o=o||new e).m,a=t.x,s=t.y,l=t.z,u=t.w,c=a+a,f=s+s,h=l+l,d=a*c,p=a*f,v=a*h,m=s*f,y=s*h,b=l*h,g=u*c,w=u*f,_=u*h,x=r.x,S=r.y,k=r.z;return i[0]=(1-(m+b))*x,i[1]=(p+_)*x,i[2]=(v-w)*x,i[3]=0,i[4]=(p-_)*S,i[5]=(1-(d+b))*S,i[6]=(y+g)*S,i[7]=0,i[8]=(v+w)*k,i[9]=(y-g)*k,i[10]=(1-(d+m))*k,i[11]=0,i[12]=n.x,i[13]=n.y,i[14]=n.z,i[15]=1,o}},{key:"toTranslationRotationScale",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0;t=t||new _n,n=n||new je,r=r||new je;var o=e.m;n.x=o[12],n.y=o[13],n.z=o[14];var i=Math.sqrt(o[0]*o[0]+o[1]*o[1]+o[2]*o[2]),a=Math.sqrt(o[4]*o[4]+o[5]*o[5]+o[6]*o[6]),s=Math.sqrt(o[8]*o[8]+o[9]*o[9]+o[10]*o[10]),l=o[0]*(o[5]*o[10]-o[6]*o[9])-o[1]*(o[4]*o[10]-o[6]*o[8])+o[2]*(o[4]*o[9]-o[5]*o[8]);r.x=l<0?-i:i,r.y=a,r.z=s;var u=1/r.x,c=1/r.y,f=1/r.z,h=new mn(o[0]*u,o[1]*u,o[2]*u,o[4]*c,o[5]*c,o[6]*c,o[8]*f,o[9]*f,o[10]*f);return t.fromMat3(h),{position:n,rotation:t,scale:r}}},{key:"fromQuat",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,r=(n=n||new e).m,o=t.x,i=t.y,a=t.z,s=t.w,l=o+o,u=i+i,c=a+a,f=o*l,h=i*l,d=i*u,p=a*l,v=a*u,m=a*c,y=s*l,b=s*u,g=s*c;return r[0]=1-d-m,r[1]=h+g,r[2]=p-b,r[3]=0,r[4]=h-g,r[5]=1-f-m,r[6]=v+y,r[7]=0,r[8]=p+b,r[9]=v-y,r[10]=1-f-d,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,n}},{key:"perspective",value:function(t,n,r,o){var i,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0,s=(a=a||new e).m,l=1/Math.tan(t/2);return s[0]=l/n,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=l,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[11]=-1,s[12]=0,s[13]=0,s[15]=0,null!=o&&o!==1/0?(i=1/(r-o),s[10]=(o+r)*i,s[14]=2*o*r*i):(s[10]=-1,s[14]=-2*r),a}},{key:"ortho",value:function(t,n,r,o,i,a){var s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:void 0,l=(s=s||new e).m,u=1/(t-n),c=1/(r-o),f=1/(i-a);return l[0]=-2*u,l[1]=0,l[2]=0,l[3]=0,l[4]=0,l[5]=-2*c,l[6]=0,l[7]=0,l[8]=0,l[9]=0,l[10]=2*f,l[11]=0,l[12]=(t+n)*u,l[13]=(o+r)*c,l[14]=(a+i)*f,l[15]=1,s}},{key:"lookAt",value:function(t,n,r){var o,i,a,s,l,u,c,f,h,d,p=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0,v=(p=p||new e).m,m=t.x,y=t.y,b=t.z,g=r.x,w=r.y,_=r.z,x=n.x,S=n.y,k=n.z;return Math.abs(m-x)<On&&Math.abs(y-S)<On&&Math.abs(b-k)<On?e.identity(p):(c=m-x,f=y-S,h=b-k,o=w*(h*=d=1/Math.hypot(c,f,h))-_*(f*=d),i=_*(c*=d)-g*h,a=g*f-w*c,(d=Math.hypot(o,i,a))?(o*=d=1/d,i*=d,a*=d):(o=0,i=0,a=0),s=f*a-h*i,l=h*o-c*a,u=c*i-f*o,(d=Math.hypot(s,l,u))?(s*=d=1/d,l*=d,u*=d):(s=0,l=0,u=0),v[0]=o,v[1]=s,v[2]=c,v[3]=0,v[4]=i,v[5]=l,v[6]=f,v[7]=0,v[8]=a,v[9]=u,v[10]=h,v[11]=0,v[12]=-(o*m+i*y+a*b),v[13]=-(s*m+l*y+u*b),v[14]=-(c*m+f*y+h*b),v[15]=1,p)}},{key:"add",value:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,o=(r=r||new e).m,i=t.m,a=n.m;return o[0]=i[0]+a[0],o[1]=i[1]+a[1],o[2]=i[2]+a[2],o[3]=i[3]+a[3],o[4]=i[4]+a[4],o[5]=i[5]+a[5],o[6]=i[6]+a[6],o[7]=i[7]+a[7],o[8]=i[8]+a[8],o[9]=i[9]+a[9],o[10]=i[10]+a[10],o[11]=i[11]+a[11],o[12]=i[12]+a[12],o[13]=i[13]+a[13],o[14]=i[14]+a[14],o[15]=i[15]+a[15],r}},{key:"subtract",value:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,o=(r=r||new e).m,i=t.m,a=n.m;return o[0]=i[0]-a[0],o[1]=i[1]-a[1],o[2]=i[2]-a[2],o[3]=i[3]-a[3],o[4]=i[4]-a[4],o[5]=i[5]-a[5],o[6]=i[6]-a[6],o[7]=i[7]-a[7],o[8]=i[8]-a[8],o[9]=i[9]-a[9],o[10]=i[10]-a[10],o[11]=i[11]-a[11],o[12]=i[12]-a[12],o[13]=i[13]-a[13],o[14]=i[14]-a[14],o[15]=i[15]-a[15],r}},{key:"multiplyScalar",value:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,o=(r=r||new e).m,i=t.m;return o[0]=i[0]*n,o[1]=i[1]*n,o[2]=i[2]*n,o[3]=i[3]*n,o[4]=i[4]*n,o[5]=i[5]*n,o[6]=i[6]*n,o[7]=i[7]*n,o[8]=i[8]*n,o[9]=i[9]*n,o[10]=i[10]*n,o[11]=i[11]*n,o[12]=i[12]*n,o[13]=i[13]*n,o[14]=i[14]*n,o[15]=i[15]*n,r}}],(n=[{key:"setValues",value:function(e,t,n,r,o,i,a,s,l,u,c,f,h,d,p,v){var m=this.m;return m[0]=e,m[1]=t,m[2]=n,m[3]=r,m[4]=o,m[5]=i,m[6]=a,m[7]=s,m[8]=l,m[9]=u,m[10]=c,m[11]=f,m[12]=h,m[13]=d,m[14]=p,m[15]=v,this}},{key:"clone",value:function(){return e.clone(this)}},{key:"copy",value:function(t){return e.copy(t,this)}},{key:"invert",value:function(){return e.invert(this)}},{key:"inverse",get:function(){var t=new e;return e.invert(this,t),t}}])&&Mn(t.prototype,n),r&&Mn(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,n,r}();function Dn(e){return Dn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Dn(e)}function An(e){return function(e){if(Array.isArray(e))return Cn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Ln(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ln(e,t){if(e){if("string"==typeof e)return Cn(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Cn(e,t):void 0}}function Cn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function zn(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Rn(r.key),r)}}function Fn(e,t,n){return(t=Rn(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Rn(e){var t=function(e,t){if("object"!=Dn(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Dn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Dn(t)?t:t+""}var Vn=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Fn(this,"name",""),Fn(this,"id",-1),Fn(this,"_rotation",new _n),Fn(this,"_position",new je),Fn(this,"_scale",new je(1,1,1)),Fn(this,"_matrix",new jn),Fn(this,"_localMatrix",new jn),Fn(this,"_parent",null),Fn(this,"_children",[]),Fn(this,"_signalDirtyDown",!0),Fn(this,"_dirty",!0)}return t=e,n=[{key:"dirty",get:function(){return this._dirty}},{key:"rotation",get:function(){return this._rotation.clone()},set:function(e){this._rotation.copy(e),this.setDirty()}},{key:"position",get:function(){return this._position.clone()},set:function(e){this._position.copy(e),this.setDirty()}},{key:"scale",get:function(){return this._scale.clone()},set:function(e){this._scale.copy(e),this.setDirty()}},{key:"localMatrix",get:function(){return this.updateMatrix(),this._localMatrix},set:function(e){var t=jn.toTranslationRotationScale(e);this.position=t.position,this.rotation=t.rotation,this.scale=t.scale}},{key:"parent",get:function(){return this._parent},set:function(e){this._parent!==e&&(this._parent&&this._parent.removeChild(this),this._parent=e,e&&e.addChild(this),this.setDirty())}},{key:"children",get:function(){return this._children}},{key:"getChild",value:function(e){var t,n=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];
2if(!n){if(Array.isArray(e)||(n=Ln(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}(this._children);try{for(n.s();!(t=n.n()).done;){var r=t.value;if(r.name===e)return r}}catch(e){n.e(e)}finally{n.f()}return null}},{key:"isChildOf",value:function(e){for(var t=this.parent;t;){if(t===e)return!0;t=t.parent}return!1}},{key:"flipped",get:function(){var e=Math.sign(this.scale.x)*Math.sign(this.scale.y)*Math.sign(this.scale.z);return this.parent?this.parent.flipped*e:e}},{key:"worldMatrix",get:function(){return this.updateMatrix(),this._matrix}},{key:"worldPosition",get:function(){return this.updateMatrix(),(new je).transform(this._matrix)},set:function(e){this.parent?this.position=e.clone().transform(jn.invert(this.parent.worldMatrix)):this.position=e}},{key:"scaleScalar",set:function(e){this._scale.setValues(e,e,e),this.setDirty()}},{key:"worldRotation",get:function(){var e=this._rotation;return this._parent&&(e=_n.multiply(this._parent.worldRotation,e)),e},set:function(e){this.parent?this.rotation=_n.invert(this.parent.worldRotation).multiply(e.clone()):this.rotation=e}},{key:"rotationMatrixMat4",get:function(){return jn.fromQuat(this._rotation)}},{key:"worldRotationMatrixMat4",get:function(){return jn.fromQuat(this.worldRotation)}},{key:"rotationMatrixMat3",get:function(){return mn.fromQuat(this._rotation)},set:function(e){this._rotation.fromMat3(e),this.setDirty()}},{key:"worldRotationMatrixMat3",get:function(){return mn.fromQuat(this.worldRotation)}},{key:"eulerX",set:function(e){this._rotation.identity(),this.rotateX(e)}},{key:"eulerY",set:function(e){this._rotation.identity(),this.rotateY(e)}},{key:"eulerZ",set:function(e){this._rotation.identity(),this.rotateZ(e)}},{key:"eulerXY",set:function(e){this.setEulerValues(e.x,e.y,0)}},{key:"euler",get:function(){return e.getEulerYXZ(mn.fromQuat(this._rotation))},set:function(e){this._rotation.identity(),this.rotateEulerValues(e.x,e.y,e.z)}},{key:"forward",get:function(){var e=this.rotationMatrixMat3.m;return new je(e[6],e[7],e[8])}},{key:"worldForward",get:function(){var e=this.worldRotationMatrixMat3.m;return new je(e[6],e[7],e[8])}},{key:"right",get:function(){var e=this.rotationMatrixMat3.m;return new je(e[0],e[1],e[2])}},{key:"worldRight",get:function(){var e=this.worldRotationMatrixMat3.m;return new je(e[0],e[1],e[2])}},{key:"up",get:function(){var e=this.rotationMatrixMat3.m;return new je(e[3],e[4],e[5])}},{key:"worldUp",get:function(){var e=this.worldRotationMatrixMat3.m;return new je(e[3],e[4],e[5])}},{key:"direction",get:function(){return new je(0,0,1).transformMat3(this.worldRotationMatrixMat3)}},{key:"identity",value:function(){this._position.setValues(0,0,0),this._rotation.identity(),this._scale.setValues(1,1,1)}},{key:"addChild",value:function(e){this._children.indexOf(e)<0&&(this._children.push(e),e.parent=this)}},{key:"removeChild",value:function(e){var t=this._children.indexOf(e);t>-1&&(this._children.splice(t,1),e.parent=null)}},{key:"getChildrenRecursive",value:function(){var e=An(this._children);return this._children.forEach((function(t){return e.push.apply(e,An(t.getChildrenRecursive()))})),e}},{key:"setDirty",value:function(){this._dirty||(this._dirty=!0,this.signalDirtyDown())}},{key:"clone",value:function(){return(new e).copy(this)}},{key:"copy",value:function(e){return this._scale.copy(e._scale),this._rotation.copy(e._rotation),this._position.copy(e._position),this.parent=e._parent,this._dirty=!0,this}},{key:"lookAt",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:je.UP;this.position=e,this.lookAtFromCurrentPos(t,n)}},{key:"lookAtFromCurrentPos",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:je.UP;this._rotation=_n.lookAt(this._position,e,t),this.setDirty()}},{key:"setPositionRotationScale",value:function(e,t,n){this._position.copy(e),this._rotation.copy(t),this._scale.copy(n),this.setDirty()}},{key:"setPositionValues",value:function(e,t,n){this._position.setValues(e,t,n
2),this.setDirty()}},{key:"setScaleValues",value:function(e,t,n){this._scale.setValues(e,t,n),this.setDirty()}},{key:"translateX",value:function(e){this._position.x+=e,this.setDirty()}},{key:"translateY",value:function(e){this._position.y+=e,this.setDirty()}},{key:"translateZ",value:function(e){this._position.z+=e,this.setDirty()}},{key:"translate",value:function(e){this._position.add(e),this.setDirty()}},{key:"translateValues",value:function(e,t,n){this._position.x+=e,this._position.y+=t,this._position.z+=n,this.setDirty()}},{key:"rotateEulerValues",value:function(e,t,n){return this._rotation.rotateEulerValues(e,t,n),this.setDirty(),this._rotation}},{key:"rotateEuler",value:function(e){return this.rotateEulerValues(e.x,e.y,e.z)}},{key:"setEulerValues",value:function(e,t,n){return this._rotation.identity(),this.rotateEulerValues(e,t,n)}},{key:"rotateAxisAngle",value:function(e,t){return this._rotation.rotateAxisAngle(e,t),this.setDirty(),this._rotation}},{key:"rotateX",value:function(e){this._rotation.rotateX(e),this.setDirty()}},{key:"rotateY",value:function(e){this._rotation.rotateY(e),this.setDirty()}},{key:"rotateZ",value:function(e){this._rotation.rotateZ(e),this.setDirty()}},{key:"setDirection",value:function(e,t){var n=je.cross(t,e);n.normalize();var r=je.cross(e,n);r.normalize(),this.rotationMatrixMat3=new mn(n.x,n.y,n.z,r.x,r.y,r.z,e.x,e.y,e.z)}},{key:"setParentDirty",value:function(){this.signalDirtyDown()}},{key:"updateMatrix",value:function(){return!(!this._dirty&&!this._signalDirtyDown||(this._dirty&&jn.fromRotationTranslationScale(this._rotation,this._position,this._scale,this._localMatrix),this._parent?jn.multiply(this._parent.worldMatrix,this._localMatrix,this._matrix):this._dirty&&jn.copy(this._localMatrix,this._matrix),this._dirty=!1,this._signalDirtyDown=!1,0))}},{key:"signalDirtyDown",value:function(){this._signalDirtyDown||(this._signalDirtyDown=!0,this._children.forEach((function(e){return e.setParentDirty()})))}}],r=[{key:"getEulerYXZ",value:function(e){var t,n,r,o=e.m;return o[7]<-.9999?(t=Math.PI/2,n=Math.atan2(o[3],o[0]),r=0):o[7]>.9999?(t=-Math.PI/2,n=-Math.atan2(o[3],o[0]),r=0):(t=Math.asin(-o[7]),n=Math.atan2(o[6],o[8]),r=Math.atan2(o[1],o[4])),new je(t,n,r)}}],n&&zn(t.prototype,n),r&&zn(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,n,r}();function Nn(e){return Nn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Nn(e)}function Bn(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Un(r.key),r)}}function Un(e){var t=function(e,t){if("object"!=Nn(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Nn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Nn(t)?t:t+""}function In(e,t,n){return t=Hn(t),function(e,t){if(t&&("object"==Nn(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Wn()?Reflect.construct(t,n||[],Hn(e).constructor):t.apply(e,n))}function Wn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Wn=function(){return!!e})()}function Hn(e){return Hn=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Hn(e)}function Gn(e,t){return Gn=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Gn(e,t)}var qn=function(e){function t(e,n,r){var o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),o=In(this,t,[e,r,new Zt(e)]),n.add(o),o}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Gn(e,t)}(t,e),n=t,(r=[{key:"load",value:function(e){this.shader.shaderDefines=this.getShaderDefines(),this.shader.load(this.name,(function(){e()}))}}])&&Bn(n.prototype,r),o&&Bn(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(te);function Xn(e){return function(e){if(Array.isArray(e))return Yn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Yn(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Yn(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Yn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Kn(e){var t={};t[6407]={f:P,b:[3,6,6,12,2],t:[L,q,m,v,33635],u:!0},t[6408]={f:T,b:[4,8,8,16,2,2],t:[L,q,m,v,32819,32820],u:!0},t[6410]={f:_,b:[2,4,4,8],t:[L,q,m,v],u:!0},t[6409]={f:6409,b:[1,2,2,4],t:[L,q,m,v],u:!0},t[6406]={f:6406,b:[1,2,2,4],t:[L,q,m,v],u:!0},t[6402]={f:d,b:[2,4],t:[C,z],u:!0},t[K]={f:F,b:[1],t:[L]},t[33325]={f:F,b:[2,4],t:[q,v]},t[33326]={f:F,b:[4],t:[v]},t[33330]={f:W,b:[1],t:[L]},t[33332]={f:W,b:[2],t:[z]},t[33334]={f:W,b:[4],t:[C]},t[33323]={f:X,b:[2],t:[L]},t[33327]={f:X,b:[4,8],t:[q,v]},t[33328]={f:X,b:[8],t:[v]},t[33336]={f:Y,b:[2],t:[L]},t[33338]={f:Y,b:[4],t:[z]},t[33340]={f:Y,b:[8],t:[C]},t[32849]={f:P,b:[3],t:[L]},t[35905]={f:P,b:[3],t:[L]},t[36194]={f:P,b:[3,2],t:[L,33635]},t[35898]={f:P,b:[12,6,4],t:[v,q,35899]},t[35901]={f:P,b:[12,6,4],t:[v,q,35902]},t[34843]={f:P,b:[6,12],t:[q,v]},t[34837]={f:P,b:[12],t:[v]},t[36221]={f:H,b:[3],t:[L]},t[36215]={f:H,b:[6],t:[z]},t[36209]={f:H,b:[12],t:[C]},t[32856]={f:T,b:[4],t:[L]},t[35907]={f:T,b:[4],t:[L]},t[32855]={f:T,b:[4,2,4],t:[L,32820,33640]},t[32857]={f:T,b:[4],t:[33640]},t[32854]={f:T,b:[4,2],t:[L,32819]},t[34842]={f:T,b:[8,16],t:[q,v]},t[34836]={f:T,b:[16],t:[v]},t[36220]={f:G,b:[4],t:[L]},t[36214]={f:G,b:[8],t:[z]},t[36208]={f:G,b:[16],t:[C]},t[33189]={f:d,b:[2,4],t:[z,C]},t[33190]={f:d,b:[4],t:[C]},t[36012]={f:d,b:[4],t:[v]},t[35056]={f:34041,b:[4],t:[34042]},t[36013]={f:34041,b:[4],t:[36269]};var n=t[e];return n||l.error("Texture: unknown internal format: ".concat(e)),{textureFormat:n.f,type:Xn(n.t),bytesPerElement:Xn(n.b),unsizedFormat:!!n.u}}function Zn(e){var t=Kn(e);return{format:null==t?void 0:t.textureFormat,type:null==t?void 0:t.type[0]}}function Jn(e){return Jn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Jn(e)}function $n(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Qn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};
2t%2?$n(Object(n),!0).forEach((function(t){tr(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$n(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function er(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,nr(r.key),r)}}function tr(e,t,n){return(t=nr(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function nr(e){var t=function(e,t){if("object"!=Jn(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Jn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Jn(t)?t:t+""}var rr={clampToEdge:!0,useMips:!1,linear:!0,internalFormat:R,flipY:!0,premultiplyAlpha:!1,colorSpaceConversion:!1,unpackAlignment:4,magFilter:g,minFilter:g,wrapS:f,wrapT:f,wrapR:f,anisotropy:-1},or=function(){return e=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:O,r=arguments.length>2?arguments[2]:void 0;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),tr(this,"name",""),tr(this,"textureGL",void 0),tr(this,"target",void 0),tr(this,"renderer",void 0),tr(this,"autoGenerateMips",!0),tr(this,"dirty",!0),tr(this,"mipsDirty",!1),tr(this,"_options",void 0),this.renderer=t,this.target=n,this.textureGL=this.renderer.context.createTexture(),this._options=this.setOptions(r)},t=[{key:"format",get:function(){return this.options.format||Zn(this.options.internalFormat).format}},{key:"type",get:function(){return this.renderer,this.options.type||Zn(this.options.internalFormat).type||L}},{key:"internalFormat",get:function(){return this.options.internalFormat}},{key:"unpackAlignment",get:function(){return this.options.unpackAlignment}},{key:"useMips",get:function(){return!!this.options.useMips||this.options.minFilter===w||9986===this.options.minFilter},set:function(e){this.options.useMips=e,this.dirty=!0}},{key:"minFilterLinear",set:function(e){this.options.minFilter=e?g:x,this.dirty=!0}},{key:"magFilterLinear",set:function(e){this.options.magFilter=e?g:x,this.dirty=!0}},{key:"wrapS",set:function(e){this.options.wrapS=e,this.dirty=!0}},{key:"wrapT",set:function(e){this.options.wrapT=e,this.dirty=!0}},{key:"clampR",set:function(e){this.options.wrapR=e,this.dirty=!0}},{key:"anisotropy",set:function(e){this.filterLinear=!0,this.options.anisotropy=e,this.dirty=!0}},{key:"filterNearest",set:function(e){this.filterLinear=!e}},{key:"filterLinear",set:function(e){this.options.minFilter=e?this.useMips?w:g:x,this.options.magFilter=e?g:x,this.dirty=!0}},{key:"clampToEdge",set:function(e){this.options.wrapS=e?f:k,this.options.wrapT=e?f:k,this.target===V&&(this.options.wrapR=e?f:k),this.dirty=!0}},{key:"options",get:function(){return this._options}},{key:"bindToSlot",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.renderer.renderState.bindTextureToSlot(this,e),(this.dirty||this.mipsDirty)&&(this.renderer.renderState.activateSlot(e),this.useMips&&this.mipsDirty&&this.autoGenerateMips&&this.generateMips(),this.dirty&&this.updateIfDirty(),this.mipsDirty=!1,this.dirty=!1)}},{key:"bind",value:function(){this.renderer.renderState.activateSlot(this.renderer.maxParams.MAX_TEXTURE_IMAGE_UNITS-1),this.renderer.context.bindTexture(this.target,this.textureGL),this.dirty&&(this.updateIfDirty(),this.dirty=!1)}},{key:"setSize",value:function(e,t,n){}},{key:"destruct",value:function(){this.textureGL&&this.renderer.context.deleteTexture(this.textureGL)}},{key:"setOptions",value:function(e){return this._options=Qn(Qn(Qn({},rr),this._options||{}),e),void 0!==e.useMips&&(this.useMips=e.useMips),void 0!==e.clampToEdge&&(this.clampToEdge=e.clampToEdge),void 0!==e.linear&&(this.filterLinear=e.linear),this.dirty=!0,this._options}},{key:"generateMipsIfNeeded",value:function(){this.useMips&&this.autoGenerateMips&&this.mipsDirty&&this.generateMips()}},{key:"setPixelStoreOptions",value:function(){var e=this.renderer.context;e.pixelStorei(37440,this.options.flipY?1:0),e.pixelStorei(37443,this.options.colorSpaceConversion?1:0),e.pixelStorei(37441,this.options.premultiplyAlpha?1:0),e.pixelStorei(3317,this.unpackAlignment)}},{key:"setDefaultPixelStoreOptions",value:function(){var e=this.renderer.context;e.pixelStorei(37440,0),e.pixelStorei(37443,0),e.pixelStorei(37441,0),e.pixelStorei(3317,4)}},{key:"updateTexParameters",value:function(){var e=this.renderer.context;e.texParameteri(this.target,10240,this.options.magFilter),e.texParameteri(this.target,10241,this.useMips&&!this.mipsDirty?w:this.options.minFilter),e.texParameteri(this.target,10242,this.options.wrapS),e.texParameteri(this.target,10243,this.options.wrapT),this.target===V&&e.texParameteri(this.target,32882,this.options.wrapR),this.options.anisotropy>1&&this.renderer.extensions.filter_anisotropic&&(this.options.anisotropy=Math.min(this.renderer.extensions.maxAnisotropy,this.options.anisotropy),e.texParameterf(this.target,this.renderer.extensions.filter_anisotropic.TEXTURE_MAX_ANISOTROPY_EXT,this.options.anisotropy))}},{key:"updateIfDirty",value:function(){this.updateTexParameters()}},{key:"generateMips",value:function(){this.renderer.context.generateMipmap(this.target),this.mipsDirty=!1}}],t&&er(e.prototype,t),n&&er(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function ir(e,t){var n=document.createElement("canvas");return n.width=e,n.height=t,n}function ar(e){return e instanceof ImageBitmap?new be(e.width,e.height):e instanceof HTMLVideoElement?new be(e.videoWidth,e.videoHeight):e instanceof HTMLImageElement?new be(e.naturalWi
vendor: 4,212 bytes, line 2
2dth,e.naturalHeight):new be(e.width,e.height)}function sr(e){return sr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},sr(e)}function lr(){lr=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,o=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function c(e,t,n,r){var i=t&&t.prototype instanceof y?t:y,a=Object.create(i.prototype),s=new j(r||[]);return o(a,"_invoke",{value:T(e,n,s)}),a}function f(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=c;var h="suspendedStart",d="suspendedYield",p="executing",v="completed",m={};function y(){}function b(){}function g(){}var w={};u(w,a,(function(){return this}));var _=Object.getPrototypeOf,x=_&&_(_(D([])));x&&x!==n&&r.call(x,a)&&(w=x);var S=g.prototype=y.prototype=Object.create(w);function k(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function P(e,t){function n(o,i,a,s){var l=f(e[o],e,i);if("throw"!==l.type){var u=l.arg,c=u.value;return c&&"object"==sr(c)&&r.call(c,"__await")?t.resolve(c.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):t.resolve(c).then((function(e){u.value=e,a(u)}),(function(e){return n("throw",e,a,s)}))}s(l.arg)}var i;o(this,"_invoke",{value:function(e,r){function o(){return new t((function(t,o){n(e,r,t,o)}))}return i=i?i.then(o,o):o()}})}function T(t,n,r){var o=h;return function(i,a){if(o===p)throw Error("Generator is already running");if(o===v){if("throw"===i)throw a;return{value:e,done:!0}}for(r.method=i,r.arg=a;;){var s=r.delegate;if(s){var l=M(s,r);if(l){if(l===m)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(o===h)throw o=v,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);o=p;var u=f(t,n,r);if("normal"===u.type){if(o=r.done?v:d,u.arg===m)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(o=v,r.method="throw",r.arg=u.arg)}}}function M(t,n){var r=n.method,o=t.iterator[r];if(o===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,M(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),m;var i=f(o,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,m;var a=i.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,m):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function E(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function O(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function j(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(E,this),this.reset(!0)}function D(t){if(t||""===t){var n=t[a];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function n(){for(;++o<t.length;)if(r.call(t,o))return n.value=t[o],n.done=!1,n;return n.value=e,n.done=!0,n};return i.next=i}}throw new TypeError(sr(t)+" is not iterable")}return b.prototype=g,o(S,"constructor",{value:g,configurable:!0}),o(g,"constructor",{value:b,configurable:!0}),b.displayName=u(g,l,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===b||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,g):(e.__proto__=g,u(e,l,"GeneratorFunction")),e.prototype=Object.create(S),e},t.awrap=function(e){return{__await:e}},k(P.prototype),u(P.prototype,s,(function(){return this})),t.AsyncIterator=P,t.async=function(e,n,r,o,i){void 0===i&&(i=Prom
2ise);var a=new P(c(e,n,r,o),i);return t.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},k(S),u(S,l,"Generator"),u(S,a,(function(){return this})),u(S,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=D,j.prototype={constructor:j,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(O),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function o(r,o){return s.type="throw",s.arg=t,n.next=r,o&&(n.method="next",n.arg=e),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var l=r.call(a,"catchLoc"),u=r.call(a,"finallyLoc");if(l&&u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,m):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),O(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;O(n)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:D(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),m}},t}function ur(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function cr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function fr(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,br(r.key),r)}}function hr(e,t,n){return t=vr(t),function(e,t){if(t&&("object"==sr(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,dr()?Reflect.construct(t,n||[],vr(e).constructor):t.apply(e,n))}function dr(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(dr=function(){return!!e})()}function pr(){return pr="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=vr(e)););return e}(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},pr.apply(null,arguments)}function vr(e){return vr=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},vr(e)}function mr(e,t){return mr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},mr(e,t)}function yr(e,t,n){return(t=br(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function br(e){var t=function(e,t){if("object"!=sr(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=sr(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==sr(t)?t:t+""}function gr(e){var t,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.width,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.height,i=(t=e.internalFormat,null===(n=Kn(t))||void 0===n?void 0:n.bytesPerElement[0]);switch(e.type){case q:case m:return new Uint16Array(r*o*i/2);case v:return new Float32Array(r*o*i/4);case L:return new Uint8Array(r*o*i);default:throw"Texture: getData unsupported type: ".concat(e.type)}}var wr=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),yr(n=hr(this,t,[e,O,r]),"_size",new be(-1,-1)),n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&mr(e,t)}(t,e),n=t,r=[{key:"size",get:function(){return this._size.clone()},set:function(e){this.setSize(e.x,e.y)}},{key:"width",get:function(){return this._size.x}},{key:"height",get:function(){return this._size.y}},{key:"aspectRatio",get:function(){return this.width/this.height}},{key:"setData",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=this.options.flipY;this.setOptions(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};
2t%2?cr(Object(n),!0).forEach((function(t){yr(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):cr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({flipY:!1},r));var i=this.renderer.context;this.bind(),this.setPixelStoreOptions(),i.texImage2D(O,0,this.internalFormat,t,n,0,this.format,this.type,e),this._size.setValues(t,n),this.mipsDirty=!0,this.generateMipsIfNeeded(),void 0===r.flipY&&this.setOptions({flipY:o})}},{key:"readPixels",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.width,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:this.height,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,a=this.renderer.context,s=i||this.renderer.getFramebuffer(),l=o||gr(this,n,r);return a.bindFramebuffer(y,s),a.framebufferTexture2D(y,h,O,this.textureGL,0),a.readPixels(e,t,n,r,this.format,this.type,l),a.bindFramebuffer(y,null),i||this.renderer.releaseFramebuffer(s),l}},{key:"readPixelsAsync",value:(i=lr().mark((function e(){var t,n,r,o,i,a,s,l,u,c,f,h,d=this,p=arguments;return lr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(f=function(e,t,n,r){return new Promise((function(o,i){!function a(){var s=e.clientWaitSync(t,n,0);37149!==s?37147!==s?o():setTimeout(a,r):i()}()}))},t=p.length>0&&void 0!==p[0]?p[0]:0,n=p.length>1&&void 0!==p[1]?p[1]:0,r=p.length>2&&void 0!==p[2]?p[2]:this.width,o=p.length>3&&void 0!==p[3]?p[3]:this.height,i=p.length>4&&void 0!==p[4]?p[4]:void 0,a=p.length>5&&void 0!==p[5]?p[5]:null,s=this.renderer.context,l=a||this.renderer.getFramebuffer(),u=s.createBuffer(),c=i||gr(this,r,o),s.bindFramebuffer(36008,l),s.bindBuffer(N,u),s.bufferData(N,c.byteLength,35041),s.readPixels(t,n,r,o,this.format,this.type,0),h=s.fenceSync(37143,0)){e.next=19;break}return a||this.renderer.releaseFramebuffer(l),e.abrupt("return",null);case 19:return s.flush(),e.abrupt("return",f(s,h,0,10).then((function(){return s.deleteSync(h),s.bindBuffer(N,u),s.getBufferSubData(N,0,c),s.bindBuffer(N,null),s.deleteBuffer(u),a||d.renderer.releaseFramebuffer(l),c})));case 21:case"end":return e.stop()}}),e,this)})),a=function(){var e=this,t=arguments;return new Promise((function(n,r){var o=i.apply(e,t);function a(e){ur(o,n,r,a,s,"next",e)}function s(e){ur(o,n,r,a,s,"throw",e)}a(void 0)}))},function(){return a.apply(this,arguments)})},{key:"setImage",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.setOptions(t);var n=this.renderer.context;this.bind(),this.setPixelStoreOptions(),n.texImage2D(O,0,this.internalFormat,this.format,this.type,e),this._size.copy(ar(e)),e instanceof ImageBitmap&&e.close(),this.mipsDirty=!0,this.generateMipsIfNeeded()}},{key:"setSize",value:function(e,t){e===this.width&&t===this.height||(this._size.setValues(e,t),this.bind(),this.renderer.context.texImage2D(O,0,this.internalFormat,this.width,this.height,0,this.format,this.type,null),l.log("expensive operation: resize: ",e,t,"format: ",this.format),this.mipsDirty=!0)}},{key:"generateMipsIfNeeded",value:function(){var e,n,r,o,i;this.useMips&&(e=t,n="generateMipsIfNeeded",r=this,i=pr(vr(1&(o=3)?e.prototype:e),n,r),2&o&&"function"==typeof i?function(e){return i.apply(r,e)}:i)([])}}],r&&fr(n.prototype,r),o&&fr(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o,i,a}(or);var _r={},xr={};function Sr(e){return _r[e]}function kr(e,t){xr[e]||(xr[e]=[]),xr[e].push(t)}function Pr(e,t){var n=xr[e];n&&n.forEach((function(e){return e(t)})),xr[e]=[],_r[e]=!1}function Tr(e,t,n){kr(e,t),Sr(e)||function(e,t){return new Promise((function(n,r){var o=new XMLHttpRequest;o.open("GET",e,!0),o.responseType="arraybuffer";var i=0;o.onprogress=function(e){if(e.lengthComputable&&t){var n=e.loaded/e.total;t(n)}else if(t){i++;var r=1-Math.pow(.85,i);t(r)}},o.onload=function(){200===o.status?(t&&t(1),n(o.response)):r(new Error("Error ".concat(o.status,": ").concat(o.statusText)))},o.onerror=function(){r(new Error("Request failed"))},o.send()}))}(e,n).then((function(t){Pr(e,t)})).catch((function(){!function(e){var t=xr[e];t&&t.forEach((function(e){return e(null)})),xr[e]=null,_r[e]=!1}(e)}))}function Mr(e,t,n,r){"string"==typeof e?(r||Or.source).fetch(e,(function(e){t(JSON.parse((new TextDecoder).decode(e)))}),n):"function"==typeof e.then?e.then((function(e){null!=e&&e.default?"string"==typeof e.default?(r||Or.source).fetch(e.default,(function(e){t(JSON.parse((new TextDecoder).decode(e)))}),n):t(e.default):t(e)})):t(e)}function Er(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:rr,r=arguments.length>3?arguments[3]:void 0,o=e.length,i=[];e.forEach((function(e,a){(r||Or.source).loadImage(e,function(e){return function(n){o--,i[e]=n,0===o&&t(i)}}(a),n)}))}var Or={setTextureDataAtFirstUse:!1,source:{fetch:Tr,loadImage:function(e,t){if("string"!=typeof e&&(e=e.default),kr(e,t),Sr(e))return Sr(e);var n=new Image;return function(e){_r[e]=!0}(e),n.crossOrigin="Anonymous",n.decoding="async",n.src=e,n.decode().then((function(){Pr(e,n)})).catch((function(t){l.log("TextureLoader: could not load image",e,t),Pr(e,n)})),n}}};function jr(e){return jr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},jr(e)}function Dr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ar(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};
2t%2?Dr(Object(n),!0).forEach((function(t){Nr(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Dr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Lr(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Br(r.key),r)}}function Cr(e,t,n){return t=Rr(t),function(e,t){if(t&&("object"==jr(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,zr()?Reflect.construct(t,n||[],Rr(e).constructor):t.apply(e,n))}function zr(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(zr=function(){return!!e})()}function Fr(){return Fr="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=Rr(e)););return e}(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},Fr.apply(null,arguments)}function Rr(e){return Rr=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Rr(e)}function Vr(e,t){return Vr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Vr(e,t)}function Nr(e,t,n){return(t=Br(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Br(e){var t=function(e,t){if("object"!=jr(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=jr(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");
2return"symbol"==jr(t)?t:t+""}var Ur=function(e){function t(e,n,r){var o,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=arguments.length>4?arguments[4]:void 0;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Nr(o=Cr(this,t,[e,Ar({linear:!0,useMips:!1,clampToEdge:!1,flipY:!0},i)]),"loaded",!1),Nr(o,"path",void 0),Nr(o,"data",void 0),Nr(o,"loadSource",void 0),o.name=r,o.path=r,o.loadSource=a,n.add(o),o}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Vr(e,t)}(t,e),n=t,r=[{key:"updateIfDirty",value:function(){if(this.data){var e=this.data;this.data=void 0,this.setImage(e)}var n,r,o,i,a;(n=t,r="updateIfDirty",o=this,a=Fr(Rr(1&(i=3)?n.prototype:n),r,o),2&i&&"function"==typeof a?function(e){return a.apply(o,e)}:a)([])}},{key:"load",value:function(e){var t=this;(this.loadSource||Or.source).loadImage(this.path,(function(n){Or.setTextureDataAtFirstUse?(t.data=n,t.dirty=!0):t.setImage(n),t.loaded=!0,e()}),this.options)}}],r&&Lr(n.prototype,r),o&&Lr(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(wr);function Ir(){return"undefined"!=typeof window&&("ontouchstart"in window||navigator.maxTouchPoints>1)||"undefined"!=typeof navigator&&/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}function Wr(e){return Wr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Wr(e)}function Hr(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Gr(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Gr(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function Gr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function qr(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Qr(r.key),r)}}function Xr(e,t,n){return t=Zr(t),function(e,t){if(t&&("object"==Wr(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Yr()?Reflect.construct(t,n||[],Zr(e).constructor):t.apply(e,n))}function Yr(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Yr=function(){return!!e})()}function Kr(){return Kr="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=Zr(e)););return e}(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},Kr.apply(null,arguments)}function Zr(e){return Zr=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Zr(e)}function Jr(e,t){return Jr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Jr(e,t)}function $r(e,t,n){return(t=Qr(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Qr(e){var t=function(e,t){if("object"!=Wr(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Wr(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Wr(t)?t:t+""}var eo=function(e){function t(e,n,r){var o,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,a=arguments.length>4?arguments[4]:void 0,s=arguments.length>5?arguments[5]:void 0,u=arguments.length>6&&void 0!==arguments[6]?arguments[6]:"unity";!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),$r(o=Xr(this,t,[e,n,u]),"additive",!1),$r(o,"emissive",!1),$r(o,"albedoMap",null),$r(o,"albedoValue",new je(1,1,1)),$r(o,"roughnessMap",null),$r(o,"roughnessValue",-1),$r(o,"metallicMap",null),$r(o,"metallicValue",-1),$r(o,"emissiveMap",null),$r(o,"emissiveValue",new je(0,0,0)),$r(o,"isEmissive",!1),$r(o,"normalMap",null),$r(o,"aoMap",null),$r(o,"alphaValue",1),$r(o,"alphaMap",null),$r(o,"glass",!1),$r(o,"transparent",!1),$r(o,"useUV1ForAOMap",!1),$r(o,"unlit",!1),$r(o,"isWheel",!1),$r(o,"isTrack",!1),$r(o,"isFloor",!1),$r(o,"isAfterBurner",!1),$r(o,"isPilot",!1),o.name=r.name,l.ENABLED&&o.addShaderDefines("DEBUG_ENABLED"),o.isWheel=o.name.includes("Wheel")||o.name.includes("wheel")||o.name.includes("Sprocket")||o.name.includes("Tread1")||o.name.includes("Roller1"),o.name.includes("Pilot")&&(o.addShaderDefines("PILOT"),o.isPilot=!0),o.name.includes("Afterburner")&&(o.addShaderDefines("AFTERBURNER"),o.isAfterBurner=!0),o.isWheel||o.isPilot||o.isAfterBurner||o.addShaderDefines("LIGHTMAP"),o.isWheel&&o.addShaderDefines("WHEEL"),o.name.includes("WireCutter")&&o.setCullingDisabled(),o.name.includes("White")&&(o.addShaderDefines("FLOOR"),o.setAlphaBlending(),o.isFloor=!0),o.name.includes("Transparent")&&(o.transparent=!0),o.name.includes("Glass")&&(o.transparent=!0,o.glass=!0),(
2o.name.includes("track")||o.name.includes("Track"))&&(o.addShaderDefines(["UV_Y_MOVE",".35"]),o.isTrack=!0),o.name.includes("Blade")&&(o.transparent=!0),Ir()&&o.addShaderDefines("MOBILE");var c,f=Hr(r.properties);try{for(f.s();!(c=f.n()).done;){var h=c.value;switch(h.name){case"_MainTex":o.addShaderDefines("USE_ALBEDO_MAP"),o.albedoMap=o.getTexture(h.sValue,i,n,4,a,s);break;case"_Color":o.albedoValue=new Ge(h.vValue[0],h.vValue[1],h.vValue[2],1).gammaToLinearSpace.vector3,o.alphaValue=h.vValue[3];break;case"_Alpha":o.transparent=!0,o.alphaValue=h.vValue[0];break;case"_AlphaMap":o.addShaderDefines("USE_ALPHA_MAP"),o.transparent=!0,o.alphaMap=o.getTexture(h.sValue,i,n,1,a,s),o.setCullingDisabled();break;case"_Glossiness":o.addShaderDefines("USE_ROUGHNESS"),o.roughnessValue=1-h.vValue[0];break;case"_Roughness":o.addShaderDefines("USE_ROUGHNESS"),o.roughnessValue=h.vValue[0];break;case"_Metallic":o.addShaderDefines("USE_METALLIC"),o.metallicValue=h.vValue[0];break;case"_NormalMap":case"_BumpMap":o.addShaderDefines("USE_NORMAL_MAP"),o.normalMap=o.getTexture(h.sValue,i,n,3,a,s);break;case"_OcclusionMap":o.addShaderDefines("USE_AO_MAP"),o.aoMap=o.getTexture(h.sValue,i,n,1,a,s);break;case"_EmissiveMap":o.isEmissive=!0,o.addShaderDefines("USE_EMISSIVE"),o.addShaderDefines("USE_EMISSIVE_MAP"),o.emissiveMap=o.getTexture(h.sValue,i,n,3,a);break;case"_EmissionColor":o.emissiveValue=new Ge(h.vValue[0],h.vValue[1],h.vValue[2],1).gammaToLinearSpace.vector3,o.emissiveValue.length()>0&&(o.isEmissive=!0,o.addShaderDefines("USE_EMISSIVE"),o.addShaderDefines("USE_EMISSIVE_VALUE"));break;case"_UseUV1ForAO":h.vValue[0]>.5&&o.addShaderDefines("USE_UV1_FOR_AO_MAP"),o.useUV1ForAOMap=h.vValue[0]>.5;break;case"_IsGlass":o.addShaderDefines("GLASS"),o.glass=h.vValue[0]>.5;break;case"_Unlit":o.addShaderDefines("UNLIT"),o.unlit=!0;break;case"_Additive":o.additive=!0}}}catch(e){f.e(e)}finally{f.f()}return(o.transparent||o.glass)&&(o.addShaderDefines("TRANSPARENT"),o.setPreMultipliedAlphaBlending(),o.name.includes("Blade")&&(o.depthTest=!0,o.alphaValue=.15)),o.glass&&o.addShaderDefines("GLASS"),o.name=r.name,o}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Jr(e,t)}(t,e),n=t,r=[{key:"init",value:function(){this.setVector3("_Albedo",this.albedoValue),this.setFloat("_AlphaValue",this.alphaValue),this.albedoMap&&this.setTexture("_AlbedoMap",this.albedoMap),this.alphaMap&&this.setTexture("_AlphaMap",this.alphaMap),this.unlit||(this.roughnessMap?this.setTexture("_RoughnessMap",this.roughnessMap):this.setFloat("_Roughness",this.roughnessValue),this.metallicMap?this.setTexture("_MetallicMap",this.metallicMap):this.setFloat("_Metallic",this.metallicValue),this.isEmissive&&(this.emissiveMap?(this.setTexture("_EmissiveMap",this.emissiveMap),this.setFloat("_EmissiveMultiplier",1)):this.setVector3("_Emissive",this.emissiveValue)),this.normalMap&&this.setTexture("_NormalMap",this.normalMap),this.aoMap&&this.setTexture("_AOMap",this.aoMap))}},{key:"setPbrEnvironment",value:function(e){this.setTexture("_brdfLUT",e.brdfLutTexture),this.setTexture("_IrradianceMap",e.diffuseCube),this.setTexture("_PrefilterMap",e.specularCube),this.setFloat("_MaxLod",e.mipmapWithMaxRoughness)}},{key:"destruct",value:function(){var e,n,r,o,i;this.albedoMap&&this.albedoMap.destruct(),this.alphaMap&&this.alphaMap.destruct(),this.roughnessMap&&this.roughnessMap.destruct(),this.metallicMap&&this.metallicMap.destruct(),this.emissiveMap&&this.emissiveMap.destruct(),this.normalMap&&this.normalMap.destruct(),this.aoMap&&this.aoMap.destruct(),(e=t,n="destruct",r=this,i=Kr(Zr(1&(o=3)?e.prototype:e),n,r),2&o&&"function"==typeof i?function(e){return i.apply(r,e)}:i)([])}},{key:"getFormat",value:function(e){return 1==e?_:3==e?32849:R}},{key:"getTexture",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:3,o=arguments.length>4?arguments[4]:void 0,i=arguments.length>5?arguments[5]:void 0;return!o[e]&&t&&(o[e]=new Ur(this.renderer,n,t(e,4==r),{linear:!0,useMips:!0,clampToEdge:!1,flipY:!0,internalFormat:this.getFormat(r),anisotropy:16},i)),o[e]}}],r&&qr(n.prototype,r),o&&qr(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(qn);function to(e){return to="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},to(e)}function no(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,oo(r.key),r)}}function ro(e,t,n){return(t=oo(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function oo(e){var t=function(e,t){if("object"!=to(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=to(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==to(t)?t:t+""}var io,ao=function(){return e=function e(t,n,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),ro(this,"distToCamera",0),ro(this,"material",void 0),ro(this,"mesh",void 0),ro(this,"transform",void 0),ro(this,"customDraw",null),ro(this,"lightMapScaleOffset",new ze(1,1,0,0)),ro(this,"active",!0),ro(this,"isStatic",!0),this.transform=t,this.mesh=n,this.material=r},(t=[{key:"draw",value:function(e,t){if(this.active)if(this.customDraw)this.customDraw(this,e);else{var n=t||this.material;if(!n)return;n.setMatrix("_Model",this.transform.worldMatrix),t||n.setVector4("_LightmapScaleOffset",this.lightMapScaleOffset),this.mesh.renderer.draw(this.mesh,n)}}}])&&no(e.prototype,t),n&&no(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function so(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];
2if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return lo(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?lo(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function lo(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function uo(e){return uo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},uo(e)}function co(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function fo(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,vo(r.key),r)}}function ho(e,t,n){return t&&fo(e.prototype,t),n&&fo(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function po(e,t,n){return(t=vo(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function vo(e){var t=function(e,t){if("object"!=uo(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=uo(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==uo(t)?t:t+""}!function(e){e.PositionX="Position.x",e.PositionY="Position.y",e.PositionZ="Position.z",e.RotationX="Rotation.x",e.RotationY="Rotation.y",e.RotationZ="Rotation.z",e.RotationW="Rotation.w",e.ScaleX="Scale.x",e.ScaleY="Scale.y",e.ScaleZ="Scale.z"}(io||(io={}));var mo=function(){function e(t,n,r,o,i){co(this,e),po(this,"name",void 0),po(this,"transformId",void 0),po(this,"type",void 0),po(this,"times",void 0),po(this,"values",void 0),po(this,"duration",-1),po(this,"lastIndex",0),po(this,"lastTime",-10),po(this,"lastValue",0),this.name=t,this.transformId=n||0,this.type=r,this.times=o,this.values=i}return ho(e,[{key:"getIsEmpty",value:function(){var e=this.values.length;if(e<2)return!0;for(var t=1;t<e;++t)if(this.values[t-1]!=this.values[t])return!1;return!0}},{key:"evaluate",value:function(e){if(e===this.lastTime)return this.lastValue;if(0===this.values.length)return 0;if(1===this.values.length)return this.values[0];if(0===e||e<this.times[0])return this.values[0];var t=this.times.length-1;if(e>=this.times[t])return this.values[t];var n=e>=this.lastTime?this.lastIndex:0;this.lastTime=e;for(var r=n;r<t;r++){var o=this.times[r],i=this.times[r+1];if(e>=o&&e<=i){this.lastIndex=r;var a=(e-o)/(i-o);return this.lastValue=ge(this.values[r],this.values[r+1],a)}}return 0}},{key:"destruct",value:function(){}}],[{key:"parseJSON",value:function(t){return new e(t.name,t.transformId,t.type,t.times,t.values)}}])}(),yo=function(){return ho((function e(t,n){co(this,e),po(this,"transform",void 0),po(this,"p",void 0),po(this,"r",void 0),po(this,"s",void 0),po(this,"animatePosition",!1),po(this,"animateRotation",!1),po(this,"animateScale",!1),po(this,"tracks",void 0),this.transform=t;var r,o=so(n);try{for(o.s();!(r=o.n()).done;){var i=r.value;i.type!=io.PositionX&&i.type!=io.PositionY&&i.type!=io.PositionZ||(this.animatePosition=!0),i.type!=io.RotationX&&i.type!=io.RotationY&&i.type!=io.RotationZ&&i.type!=io.RotationW||(this.animateRotation=!0),i.type!=io.ScaleX&&i.type!=io.ScaleY&&i.type!=io.ScaleZ||(this.animateScale=!0)}}catch(e){o.e(e)}finally{o.f()}this.p=t.position,this.r=t.rotation,this.s=t.scale,this.tracks=n}),[{key:"update",value:function(e){var t,n=so(this.tracks);try{for(n.s();!(t=n.n()).done;){var r=t.value;switch(r.type){case io.PositionX:this.p.x=r.evaluate(e);break;case io.PositionY:this.p.y=r.evaluate(e);break;case io.PositionZ:this.p.z=r.evaluate(e);break;case io.RotationX:this.r.x=r.evaluate(e);break;case io.RotationY:this.r.y=r.evaluate(e);break;case io.RotationZ:this.r.z=r.evaluate(e);break;case io.RotationW:this.r.w=r.evaluate(e);break;case io.ScaleX:this.s.x=r.evaluate(e);break;case io.ScaleY:this.s.y=r.evaluate(e);break;case io.ScaleZ:this.s.z=r.evaluate(e)}}}catch(e){n.e(e)}finally{n.f()}this.animatePosition&&(this.transform.position=this.p),this.animateRotation&&(this.transform.rotation=this.r.normalize()),this.animateScale&&(this.transform.scale=this.s)}}])}();function bo(e){return bo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},bo(e)}function go(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];
2if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return wo(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?wo(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function wo(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function _o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,So(r.key),r)}}function xo(e,t,n){return(t=So(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function So(e){var t=function(e,t){if("object"!=bo(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=bo(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==bo(t)?t:t+""}var ko=function(){return e=function e(t,n,r,o){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:[],s=!(arguments.length>6&&void 0!==arguments[6])||arguments[6];if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),xo(this,"transform",void 0),xo(this,"id",0),xo(this,"clips",void 0),xo(this,"transformsTracks",[]),xo(this,"useTexture",void 0),xo(this,"boneMatrices",void 0),xo(this,"bones",[]),xo(this,"bindPoses",[]),xo(this,"boneTexture",void 0),xo(this,"tempMat4",new jn),this.id=n,this.transform=r,this.clips=o,this.bones=i,this.bindPoses=a,this.useTexture=t.maxParams.MAX_VERTEX_UNIFORM_VECTORS/4<this.bones.length+4,l.ENABLED&&l.log("Animator: useTexture",this.useTexture,"MAX_VERTEX_UNIFORM_VECTORS",t.maxParams.MAX_VERTEX_UNIFORM_VECTORS,"bones",this.bones.length),this.initBoneStorageData(t,this.bones.length),o.length>0){var u=r.getChildrenRecursive();u.push(r),this.transformsTracks=this.createTransformTracks(o[0].tracks,u,s),o.length>1&&l.warn("multiple clips currently not supported",o)}},t=[{key:"getTracksByName",value:function(e){return this.clips.flatMap((function(t){return t.getTracksByName(e)}))}},{key:"createTransformTracks",value:function(e,t){var n,r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],o={},i=[io.PositionX,io.PositionY,io.PositionZ,io.RotationX,io.RotationY,io.RotationZ,io.RotationW,io.ScaleX,io.ScaleY,io.ScaleZ],a=go(e);try{for(a.s();!(n=a.n()).done;){var s=n.value,l=r?s.name:s.transformId;i.includes(s.type)&&(o[l]||(o[l]=[]),o[l].push(s))}}catch(e){a.e(e)}finally{a.f()}var u,c=[],f=go(t);try{for(f.s();!(u=f.n()).done;){var h=u.value,d=r?h.name:h.id;o[d]&&c.push(new yo(h,o[d]))}}catch(e){f.e(e)}finally{f.f()}return c}},{key:"update",value:function(e){var t,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=go(this.clips);try{for(r.s();!(t=r.n()).done;){var o,i=t.value,a=n?we(e)*i.duration:e%i.duration,s=go(this.transformsTracks);try{for(s.s();!(o=s.n()).done;)o.value.update(a)}catch(e){s.e(e)}finally{s.f()}}}catch(e){r.e(e)}finally{r.f()}if(this.updateSkinningMatrices(),this.useTexture){var l=this.boneTexture;l.setData(this.boneMatrices,l.width,l.height)}}},{key:"updateBoneStorageData",value:function(e){if(this.useTexture){var t=this.boneTexture;t.setData(this.boneMatrices,t.width,t.height)}}},{key:"destruct",value:function(){var e,t=go(this.clips);try{for(t.s();!(e=t.n()).done;)e.value.destruct()}catch(e){t.e(e)}finally{t.f()}}},{key:"initBoneStorageData",value:function(e,t){this.boneMatrices=new Float32Array(16*t),this.useTexture&&(this.boneTexture=new wr(e,{internalFormat:34836,useMips:!1,linear:!1,clampToEdge:!0}),this.boneTexture.setData(this.boneMatrices,4*t,1))}},{key:"updateSkinningMatrices",value:function(){for(var e=0,t=0;t<this.bones.length;t++){jn.multiply(this.bones[t].worldMatrix,this.bindPoses[t],this.tempMat4);for(var n=0;n<16;n++)this.boneMatrices[e++]=this.tempMat4.m[n]}}}],t&&_o(e.prototype,t),n&&_o(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function Po(e){return Po="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Po(e)}function To(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];
2if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Mo(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Mo(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function Mo(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Eo(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Oo(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Ao(r.key),r)}}function jo(e,t,n){return t&&Oo(e.prototype,t),n&&Oo(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function Do(e,t,n){return(t=Ao(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ao(e){var t=function(e,t){if("object"!=Po(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Po(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Po(t)?t:t+""}var Lo=function(){function e(){Eo(this,e),Do(this,"time",0),Do(this,"name","unnamed event")}return jo(e,null,[{key:"parseJSON",value:function(t){var n=new e;return n.time=t.time,n.name=t.name,n}}])}(),Co=function(){function e(t,n,r,o,i){Eo(this,e),Do(this,"id",-1),Do(this,"duration",0),Do(this,"name","not set"),Do(this,"tracks",void 0),Do(this,"events",void 0),this.id=t,this.duration=r,this.name=n,this.tracks=o,this.events=i}return jo(e,[{key:"getTracksByName",value:function(e){return this.tracks.filter((function(t){return t.name===e}))}},{key:"destruct",value:function(){if(this.tracks){var e,t=To(this.tracks);try{for(t.s();!(e=t.n()).done;){e.value.destruct()}}catch(e){t.e(e)}finally{t.f()}}}}],[{key:"parseJSON",value:function(t){var n,r=[],o=To(t.tracks);try{for(o.s();!(n=o.n()).done;){var i=n.value;r.push(mo.parseJSON(i))}}catch(e){o.e(e)}finally{o.f()}var a=[];if(null!==t.events){var s,l=To(t.events);try{for(l.s();!(s=l.n()).done;){var u=s.value;a.push(Lo.parseJSON(u))}}catch(e){l.e(e)}finally{l.f()}}return r.forEach((function(e){return e.duration=t.duration})),new e(t.id,t.name,t.duration,r,a)}}])}();function zo(e){return zo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},zo(e)}function Fo(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Ro(r.key),r)}}function Ro(e){var t=function(e,t){if("object"!=zo(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=zo(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==zo(t)?t:t+""}function Vo(e,t,n){return t=Bo(t),function(e,t){if(t&&("object"==zo(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,No()?Reflect.construct(t,n||[],Bo(e).constructor):t.apply(e,n))}function No(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(No=function(){return!!e})()}
2function Bo(e){return Bo=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Bo(e)}function Uo(e,t){return Uo=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Uo(e,t)}var Io=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],a=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=Vo(this,t,[e])).createPlane(r,o,i,a),n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Uo(e,t)}(t,e),n=t,(r=[{key:"createPlane",value:function(e,t,n,r){for(var o=(e+1)*(t+1),i=new Float32Array(3*o),a=new Float32Array(2*o),s=new Float32Array(3*o),l=0,u=0,c=0,f=0;f<t+1;f++)for(var h=0;h<e+1;h++)i[l++]=h/e*2-1,n?(i[l++]=0,i[l++]=f/t*2-1):(i[l++]=f/t*2-1,i[l++]=0),a[u++]=h/e,a[u++]=f/t,n?(s[c++]=0,s[c++]=1,s[c++]=0):(s[c++]=0,s[c++]=0,s[c++]=1);this.setPositions(i,r),this.setUV0(a,r),this.setNormals(s,r);var d=new Uint32Array(e*t*2*3),p=e+1;l=0;for(var v=0;v<t;v++)for(var m=0;m<e;m++)d[l++]=v*p+m,d[l++]=(v+1)*p+m,d[l++]=v*p+m+1,d[l++]=(v+1)*p+m,d[l++]=(v+1)*p+m+1,d[l++]=v*p+m+1;o>=Math.pow(2,16)?this.setIndices32(d):this.setIndices(Uint16Array.from(d))}}])&&Fo(n.prototype,r),o&&Fo(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(de);function Wo(e){return Wo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Wo(e)}function Ho(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,qo(r.key),r)}}function Go(e,t,n){return(t=qo(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function qo(e){var t=function(e,t){if("object"!=Wo(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Wo(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Wo(t)?t:t+""}var Xo=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new je(1e38,1e38,1e38),n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new je(-1e38,-1e38,-1e38);!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Go(this,"min",void 0),Go(this,"max",void 0),this.min=t,this.max=n}return t=e,n=[{key:"area",get:function(){var e=je.sub(this.max,this.min);return 2*(e.x*e.y+e.y*e.z+e.z*e.x)}},{key:"center",get:function(){return je.add(this.max,this.min).multiplyScalar(.5)}},{key:"extents",get:function(){return je.sub(this.max,this.min).multiplyScalar(.5)}},{key:"setCenterExtents",value:function(e,t){this.min=je.sub(e,t),this.max=je.add(e,t)}},{key:"expandWithPoint",value:function(e){this.max.max(e),this.min.min(e)}},{key:"expandWithAABox",value:function(e){this.max.max(e.max),this.min.min(e.min)}},{key:"copy",value:function(e){this.min.copy(e.min),this.max.copy(e.max)}},{key:"transform",value:function(e){var t=this.min.clone().transform(e.worldMatrix),n=this.max.clone().transform(e.worldMatrix);return this.min.copy(je.min(t,n)),this.max.copy(je.max(t,n)),this}},{key:"clone",value:function(){return new e(this.min,this.max)}}],r=[{key:"merge",value:function(t){var n=new e;return t.forEach((function(e){n.expandWithAABox(e)})),n}}],n&&Ho(t.prototype,n),r&&Ho(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,n,r}();function Yo(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(e.getAttribute(se.TANGENT.name))return!1;var n=e.getUV0(),r=e.getNormals(),o=e.getPositions(),i=e.indices;if(null==n||null==r||null==o||null==i)return l.warn("could not add tangents to mesh, missing data"),!1;var a=o.length/3,s=new Float32Array(4*a),u=new Float32Array(3*a),c=new Float32Array(3*a),f=new Float32Array(3),h=new Float32Array(3);function d(e,t,r){if(null!=o&&null!=n){var i=o[3*t]-o[3*e],a=o[3*r]-o[3*e],s=o[3*t+1]-o[3*e+1],l=o[3*r+1]-o[3*e+1],d=o[3*t+2]-o[3*e+2],p=o[3*r+2]-o[3*e+2],v=n[2*t]-n[2*e],m=n[2*r]-n[2*e],y=n[2*t+1]-n[2*e+1],b=n[2*r+1]-n[2*e+1],g=1/(v*b-m*y);!isNaN(g)&&g&&isFinite(g)||(g=1),f[0]=(b*i-y*a)*g,f[1]=(b*s-y*l)*g,f[2]=(b*d-y*p)*g,h[0]=(v*a-m*i)*g,h[1]=(v*l-m*s)*g,h[2]=(v*p-m*d)*g;for(var w=0;w<3;++w)u[3*e+w]+=f[w],u[3*t+w]+=f[w],u[3*r+w]+=f[w],c[3*e+w]+=h[w],c[3*t+w]+=h[w],c[3*r+w]+=h[w]}}for(var p=i.length,v=0;v<p;v+=3)d(i[v],i[v+1],i[v+2]);var m,y,b=new je,g=new je,w=new je,_=new je,x=new je;function S(e){if(null!=r){g.setValues(r[3*e],r[3*e+1],r[3*e+2]),w.copy(g),_.setValues(u[3*e],u[3*e+1],u[3*e+2]),b.copy(_),isNaN(b.x)&&b.setValues(1,0,0);var t=je.dot(g,_);g.multiplyScalar(t);var n=(b=je.sub(b,g)).length();0==n?b.setValues(1,0,0):b.multiplyScalar(1/n),isNaN(b.x)&&b.setValues(1,0,0),x.setValues(c[3*e],c[3*e+1],c[3*e+2]),y=je.dot(je.cross(w,_),x),m=y<0?1:-1,s[4*e]=b.x,s[4*e+1]=b.y,s[4*e+2]=b.z,s[4*e+3]=m}}for(var k=0;k<p;k+=3)S(i[k+0]),S(i[k+1]),S(i[k+2]);return e.setAttribute(se.TANGENT.name,se.TANGENT.stride,s,t),!0}function Ko(e){var t=e.getPositions(),n=e.vertexCount,r=new Xo;if(!t)throw new ReferenceError("Cannot get mesh bounding box: positions not defined on mesh");for(var o=0;o<n;o++)r.expandWithPoint(new je(t[3*o],t[3*o+1],t[3*o+2]));return r}function Zo(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];
2if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Jo(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Jo(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function Jo(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function $o(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];for(e.length<1&&l.error("getMergedMesh: mesh count should be more than 0"),t.length<e.length&&l.error("getMergedMesh: transform count should be more than or equal to mesh count"),e.length>1&&t.length!=e.length&&l.error("getMergedMesh: transform count should be equal to mesh count when mesh count is > 1"),n&&n.length!=t.length&&l.error("getMergedMesh: lightMapOffsets count should be equal to transform count");e.length<t.length;)e.push(e[0]);var o,i=new de(e[0].renderer),a=[],s=0,u=[],c=[],f=t.length,h=Zo(e);try{for(h.s();!(o=h.n()).done;){var d=o.value;s+=d.vertexCount;var p,v=Zo(d.attributes);try{for(v.s();!(p=v.n()).done;){var m=p.value;u.indexOf(m.name)>=0||(u.push(m.name),c.push(m.stride))}}catch(e){v.e(e)}finally{v.f()}}}catch(e){h.e(e)}finally{h.f()}for(var y=[],b=0;b<u.length;b++)y[b]=0,a[b]=new Float32Array(s*c[b]);var g=function(e,t){if(e[0].indices){for(var n=e.length,r=0,o=0,i=0;i<n;i++){if(null===e[i].indices)throw new ReferenceError("Cannot get merged indices: expected indices to be defined on none or all meshes");r+=e[i].indices.length,o+=e[i].vertexCount}for(var a=o>=65536?new Uint32Array(r):new Uint16Array(r),s=0,l=0,u=0;u<n;u++){var c=e[u].indices,f=c.length;if(t[u].flipped>=0)for(var h=0;h<f;h++)a[s++]=c[h]+l;else for(var d=0;d<f/3;d++)a[s++]=c[3*d+0]+l,a[s++]=c[3*d+2]+l,a[s++]=c[3*d+1]+l;l+=e[u].vertexCount}return a}return null}(e,t);g instanceof Uint32Array?i.setIndices32(g):i.setIndices(g);for(var w=new je,_=0,x=0;x<f;x++){var S=e[x],k=n?n[x]:null,P=t[x].worldMatrix,T=jn.invert(t[x].worldMatrix);T=jn.transpose(T),jn.copy(t[x].worldRotationMatrixMat4,T);for(var M=S.vertexCount,E=0;E<u.length;E++){var O=S.getAttribute(u[E]),j=a[E],D=y[E],A=c[E];if(O){var L=O.data;if(O.name==se.POSITION.name||"aPos1"==O.name)for(var C=0,z=0;z<M;z++)w.x=L[C++],w.y=L[C++],w.z=L[C++],w.transform(P),j[D++]=w.x,j[D++]=w.y,j[D++]=w.z;else if(O.name==se.NORMAL.name)for(var F=0,R=0;R<M;R++)w.x=L[F++],w.y=L[F++],w.z=L[F++],w.transform(T),j[D++]=w.x,j[D++]=w.y,j[D++]=w.z;else j.set(L,D),D+=M*A;if(y[E]=D,null!=k&&O.name==se.TEXCOORD1.name)for(var V=0,N=0;N<M;N++)j[_++]=L[V++]*k.x+k.z,j[_++]=L[V++]*k.y+k.w}else D+=M*A}}for(var B=0;B<u.length;B++)i.setAttribute(u[B],c[B],a[B]);if(r){for(var U=0,I=new Float32Array(s),W=0;W<f;W++)for(var H=e[W].vertexCount,G=0;G<H;G++)I[U++]=W;i.setAttribute("aIndex",1,I)}return i}function Qo(e){return Qo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Qo(e)}function ei(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return ti(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ti(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function ti(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function ni(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,oi(r.key),r)}}function ri(e,t,n){return(t=oi(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function oi(e){var t=function(e,t){if("object"!=Qo(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Qo(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Qo(t)?t:t+""}var ii=function(){return e=function e(t,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,a=arguments.length>4?arguments[4]:void 0,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"unity";!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),ri(this,"rootTransform",new Vn),ri(this,"transforms",[]),ri(this,"transformsById",{}),ri(this,"transformsByName",{}),ri(this,"materials",[]),ri(this,"materialById",{}),ri(this,"meshes",[]),ri(this,"meshById",{}),ri(this,"models",[]),ri(this,"animators",{}),ri(this,"clips",{}),ri(this,"mouseables",[]),ri(this,"texturePool",{}),ri(this,"loaded",!1),ri(this,"shaderName",void 0),this.shaderName=s,n.addOnCompleteForResource(r,(function(){l.log("importLoader.data",r.data),o.parseJson(t,n,r.data,i,o.texturePool,a)}))},t=[{key:"init",value:function(){var e,t=ei(this.materials);try{for(t.s();!(e=t.n()).done;
2)e.value.init()}catch(e){t.e(e)}finally{t.f()}var n,r=ei(this.models);try{for(r.s();!(n=r.n()).done;){var o=n.value;if(!o.material){l.warn("model has no material",o);var i=this.models.indexOf(o);i>-1&&this.models.splice(i,1)}}}catch(e){r.e(e)}finally{r.f()}var a,s=ei(this.meshes);try{for(s.s();!(a=s.n()).done;){var u=a.value;if(u.hasAttribute("aTangent")||Yo(u),!u.hasAttribute("aUV1")){var c=u.getUV0();c&&u.setUV1(c)}}}catch(e){s.e(e)}finally{s.f()}this.mergeMeshes(),this.loaded=!0}},{key:"mergeMeshes",value:function(){l.ENABLED&&l.log("mergeMeshes: before",this.models.length);var e={},t=this.transformsByName.body;t||(t=this.transformsByName.IdleMovement);var n,r=ei(this.models);try{for(r.s();!(n=r.n()).done;){var o=n.value;o.isStatic&&(o.material.isWheel||o.material.isFloor||(e[o.material.name]||(e[o.material.name]=[]),e[o.material.name].push(o)))}}catch(e){r.e(e)}finally{r.f()}for(var i in e){var a=e[i];if(a.length>0){var s,u=[],c=[],f=[],h=ei(a);try{for(h.s();!(s=h.n()).done;){var d=s.value;c.push(d.transform),u.push(d.mesh),f.push(d.lightMapScaleOffset)}}catch(e){h.e(e)}finally{h.f()}var p=$o(u,c,f),v=new Vn;v.name="Merged_"+i;var m=new ao(v,p,a[0].material);t&&(v.localMatrix=t.worldMatrix.inverse,m.transform.parent=t),this.models.unshift(m);var y,b=ei(a);try{for(b.s();!(y=b.n()).done;){var g=y.value;this.models.splice(this.models.indexOf(g),1)}}catch(e){b.e(e)}finally{b.f()}}}l.ENABLED&&l.log("mergeMeshes: after",this.models.length)}},{key:"parseJson",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=arguments.length>4?arguments[4]:void 0,i=arguments.length>5?arguments[5]:void 0;this.parseTransforms(n),this.parseMaterials(e,t,n,r,o,i),this.parseMeshes(e,n),this.parseModels(e,n),this.parseAnimations(e,n),this.parseMouseables(e,n)}},{key:"draw",value:function(e){var t,n=this.models,r=n.filter((function(e){return e.active&&!e.material.transparent})),o=n.filter((function(e){return e.active&&e.material.transparent})),i=ei(r);try{for(i.s();!(t=i.n()).done;)t.value.draw(e)}catch(e){i.e(e)}finally{i.f()}o.forEach((function(t){return t.distToCamera=je.distance(e.worldPosition,t.transform.worldPosition)})),o.sort((function(e,t){return t.distToCamera-e.distToCamera}));var a,s=ei(o);try{for(s.s();!(a=s.n()).done;)a.value.draw(e)}catch(e){s.e(e)}finally{s.f()}}},{key:"drawDepth",value:function(e,t){for(var n=0;n<this.models.length;n++){var r=this.models[n];r.material.transparent||r.draw(e,t)}}},{key:"setEnvironment",value:function(e){var t,n=ei(this.materials);try{for(n.s();!(t=n.n()).done;)t.value.setPbrEnvironment(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"setUniform",value:function(e,t){var n,r=ei(this.materials);try{for(r.s();!(n=r.n()).done;)n.value.setFloat(e,t)}catch(e){r.e(e)}finally{r.f()}}},{key:"destruct",value:function(){var e,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],n=ei(this.meshes);try{for(n.s();!(e=n.n()).done;)e.value.destruct()}catch(e){n.e(e)}finally{n.f()}var r,o=ei(this.materials);try{for(o.s();!(r=o.n()).done;)r.value.destruct()}catch(e){o.e(e)}finally{o.f()}if(t)for(var i in this.texturePool)this.texturePool[i].destruct()}},{key:"updateAnimations",value:function(e){for(var t in this.animators)this.animators[t].update(e,!0)}},{key:"update",value:function(e,t,n){var r,o=ei(this.mouseables);try{for(o.s();!(r=o.n()).done;)r.value.update(e,n)}catch(e){o.e(e)}finally{o.f()}}},{key:"parseMeshes",value:function(e,t){var n,r=ei(t.meshes);try{for(r.s();!(n=r.n()).done;){var o=n.value;if(this.meshById[o.instanceId])l.error("mesh has duplicate id",o.meshId);else{var i=new de(e);i.name=o.name,o.indices.length>0&&i.setIndices32(new Uint32Array(o.indices));var a,s=ei(o.attributes);try{for(s.s();!(a=s.n()).done;){var u=a.value;i.setAttribute(u.name,u.stride,new Float32Array(u.data))}}catch(e){s.e(e)}finally{s.f()}this.meshes.push(i),this.meshById[o.instanceId]=i}}}catch(e){r.e(e)}finally{r.f()}l.ENABLED&&l.log("imported meshes: unique",this.meshes.length)}},{key:"parseModels",value:function(e,t){var n,r=ei(t.models);try{for(r.s();!(n=r.n()).done;){var o=n.value,i=this.transformsById[o.transformId],a="Plane"===i.name?new Io(e,256,256,!0):this.meshById[o.meshId];"Plane"===i.name&&Yo(a);var s=new ao(i,a,this.materialById[o.materialId]),l=o.lightmapScaleOffset;s.lightMapScaleOffset.setValues(l[0],l[1],l[2],l[3]),s.isStatic=o.isStatic,this.models.push(s)}}catch(e){r.e(e)}finally{r.f()}}},{key:"parseMouseables",value:function(e,t){}},{key:"parseTransforms",value:function(e){var t,n=ei(e.transforms);try{for(n.s();!(t=n.n()).done;){var r=t.value,o=this.transformFromData(r);this.transformsById[r.parentId]?o.parent=this.transformsById[r.parentId]:o.parent=this.rootTransform,this.transforms.push(o),this.transformsById[o.id]=o,this.transformsByName[o.name]=o}}catch(e){n.e(e)}finally{n.f()}}},{key:"transformFromData",value:function(e){var t=new Vn;return t.setPositionRotationScale(new je(e.position[0],e.position[1],e.position[2]),new _n(e.rotation[0],e.rotation[1],e.rotation[2],e.rotation[3]),new je(e.scale[0],e.scale[1],e.scale[2])),t.name=e.name,t.id=e.id,t}},{key:"parseMaterials",value:function(e,t,n){var r,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=arguments.length>4?arguments[4]:void 0,a=arguments.length>5?arguments[5]:void 0,s=ei(n.materials);try{for(s.s();!(r=s.n()).done;){var l=r.value;if(null==this.materialById[l.id]){var u=new eo(e,t,l,o,i,a,this.shaderName);this.materials.push(u),this.materialById[l.id]=u}}}catch(e){s.e(e)}finally{s.f()}}},{key:"parseAnimations",value:function(e,t){var n,r=ei(t.clips);try{for(r.s();!(n=r.n()).done;){var o=n.value;this.clips[o.id]=Co.parseJSON(o)}}catch(e){r.e(e)}finally{r.f()}var i,a=ei(t.animators);try{for(a.s();!(i=a.n()).done;){var s,l=i.value,u=[],c=ei(l.clipIDs);try{for(c.s();!(s=c.n()).done;){var f=s.value;u.push(this.clips[f])}}catch(e){c.e(e)}finally{c.f()}var h=this.transformsById[l.transformId];this.animators[l.id]=new ko(e,l.id,h,u,[],[],!1)}}catch(e){a.e(e)}finally{a.f()}}}],t&&ni(e.prototype,t),n&&ni(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function ai(e){return ai="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ai(e)}function si(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,ui(r.key),r)}}
2function li(e,t,n){return(t=ui(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ui(e){var t=function(e,t){if("object"!=ai(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=ai(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==ai(t)?t:t+""}var ci=function(){return e=function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),li(this,"progress",0),li(this,"requests",[]),li(this,"onComplete",void 0),li(this,"onProgress",void 0),li(this,"loading",!1)},(t=[{key:"add",value:function(e,t){var n={resource:e,progress:-1,callbacks:[t]};return this.requests.push(n),this.loading&&this.loadResource(n),e}},{key:"load",value:function(e,t){var n=this;this.loading||(this.onComplete=e,this.onProgress=t,this.loading=!0,this.requests.forEach((function(e){n.loadResource(e)})),0===this.requests.length&&this.onComplete&&(this.onComplete(),this.onComplete=void 0))}},{key:"addOnCompleteForResource",value:function(e,t){var n;null===(n=this.requests.find((function(t){return t.resource===e})))||void 0===n||n.callbacks.push(t)}},{key:"destruct",value:function(){this.onComplete=void 0,this.requests=[]}},{key:"loadResource",value:function(e){var t=this;-1===e.progress&&(e.progress=0,e.resource.load((function(){t.loadDoneCallback(e)}),(function(n){e.progress=.99*n,t.updateProgress()})))}},{key:"loadDoneCallback",value:function(e){1!==e.progress&&(e.progress=1,e.callbacks.forEach((function(e){e&&e()})),this.updateProgress())}},{key:"updateProgress",value:function(){var e=this.requests.reduce((function(e,t){return e+Math.max(0,t.progress)}),0);this.progress=we(e/this.requests.length),this.onProgress&&(this.requests.length?this.onProgress(we(this.progress)):this.onProgress(1)),e>=this.requests.length&&this.onComplete&&(this.onComplete(),this.onComplete=void 0)}}])&&si(e.prototype,t),n&&si(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function fi(e){return fi="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},fi(e)}function hi(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,pi(r.key),r)}}function di(e,t,n){return(t=pi(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function pi(e){var t=function(e,t){if("object"!=fi(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=fi(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==fi(t)?t:t+""}var vi=function(){return e=function e(t,n,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),di(this,"data",void 0),di(this,"urlOrJson",void 0),di(this,"loadSource",void 0),this.urlOrJson=n,this.loadSource=r,null!==t&&t.add(this)},(t=[{key:"load",value:function(e,t){var n=this;Mr(this.urlOrJson,(function(t){n.data=t,e()}),t,this.loadSource)}}])&&hi(e.prototype,t),n&&hi(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function mi(e){return mi="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},mi(e)}function yi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function bi(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,wi(r.key),r)}}function gi(e,t,n){return(t=wi(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function wi(e){var t=function(e,t){if("object"!=mi(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=mi(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==mi(t)?t:t+""}var _i=function(){return e=function e(t,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),gi(this,"name",void 0),gi(this,"options",void 0),gi(this,"id",void 0),gi(this,"parent",void 0),gi(this,"usesGroupMaterials",void 0),gi(this,"materials",void 0),gi(this,"callbacks",[]),gi(this,"_value",void 0),this.id=e._id++,this.options=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};
2t%2?yi(Object(n),!0).forEach((function(t){gi(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):yi(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({min:0,max:1},s),this.name=n,this.parent=t,this.usesGroupMaterials=a===t.materials,this.materials=a.filter((function(e){return e.hasUniform(o.name)})),null!==i&&this.addCallback(i),this.setValue(r,!1)},t=[{key:"type",get:function(){return 0}},{key:"value",get:function(){return this._value}},{key:"addCallback",value:function(e){this.callbacks.push(e)}},{key:"triggerCallbacks",value:function(){var e=this;this.callbacks.forEach((function(t){return t(e.value)}))}},{key:"setValue",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];(e!==this._value||n)&&(this._value=e,this.setShaderUniform(e),t&&this.triggerCallbacks())}},{key:"setMaterials",value:function(e){var t=this;this.materials=e.filter((function(e){return e.hasUniform(t.name)})),this.setShaderUniform(this._value)}},{key:"setFromUI",value:function(e){this.setValue(e,!0)}},{key:"setShaderUniform",value:function(e){}}],t&&bi(e.prototype,t),n&&bi(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function xi(e){return xi="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},xi(e)}function Si(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,ki(r.key),r)}}function ki(e){var t=function(e,t){if("object"!=xi(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=xi(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==xi(t)?t:t+""}function Pi(e,t,n){return t=Mi(t),function(e,t){if(t&&("object"==xi(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Ti()?Reflect.construct(t,n||[],Mi(e).constructor):t.apply(e,n))}function Ti(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Ti=function(){return!!e})()}function Mi(e){return Mi=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Mi(e)}function Ei(e,t){return Ei=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Ei(e,t)}gi(_i,"_id",0);var Oi=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Pi(this,t,arguments)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Ei(e,t)}(t,e),n=t,(r=[{key:"type",get:function(){return 5}}])&&Si(n.prototype,r),o&&Si(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(_i);function ji(e){return ji="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ji(e)}function Di(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Ai(r.key),r)}}function Ai(e){var t=function(e,t){if("object"!=ji(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=ji(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==ji(t)?t:t+""}function Li(e,t,n){return t=zi(t),function(e,t){if(t&&("object"==ji(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Ci()?Reflect.construct(t,n||[],zi(e).constructor):t.apply(e,n))}function Ci(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Ci=function(){return!!e})()}
2function zi(e){return zi=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},zi(e)}function Fi(e,t){return Fi=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Fi(e,t)}var Ri=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Li(this,t,arguments)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Fi(e,t)}(t,e),n=t,(r=[{key:"type",get:function(){return 0}},{key:"setShaderUniform",value:function(e){var t=this;this.materials.forEach((function(n){return n.setFloat(t.name,!0===e?1:0)}))}}])&&Di(n.prototype,r),o&&Di(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(_i);function Vi(e){return Vi="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Vi(e)}function Ni(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Bi(r.key),r)}}function Bi(e){var t=function(e,t){if("object"!=Vi(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Vi(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Vi(t)?t:t+""}function Ui(e,t,n){return t=Hi(t),function(e,t){if(t&&("object"==Vi(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Ii()?Reflect.construct(t,n||[],Hi(e).constructor):t.apply(e,n))}function Ii(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Ii=function(){return!!e})()}function Wi(){return Wi="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=Hi(e)););return e}(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},Wi.apply(null,arguments)}function Hi(e){return Hi=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Hi(e)}function Gi(e,t){return Gi=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Gi(e,t)}var qi=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Ui(this,t,arguments)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Gi(e,t)}(t,e),n=t,r=[{key:"type",get:function(){return 3}},{key:"setValue",value:function(e){var n,r,o,i,a,s=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];(n=t,r="setValue",o=this,a=Wi(Hi(1&(i=3)?n.prototype:n),r,o),2&i&&"function"==typeof a?function(e){return a.apply(o,e)}:a)([e.clone(),s])}},{key:"setShaderUniform",value:function(e){var t=this;this.options.gamma&&(e=e.clone().powScalar(2.2)),this.materials.forEach((function(n){return n.setVector3(t.name,e)}))}}],r&&Ni(n.prototype,r),o&&Ni(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(_i);function Xi(e){return Xi="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Xi(e)}function Yi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ki(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};
2t%2?Yi(Object(n),!0).forEach((function(t){Zi(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Yi(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Zi(e,t,n){return(t=$i(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ji(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,$i(r.key),r)}}function $i(e){var t=function(e,t){if("object"!=Xi(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Xi(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Xi(t)?t:t+""}function Qi(e,t,n){return t=ta(t),function(e,t){if(t&&("object"==Xi(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,ea()?Reflect.construct(t,n||[],ta(e).constructor):t.apply(e,n))}function ea(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(ea=function(){return!!e})()}function ta(e){return ta=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},ta(e)}function na(e,t){return na=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},na(e,t)}function ra(e){return(e=Math.abs(e))>0?Se(Math.ceil(-Math.log10(e))+2,1,5):0}var oa=function(e){function t(e,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:[],l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:{};return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Qi(this,t,[e,n,r,a,s,Ki({min:o>r?o-1:o,max:i<r?2*r:i,precision:ra(i)},l)])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&na(e,t)}(t,e),n=t,(r=[{key:"type",get:function(){return 2}},{key:"setShaderUniform",value:function(e){var t=this;this.materials.forEach((function(n){return n.setFloat(t.name,e)}))}}])&&Ji(n.prototype,r),o&&Ji(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(_i);function ia(e){return ia="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ia(e)}function aa(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function sa(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?aa(Object(n),!0).forEach((function(t){la(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):aa(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function la(e,t,n){return(t=ca(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ua(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,ca(r.key),r)}}function ca(e){var t=function(e,t){if("object"!=ia(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=ia(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==ia(t)?t:t+""}function fa(e,t,n){return t=da(t),function(e,t){if(t&&("object"==ia(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,ha()?Reflect.construct(t,n||[],da(e).constructor):t.apply(e,n))}function ha(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(ha=function(){return!!e})()}
2function da(e){return da=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},da(e)}function pa(e,t){return pa=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},pa(e,t)}var va=function(e){function t(e,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:[],l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:{};return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),fa(this,t,[e,n,r,a,s,sa({min:o>r?o-1:o,max:i<r?2*r:i,step:1},l)])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&pa(e,t)}(t,e),n=t,(r=[{key:"type",get:function(){return 1}},{key:"setShaderUniform",value:function(e){var t=this;this.materials.forEach((function(n){return n.setFloat(t.name,e)}))}}])&&ua(n.prototype,r),o&&ua(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(_i);function ma(e){return ma="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ma(e)}function ya(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,ba(r.key),r)}}function ba(e){var t=function(e,t){if("object"!=ma(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=ma(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==ma(t)?t:t+""}function ga(e,t,n){return t=_a(t),function(e,t){if(t&&("object"==ma(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,wa()?Reflect.construct(t,n||[],_a(e).constructor):t.apply(e,n))}function wa(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(wa=function(){return!!e})()}function _a(e){return _a=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},_a(e)}function xa(e,t){return xa=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},xa(e,t)}var Sa=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),ga(this,t,arguments)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&xa(e,t)}(t,e),n=t,(r=[{key:"type",get:function(){return 4}}])&&ya(n.prototype,r),o&&ya(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(_i);function ka(e){return ka="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ka(e)}function Pa(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ta(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Pa(Object(n),!0).forEach((function(t){Ma(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Pa(Object(n)).forEac
2h((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ma(e,t,n){return(t=Oa(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ea(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Oa(r.key),r)}}function Oa(e){var t=function(e,t){if("object"!=ka(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=ka(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==ka(t)?t:t+""}function ja(e,t,n){return t=Aa(t),function(e,t){if(t&&("object"==ka(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Da()?Reflect.construct(t,n||[],Aa(e).constructor):t.apply(e,n))}function Da(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Da=function(){return!!e})()}function Aa(e){return Aa=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Aa(e)}function La(e,t){return La=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},La(e,t)}var Ca=function(e){function t(e,n,r,o){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:[],s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{};return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),ja(this,t,[e,n,r,i,a,Ta({selectOptions:o},s)])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&La(e,t)}(t,e),n=t,(r=[{key:"type",get:function(){return 6}},{key:"setShaderUniform",value:function(e){var t=this;this.materials.forEach((function(n){return n.setFloat(t.name,e)}))}}])&&Ea(n.prototype,r),o&&Ea(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(_i);function za(e){return za="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},za(e)}function Fa(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Ra(r.key),r)}}function Ra(e){var t=function(e,t){if("object"!=za(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=za(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==za(t)?t:t+""}function Va(e,t,n){return t=Ba(t),function(e,t){if(t&&("object"==za(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Na()?Reflect.construct(t,n||[],Ba(e).constructor):t.apply(e,n))}function Na(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Na=function(){return!!e})()}function Ba(e){return Ba=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Ba(e)}function Ua(e,t){return Ua=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Ua(e,t)}var Ia=function(e){function t(e,n){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Va(this,t,[e,"log",n])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Ua(e,t)}(t,e),n=t,(r=[{key:"type",get:function(){return 7}}])&&Fa(n.prototype,r),o&&Fa(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(_i);function Wa(e){return Wa="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Wa(e)}function Ha(e){return function(e){if(Array.isArray(e))return qa(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Ga(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ga(e,t){if(e){if("string"==typeof e)return qa(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?qa(e,t):void 0}}function qa(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Xa(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Ka(r.key),r)}}function Ya(e,t,n){return(t=Ka(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ka(e){var t=function(e,t){if("object"!=Wa(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Wa(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Wa(t)?t:t+""}var Za,Ja=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Ya(this,"materials",[]),Ya(this,"params",[]),Ya(this,"name",""),Ya(this,"children",[]),Ya(this,"collapsed",!1),Ya(this,"id",0),this.id=e._id++,this.name=t,this.materials=Array.isArray(n)?n:[n]}return t=e,n=[{key:"addGroup",value:function(t){var n=new e(t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]);return this.children.push(n),n}},{key:"setMaterials",value:function(e){this.materials=Array.isArray(e)?e:[e];var t,n=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];
2if(!n){if(Array.isArray(e)||(n=Ga(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}(this.params);try{for(n.s();!(t=n.n()).done;){var r=t.value;r.usesGroupMaterials&&r.setMaterials(this.materials)}}catch(e){n.e(e)}finally{n.f()}}},{key:"addParamFloat",value:function(e,t){var n=new oa(this,e,t,arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,arguments.length>5&&void 0!==arguments[5]?arguments[5]:[],arguments.length>6&&void 0!==arguments[6]?arguments[6]:{});return this.params.push(n),n}},{key:"addShaderParamFloat",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return this.addParamFloat(e,t,n,r,o,this.materials,i)}},{key:"addParamSelect",value:function(e,t,n){var r=new Ca(this,e,t,n,arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],arguments.length>5&&void 0!==arguments[5]?arguments[5]:{});return this.params.push(r),r}},{key:"addShaderParamSelect",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return this.addParamSelect(e,t,n,r,this.materials,o)}},{key:"addParamInt",value:function(e,t){var n=new va(this,e,t,arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,arguments.length>5&&void 0!==arguments[5]?arguments[5]:[],arguments.length>6&&void 0!==arguments[6]?arguments[6]:{});return this.params.push(n),n}},{key:"addShaderParamInt",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return this.addParamInt(e,t,n,r,o,this.materials,i)}},{key:"addParamBool",value:function(e,t){var n=new Ri(this,e,t,arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],arguments.length>4&&void 0!==arguments[4]?arguments[4]:{});return this.params.push(n),n}},{key:"addShaderParamBool",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.addParamBool(e,t,n,this.materials,r)}},{key:"addParamColor",value:function(e,t){var n=new qi(this,e,t,arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],arguments.length>4&&void 0!==arguments[4]?arguments[4]:{});return this.params.push(n),n}},{key:"addShaderParamColor",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.addParamColor(e,t,n,this.materials,r)}},{key:"addParamText",value:function(e,t){var n=new Sa(this,e,t,arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,[],arguments.length>3&&void 0!==arguments[3]?arguments[3]:{});return this.params.push(n),n}},{key:"addButton",value:function(e){var t=new Oi(this,e,!0,arguments.length>1&&void 0!==arguments[1]?arguments[1]:null);return this.params.push(t),t}},{key:"addLog",value:function(e){var t=new Ia(this,e);return this.params.push(t),t}},{key:"getParameters",value:function(){return[].concat(Ha(this.params),Ha(this.children.flatMap((function(e){return e.getParameters()}))))}}],n&&Xa(t.prototype,n),r&&Xa(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,n,r}();function $a(e){return $a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},$a(e)}function Qa(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,ts(r.key),r)}}
2function es(e,t,n){return(t=ts(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ts(e){var t=function(e,t){if("object"!=$a(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=$a(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==$a(t)?t:t+""}Ya(Ja,"_id",0);var ns=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),es(this,"time",void 0),es(this,"dt",void 0),es(this,"fps",void 0),es(this,"avgFps",60),es(this,"minFps",1e10),es(this,"maxFps",0),this.fps=60,this.dt=1/this.fps,this.time=0}return t=e,r=[{key:"instance",get:function(){return Za||(Za=new e),Za}},{key:"timePerformance",value:function(e){e()}}],(n=[{key:"update",value:function(e){e*=.001,this.dt=Se(e-this.time,1/240,1/30),this.time=e,this.fps=1/this.dt,this.minFps=Math.min(this.minFps,this.fps),this.maxFps=Math.max(this.maxFps,this.fps),this.avgFps>0?this.avgFps=ge(this.fps,this.avgFps,.95):this.avgFps=1/60}}])&&Qa(t.prototype,n),r&&Qa(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,n,r}();function rs(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,s=[],l=!0,u=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){u=!0,o=e}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(u)throw o}}return s}}(e,t)||function(e,t){if(e){if("string"==typeof e)return os(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?os(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function os(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function is(e,t){switch(e){case 1:l.error("THREE.RGBELoader Read Error: "+(t||""));break;case 2:l.error("THREE.RGBELoader Write Error: "+(t||""));break;case 3:l.error("THREE.RGBELoader Bad File Format: "+(t||""));break;default:l.error("THREE.RGBELoader: Error: "+(t||""))}}function as(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1024,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];t=t||1024;for(var r=e.pos,o=-1,i=0,a="",s=String.fromCharCode.apply(null,new Uint16Array(e.subarray(r,r+128)));0>(o=s.indexOf("\n"))&&i<t&&r<e.byteLength;)a+=s,i+=s.length,r+=128,s+=String.fromCharCode.apply(null,new Uint16Array(e.subarray(r,r+128)));return-1<o&&(!1!==n&&(e.pos+=i+o+1),a+s.slice(0,o))}function ss(e,t,n,r){var o=Math.pow(2,r-136);return[e*o,t*o,n*o]}function ls(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e.pos=0;var n=function(e){var t,n,r=/^\s*GAMMA\s*=\s*(\d+(\.\d+)?)\s*$/,o=/^\s*EXPOSURE\s*=\s*(\d+(\.\d+)?)\s*$/,i=/^\s*FORMAT=(\S+)\s*$/,a=/^\s*\-Y\s+(\d+)\s+\+X\s+(\d+)\s*$/,s={valid:0,string:"",comments:"",programtype:"RGBE",format:"",gamma:1,exposure:1,width:0,height:0};if(e.pos>=e.byteLength||!(t=as(e)))return is(1,"no header found");if(!(n=t.match(/^#\?(\S+)$/)))return is(3,"bad initial token");for(s.valid|=1,s.programtype=n[1],s.string+=t+"\n";!1!==(t=as(e));)if(s.string+=t+"\n","#"!==t.charAt(0)){if((n=t.match(r))&&(s.gamma=parseFloat(n[1])),(n=t.match(o))&&(s.exposure=parseFloat(n[1])),(n=t.match(i))&&(s.valid|=2,s.format=n[1]),(n=t.match(a))&&(s.valid|=4,s.height=parseInt(n[1],10),s.width=parseInt(n[2],10)),2&s.valid&&4&s.valid)break}else s.comments+=t+"\n";return 2&s.valid?4&s.valid?s:is(3,"missing image size specifier"):is(3,"missing format specifier")}(e);if(l.ENABLED&&l.log("HEADER:",n),!1!==n){var r=n.width,o=n.height,i=function(e,t,n,r){var o,i,a,s,l,u,c,f,h,d,p,v,m,y=t,b=n;if(y<8||y>32767||2!==e[0]||2!==e[1]||128&e[2]){for(var g=0,w=new Float32Array(3*t*n),_=0;_<t*n;_++){var x=rs(ss(e[4*_+0],e[4*_+1],e[4*_+2],e[4*_+3]),3),S=x[0],k=x[1],P=x[2];w[g++]=S,w[g++]=k,w[g++]=P}return w}if(y!==(e[2]<<8|e[3]))return is(3,"wrong scanline width"),null;if(!(o=new Float32Array(3*t*n))||!o.length)return is(4,"unable to allocate buffer space"),null;for(i=0,a=0,f=4*y,m=new Uint8Array(4),u=new Uint8Array(f);b>0&&a<e.byteLength;){if(a+4>e.byteLength)return is(1,""),null;if(m[0]=e[a++],m[1]=e[a++],m[2]=e[a++],m[3]=e[a++],2!=m[0]||2!=m[1]||(m[2]<<8|m[3])!=y)return is(3,"bad rgbe scanline format"),null;for(c=0;c<f&&a<e.byteLength;){if((v=(s=e[a++])>128)&&(s-=128),0===s||c+s>f)return is(3,"bad scanline data"),null;if(v)for(l=e[a++],h=0;h<s;h++)u[c++]=l;else u.set(e.subarray(a,a+s),c),c+=s,a+=s}for(d=y,h=0;h<d;h++){var T=rs(ss(u[h+(p=0)],u[h+(p+=y)],u[h+(p+=y)],u[h+(p+=y)]),3),M=T[0],E=T[1],O=T[2];o[i++]=M,o[i++]=E,o[i++]=O}b--}if(r){for(var j=new Uint8Array(o.length),D=o.length,A=0;A<D;A++)j[A]=Se(255*Math.pow(o[A],1/2.2)|0,0,255);return j}return o}(e.subarray(e.pos),r,o,t);if(i&&i.length)return{data:i,width:r,height:o}}return null}function us(e){return us="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},us(e)}function cs(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function fs(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};
2t%2?cs(Object(n),!0).forEach((function(t){bs(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):cs(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function hs(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,gs(r.key),r)}}function ds(e,t,n){return t=ms(t),function(e,t){if(t&&("object"==us(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,ps()?Reflect.construct(t,n||[],ms(e).constructor):t.apply(e,n))}function ps(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(ps=function(){return!!e})()}function vs(){return vs="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=ms(e)););return e}(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},vs.apply(null,arguments)}function ms(e){return ms=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},ms(e)}function ys(e,t){return ys=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},ys(e,t)}function bs(e,t,n){return(t=gs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function gs(e){var t=function(e,t){if("object"!=us(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=us(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==us(t)?t:t+""}var ws={flipZ:!1},_s=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),bs(n=ds(this,t,[e,34067,fs(fs({},ws),r)]),"_size",-1),n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&ys(e,t)}(t,e),n=t,r=[{key:"size",get:function(){return this._size}},{key:"options",get:function(){return e=t,n="options",r=this,i=vs(ms(1&(o=1)?e.prototype:e),n,r),2&o&&"function"==typeof i?function(e){return i.apply(r,e)}:i;var e,n,r,o,i}},{key:"setSize",value:function(e){e!=this._size&&this.initTextures(e)}},{key:"setImage",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=[];r[t]=e,this.setImages(r,n)}},{key:"setImages",value:function(e){var t,n,r=this,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=null!==(t=null===(n=e.at(-1))||void 0===n?void 0:n.width)&&void 0!==t?t:0,a=this.renderer.context;this.bind(),this.initTextures(i);var s=[D,34070,34071,34072,A,j];this.setPixelStoreOptions(),e.forEach((function(e,t){if(t<6&&e){var n=s[t];if(r.options.flipZ&&!(e instanceof ImageBitmap)){var i=2===t||3===t?function(e){var t=ir(e.width,e.height),n=t.getContext("2d");return n.transform(1,0,0,-1,0,t.height),n.drawImage(e,0,0),t}(e):function(e){var t=ir(e.width,e.height),n=t.getContext("2d");return n.transform(-1,0,0,1,t.width,0),n.drawImage(e,0,0),t}(e);n===A?n=j:n===j&&(n=A),e=i}a.texSubImage2D(n,o,0,0,e.width,e.height,r.format,r.type,e)}})),this.setDefaultPixelStoreOptions(),0===o&&this.autoGenerateMips&&(this.mipsDirty=!0,this.generateMipsIfNeeded())}},{key:"setData",value:function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};this.setOptions(o),this.setSize(n),this.bind(),this.setPixelStoreOptions(),this.renderer.context.texSubImage2D(D+e,0,0,0,n,r,this.format,this.type,t),this.setDefaultPixelStoreOptions(),this.mipsDirty=!0,this.generateMipsIfNeeded()}},{key:"initTextures",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:256;if(this._size!==e){this._size=e;var t=this.useMips?Math.log2(e):1,n=this.renderer.context;n.texStorage2D(n.TEXTURE_CUBE_MAP,t,this.internalFormat,e,e)}}}],r&&hs(n.prototype,r),o&&hs(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(or);function xs(e){return xs="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},xs(e)}function Ss(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Ps(r.key),r)}}function ks(e,t,n){return(t=Ps(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ps(e){var t=function(e,t){if("object"!=xs(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=xs(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==xs(t)?t:t+""}var Ts=function(){return e=function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.01,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),ks(this,"frustumHeight",1),ks(this,"projectionMatrix",new jn),ks(this,"fov",void 0),ks(this,"_near",void 0),ks(this,"_far",void 0),ks(this,"_aspectRatio",void 0),ks(this,"_frustumOffset",new be),ks(this,"_jitter",new be),ks(this,"_dirty",!0),ks(this,"jitterFrame",0),this.fov=t,this.frustumHeight=2*Math.tan(.5*this.fov),this._near=n,this._far=r,this._aspectRatio=1,this.dirty=!0},(t=[{key:"near",get:function(){return this._near},set:function(e){e!==this._near&&(this._near=e,this.dirty=!0)}},{key:"far",get:function(){return this._far},set:function(e){e!==this._far&&(this._far=e,this.dirty=!0)}},{key:"aspectRatio",get:function(){return this._aspectRatio},set:function(e){e!==this._aspectRatio&&(this._aspectRatio=e,this.dirty=!0)}},{key:"dirty",get:function(){return this._dirty},set:function(e){this._dirty=e}},{key:"frustumCorner",get:function(){this.dirty&&this.updateMatrix();var e=.5*this.frustumHeight,t=e*this._aspectRatio;return new je(t,e,1)}},{key:"matrix",get:function(){return this.updateMatrix(),this.projectionMatrix}},{key:"FOV",get:function(){return this.fov},set:function(e){e!==this.fov&&(this.fov=e,this.frustumHeight=2*Math.tan(.5*this.fov),this.dirty=!0)}},{key:"setMatrix",value:function(e){jn.copy(e,this.projectionMatrix),this.dirty=!1}},{key:"updateMatrix",value:function(){if(this.dirty){var e=this._frustumOffset.x+this._jitter.x,t=this._frustumOffset.y+this._jitter.y;if(0!=e||0!=t){var n=this._near*Math.tan(this.fov/2),r=-n,o=n*this.aspectRatio,i=-o,a=o-i,s=n-r;i+=e*a,o+=e*a,n+=t*s,r+=t*s;var l=2*this._near/(o-i),u=2*this._near/(n-r),c=(o+i)/(o-i),f=(n+r)/(n-r),h=-(this._far+this._near)/(this._far-this._near),d=-2*this._far*this._near/(this._far-this._near);this.projectionMatrix.setValues(l,0,0,0,0,u,0,0,c,f,h,-1,0,0,d,0)}else jn.perspective(this.fov,this._aspectRatio,this._near,this._far,this.projectionMatrix);this.dirty=!1}}},{key:"setFrustumOffsetX",value:function(e){this._frustumOffset.x=e,this.dirty=!0}},{key:"setFrustumOffsetY",value:function(e){this._frustumOffset.y=e,this.dirty=!0}},{key:"jitter",value:function(e){this._jitter.x=Pe(this.jitterFrame%51,2)-.5,this._jitter.y=Pe(this.jitterFrame%31,3)-.5,this._jitter.x/=e.x,this._jitter.y/=e.y,this.jitterFrame++,this.dirty=!0}},{key:"resetJitter",value:function(){this._jitter.setValues(0,0),this.dirty=!0}},{key:"jitterOffset",get:function(){return this._jitter}}])&&Ss(e.prototype,t),n&&Ss(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function Ms(e){return Ms="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ms(e)}function Es(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,zs(r.key),r)}}function Os(e,t,n){return t=As(t),function(e,t){if(t&&("object"==Ms(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,js()?Reflect.construct(t,n||[],As(e).constructor):t.apply(e,n))}function js(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(js=function(){return!!e})()}function Ds(){return Ds="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=As(e)););return e}(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},Ds.apply(null,arguments)}
2function As(e){return As=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},As(e)}function Ls(e,t){return Ls=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Ls(e,t)}function Cs(e,t,n){return(t=zs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function zs(e){var t=function(e,t){if("object"!=Ms(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Ms(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Ms(t)?t:t+""}var Fs=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.01,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Cs(e=Os(this,t),"projection",void 0),Cs(e,"_viewProjection",new jn),Cs(e,"_viewMatrix",new jn),e.projection=new Ts(n,r,o),e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Ls(e,t)}(t,e),n=t,r=[{key:"view",get:function(){return this}},{key:"viewProjection",get:function(){return this.updateMatrix(),this._viewProjection}},{key:"projectionMatrix",get:function(){return this.projection.matrix}},{key:"viewMatrix",get:function(){return this.updateMatrix(),this._viewMatrix}},{key:"matrix",get:function(){return this.viewMatrix}},{key:"worldRotationMatrix",get:function(){return jn.invert(this.worldRotationMatrixMat4)}},{key:"worldToScreenPoint",value:function(e){var t=new ze(e.x,e.y,e.z,1);return t.transform(this.viewProjection),t.x/=t.w,t.y/=t.w,t.x=.5*t.x+.5,t.y=-.5*t.y+.5,t}},{key:"screenToWorldPoint",value:function(e){var t=2*e.x-1,n=-2*e.y+1;return new je(t,n,1).transform(jn.invert(this.viewProjection))}},{key:"screenToWorldPoint3",value:function(e){var t=2*e.x-1,n=-2*e.y+1;return new je(t,n,e.z).transform(jn.invert(this.viewProjection))}},{key:"getDepth",value:function(e){return new ze(e.x,e.y,e.z,1).transform(this.viewProjection).z}},{key:"updateMatrix",value:function(){var e,n,r,o,i,a=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if((e=t,n="updateMatrix",r=this,i=Ds(As(1&(o=3)?e.prototype:e),n,r),2&o&&"function"==typeof i?function(e){return i.apply(r,e)}:i)([])||this.projection.dirty||a){var s=this.projection.matrix;return jn.invert(this.worldMatrix,this._viewMatrix),jn.multiply(s,this._viewMatrix,this._viewProjection),!0}return!1}}],r&&Es(n.prototype,r),o&&Es(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(Vn);function Rs(e){return Rs="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Rs(e)}function Vs(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Hs(r.key),r)}}function Ns(e,t,n){return t=Us(t),function(e,t){if(t&&("object"==Rs(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Bs()?Reflect.construct(t,n||[],Us(e).constructor):t.apply(e,n))}function Bs(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Bs=function(){return!!e})()}function Us(e){return Us=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Us(e)}function Is(e,t){return Is=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Is(e,t)}function Ws(e,t,n){return(t=Hs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Hs(e){var t=function(e,t){if("object"!=Rs(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Rs(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Rs(t)?t:t+""}var Gs=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.01,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Ws(e=Ns(this,t,[Math.PI/2,n,r]),"pivot",void 0),Ws(e,"angles",[new je(0,3,2),new je(0,1,2),new je(1,2,2),new je(-1,2,2),new je(2,0,0),new je(2,2,0)]),e.pivot=new Vn,e.view.parent=e.pivot,e.projection.aspectRatio=1;for(var o=0;o<6;o++)e.angles[o].multiplyScalar(Math.PI/2);return e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Is(e,t)}(t,e),n=t,o=[{key:"sides",get:function(){return["left","right","top","bottom","front","back"]}}],(r=[{key:"setCubeMapSide",value:function(e){return this.view.euler=this.angles[e],this}},{key:"getSideName",value:function(e){return t.sides[e]}}
vendor: 8,693 bytes, line 2
2])&&Vs(n.prototype,r),o&&Vs(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(Fs);function qs(e){return qs="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},qs(e)}function Xs(){Xs=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,o=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function c(e,t,n,r){var i=t&&t.prototype instanceof y?t:y,a=Object.create(i.prototype),s=new j(r||[]);return o(a,"_invoke",{value:T(e,n,s)}),a}function f(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=c;var h="suspendedStart",d="suspendedYield",p="executing",v="completed",m={};function y(){}function b(){}function g(){}var w={};u(w,a,(function(){return this}));var _=Object.getPrototypeOf,x=_&&_(_(D([])));x&&x!==n&&r.call(x,a)&&(w=x);var S=g.prototype=y.prototype=Object.create(w);function k(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function P(e,t){function n(o,i,a,s){var l=f(e[o],e,i);if("throw"!==l.type){var u=l.arg,c=u.value;return c&&"object"==qs(c)&&r.call(c,"__await")?t.resolve(c.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):t.resolve(c).then((function(e){u.value=e,a(u)}),(function(e){return n("throw",e,a,s)}))}s(l.arg)}var i;o(this,"_invoke",{value:function(e,r){function o(){return new t((function(t,o){n(e,r,t,o)}))}return i=i?i.then(o,o):o()}})}function T(t,n,r){var o=h;return function(i,a){if(o===p)throw Error("Generator is already running");if(o===v){if("throw"===i)throw a;return{value:e,done:!0}}for(r.method=i,r.arg=a;;){var s=r.delegate;if(s){var l=M(s,r);if(l){if(l===m)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(o===h)throw o=v,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);o=p;var u=f(t,n,r);if("normal"===u.type){if(o=r.done?v:d,u.arg===m)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(o=v,r.method="throw",r.arg=u.arg)}}}function M(t,n){var r=n.method,o=t.iterator[r];if(o===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,M(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),m;var i=f(o,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,m;var a=i.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,m):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function E(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function O(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function j(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(E,this),this.reset(!0)}function D(t){if(t||""===t){var n=t[a];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function n(){for(;++o<t.length;)if(r.call(t,o))return n.value=t[o],n.done=!1,n;return n.value=e,n.done=!0,n};return i.next=i}}throw new TypeError(qs(t)+" is not iterable")}return b.prototype=g,o(S,"constructor",{value:g,configurable:!0}),o(g,"constructor",{value:b,configurable:!0}),b.displayName=u(g,l,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===b||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,g):(e.__proto__=g,u(e,l,"GeneratorFunction")),e.prototype=Object.create(S),e},t.awrap=function(e){return{__await:e}},k(P.prototype),u(P.prototype,s,(function(){return this})),t.AsyncIterator=P,t.async=function(e,n,r,o,i){void 0===i&&(i=Promise);var a=new P(c(e,n,r,o),i);return t.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},k(S),u(S,l,"Generator"),u(S,a,(function(){return this})),u(S,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=D,j.prototype={constructor:j,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(O),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function o(r,o){return s.type="throw",s.arg=t,n.next=r,o&&(n.method="next",n.arg=e),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var l=r.call(a,"catchLoc"),u=r.call(a,"finallyLoc");if(l&&u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,m):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),O(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;O(n)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:D(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),m}},t}function Ys(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function Ks(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,il(r.key),r)}}function Zs(e,t,n){return t=el(t),function(e,t){if(t&&("object"==qs(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Js()?Reflect.construct(t,n||[],el(e).constructor):t.apply(e,n))}function Js(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Js=function(){return!!e})()}function $s(e,t,n,r){var o=Qs(el(1&r?e.prototype:e),t,n);return 2&r&&"function"==typeof o?function(e){return o.apply(n,e)}:o}function Qs(){return Qs="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=el(e)););return e}(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},Qs.apply(null,arguments)}function el(e){return el=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},el(e)}function tl(e,t){return tl=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},tl(e,t)}function nl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function rl(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};
2t%2?nl(Object(n),!0).forEach((function(t){ol(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):nl(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ol(e,t,n){return(t=il(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function il(e){var t=function(e,t){if("object"!=qs(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=qs(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==qs(t)?t:t+""}var al=rl(rl({},{antialias:!1,depth:!1,stencil:!1,flipY:!1}),{},{scaleToCanvas:!1,sizeMultiplier:1}),sl=function(e){function t(e){var n,r,o,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),ol(n=Zs(this,t,[e,rl(rl({},al),s)]),"frameBuffer",void 0),ol(n,"renderBuffer",null),ol(n,"colorFramebuffer",null),ol(n,"depthBuffer",void 0),ol(n,"stencilBuffer",void 0),ol(n,"depthStencilBuffer",void 0),ol(n,"depthTexture",void 0),ol(n,"frameBufferComplete",!1),ol(n,"aaSamples",4),r=n.internalFormat,(null===(o=Kn(r))||void 0===o?void 0:o.unsizedFormat)&&l.error("RenderTexture: internalFormat ".concat(n.internalFormat," is not a sized format")),n.setSize(i,a);var u=n.renderer.context;return n.frameBuffer=u.createFramebuffer(),u.bindFramebuffer(y,n.frameBuffer),u.framebufferTexture2D(y,h,u.TEXTURE_2D,n.textureGL,0),n.antialias&&n.addMultisampleRenderBuffer(),s.depth&&s.stencil?n.depthStencilBuffer=n.createDepthStencilBuffer(i,a):s.depth?n.depthBuffer=n.createDepthBuffer(i,a):s.stencil&&(n.stencilBuffer=n.createStencilBuffer(i,a)),n.frameBufferComplete=function(e){var t=e.renderer.context;t.bindFramebuffer(y,e.frameBuffer);var n=t.checkFramebufferStatus(y);t.bindFramebuffer(y,null);var r=Zn(e.internalFormat);switch(n){case 36053:return!0;case 36054:return l.warn("Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_ATTACHMENT",e,r),!1;case 36055:return l.warn("Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",e,r),!1;case 36057:return l.warn("Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_DIMENSIONS",e,r),!1;case 36061:return l.warn("Incomplete framebuffer: FRAMEBUFFER_UNSUPPORTED",e,r),!1;default:return l.warn("Incomplete framebuffer: "+n,e,r),!1}}(n),u.bindFramebuffer(y,null),n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&tl(e,t)}(t,e),n=t,r=[{key:"antialias",get:function(){return!!this.options.antialias}},{key:"scaleToCanvas",get:function(){return!!this.options.scaleToCanvas},set:function(e){this.options.scaleToCanvas=e}},{key:"sizeMultiplier",get:function(){return this.options.sizeMultiplier||1},set:function(e){this.options.sizeMultiplier=e}},{key:"options",get:function(){return $s(t,"options",this,1)}},{key:"resolveMultisampleBuffer",value:function(){if(this.renderBuffer){var e=this.renderer.context;e.bindFramebuffer(e.READ_FRAMEBUFFER,this.frameBuffer),e.bindFramebuffer(e.DRAW_FRAMEBUFFER,this.colorFramebuffer),e.clearBufferfv(e.COLOR,0,[0,0,0,1]),e.blitFramebuffer(0,0,this.width,this.height,0,0,this.width,this.height,e.COLOR_BUFFER_BIT,e.NEAREST),e.bindFramebuffer(e.DRAW_FRAMEBUFFER,null),e.bindFramebuffer(e.READ_FRAMEBUFFER,null),e.bindFramebuffer(y,null)}}},{key:"setTexture3DSlice",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=this.renderer.context;r.bindFramebuffer(y,this.frameBuffer),r.framebufferTextureLayer(y,h,e.textureGL,n,t)}},{key:"addDepthTexture",value:function(){this.setDepthTexture(new wr(this.renderer,{internalFormat:33190}))}},{key:"setDepthTexture",value:function(e){e.setSize(this.width,this.height),this.depthTexture=e;var t=this.renderer.context;t.bindFramebuffer(y,this.frameBuffer),t.framebufferTexture2D(y,t.DEPTH_ATTACHMENT,t.TEXTURE_2D,this.depthTexture.textureGL,0),t.bindFramebuffer(y,null)}},{key:"hasDepth",value:function(){return null!=this.depthBuffer||null!=this.depthTexture||null!=this.depthStencilBuffer}},{key:"setAsTarget",value:function(){this.renderer.context.bindFramebuffer(y,this.frameBuffer),this.hasDepth()?this.renderer.renderState.setDepthMask(!0):this.renderer.renderState.setDepthMask(!1),this.mipsDirty=!0}},{key:"destruct",value:function(){var e=this.renderer.context;this.frameBuffer&&e.deleteFramebuffer(this.frameBuffer),this.colorFramebuffer&&e.deleteFramebuffer(this.colorFramebuffer),this.depthStencilBuffer&&e.deleteRenderbuffer(this.depthStencilBuffer),this.depthBuffer&&e.deleteRenderbuffer(this.depthBuffer),this.stencilBuffer&&e.deleteRenderbuffer(this.stencilBuffer),this.renderBuffer&&e.deleteRenderbuffer(this.renderBuffer),this.depthTexture&&this.depthTexture.destruct(),$s(t,"destruct",this,3)([])}},{key:"readPixels",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.width,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:this.height,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null;return $s(t,"readPixels",this,3)([e,n,r,o,i,a||this.frameBuffer])}},{key:"readPixelsAsync",value:(i=Xs().mark((function e(){var n,r,o,i,a,s,l=arguments;return Xs().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=l.length>0&&void 0!==l[0]?l[0]:0,r=l.length>1&&void 0!==l[1]?l[1]:0,o=l.length>2&&void 0!==l[2]?l[2]:this.width,i=l.length>3&&void 0!==l[3]?l[3]:this.height,a=l.length>4&&void 0!==l[4]?l[4]:void 0,s=l.length>5&&void 0!==l[5]?l[5]:null,e.abrupt("return",$s(t,"readPixelsAsync",this,3)([n,r,o,i,a,s||this.frameBuffer]));case 7:case"end":return e.stop()}}),e,this)})),a=function(){var e=this,t=arguments;return new Promise((function(n,r){var o=i.apply(e,t);function a(e){Ys(o,n,r,a,s,"next",e)}function s(e){Ys(o,n,r,a,s,"throw",e)}a(void 0)}))},function(){return a.apply(this,arguments)})},{key:"setSize",value:function(e,n){if(e=Math.round(e),n=Math.round(n),e!==this.width||n!==this.height){if(this.depthStencilBuffer&&this.initDepthStencilBuffer(this.depthStencilBuffer,e,n),this.depthBuffer&&this.initDepthBuffer(this.depthBuffer,e,n),this.stencilBuffer&&this.initStencilBuffer(this.stencilBuffer,e,n),this.renderBuffer){var r=this.renderer.context;r.bindRenderbuffer(S,this.renderBuffer),r.renderbufferStorageMultisample(S,this.aaSamples,this.internalFormat,e,n),r.bindRenderbuffer(S,null)}this.depthTexture&&this.depthTexture.setSize(e,n),$s(t,"setSize",this,3)([e,n])}}},{key:"addMultisampleRenderBuffer",value:function(){var e=this.renderer.context;this.colorFramebuffer=e.createFramebuffer(),this.renderBuffer=e.createRenderbuffer(),e.bindRenderbuffer(S,this.renderBuffer),e.renderbufferStorageMultisample(S,this.aaSamples,this.internalFormat,this.width,this.height),e.bindRenderbuffer(S,null),e.bindFramebuffer(y,this.frameBuffer),e.framebufferTexture2D(y,h,e.TEXTURE_2D,null,0),e.framebufferRenderbuffer(y,h,S,this.renderBuffer),e.bindFramebuffer(y,null),e.bindFramebuffer(y,this.colorFramebuffer),e.framebufferTexture2D(y,h,e.TEXTURE_2D,this.textureGL,0),e.bindFramebuffer(y,null)}},{key:"initDepthBuffer",value:function(e,t,n){var r=this.renderer.context;
2r.bindFramebuffer(y,this.frameBuffer),r.bindRenderbuffer(S,e),this.antialias?r.renderbufferStorageMultisample(S,this.aaSamples,36012,t,n):r.renderbufferStorage(S,36012,t,n),r.bindRenderbuffer(S,null)}},{key:"initStencilBuffer",value:function(e,t,n){var r=this.renderer.context;r.bindRenderbuffer(S,e),this.antialias?r.renderbufferStorageMultisample(S,this.aaSamples,r.STENCIL_INDEX8,t,n):r.renderbufferStorage(S,r.STENCIL_INDEX8,t,n),r.bindRenderbuffer(S,null)}},{key:"initDepthStencilBuffer",value:function(e,t,n){var r=this.renderer.context;r.bindFramebuffer(y,this.frameBuffer),r.bindRenderbuffer(S,e),this.antialias?r.renderbufferStorageMultisample(S,this.aaSamples,35056,t,n):r.renderbufferStorage(S,r.DEPTH_STENCIL,t,n),r.bindRenderbuffer(S,null)}},{key:"createDepthBuffer",value:function(e,t){var n=this.renderer.context,r=n.createRenderbuffer();return this.initDepthBuffer(r,e,t),n.bindRenderbuffer(S,r),n.framebufferRenderbuffer(y,n.DEPTH_ATTACHMENT,S,r),n.bindRenderbuffer(S,null),r}},{key:"createDepthStencilBuffer",value:function(e,t){var n=this.renderer.context,r=n.createRenderbuffer();return this.initDepthStencilBuffer(r,e,t),n.bindRenderbuffer(S,r),n.framebufferRenderbuffer(y,n.DEPTH_STENCIL_ATTACHMENT,S,r),n.bindRenderbuffer(S,null),r}},{key:"createStencilBuffer",value:function(e,t){var n=this.renderer.context,r=n.createRenderbuffer();return this.initStencilBuffer(r,e,t),n.bindRenderbuffer(S,r),n.framebufferRenderbuffer(y,n.STENCIL_ATTACHMENT,S,r),n.bindRenderbuffer(S,null),r}}],r&&Ks(n.prototype,r),o&&Ks(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o,i,a}(wr);function ll(e){return ll="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ll(e)}function ul(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,vl(r.key),r)}}function cl(e,t,n){return t=hl(t),function(e,t){if(t&&("object"==ll(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,fl()?Reflect.construct(t,n||[],hl(e).constructor):t.apply(e,n))}function fl(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(fl=function(){return!!e})()}function hl(e){return hl=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},hl(e)}function dl(e,t){return dl=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},dl(e,t)}function pl(e,t,n){return(t=vl(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function vl(e){var t=function(e,t){if("object"!=ll(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=ll(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==ll(t)?t:t+""}var ml=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:256,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),pl(n=cl(this,t,[e,o]),"camera",void 0),pl(n,"renderTextures",[]),pl(n,"drawToMips",void 0);var i=o.drawToMips||!1,a=o.nearPlane||.01,s=o.farPlane||100;n.drawToMips=i,i&&(n.autoGenerateMips=!1),n._size=r,n.camera=new Gs(a,s);for(var l=n.drawToMips?Math.floor(Math.log2(r)+1):1,u=0;u<l;u++)n.renderTextures[u]=new sl(e,r,r,o),r/=2;return n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&dl(e,t)}(t,e),n=t,r=[{key:"mipLevels",get:function(){return this.renderTextures.length}},{key:"renderToTexture",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this._size>>t;this.renderer.setSize(n,n),t>=this.mipLevels&&l.warn("RenderTextureCube: renderToTexture: mip level too high",t,this.mipLevels);var r=this.renderTextures[t];this.renderer.renderTarget=r;for(var o=0;o<6;o++)this.camera.setCubeMapSide(o),this.renderer.clear(),e(this.camera,o),this.bind(),this.renderer.context.copyTexImage2D(D+o,t,this.internalFormat,0,0,n,n,0);this.renderer.renderTarget=null,this.drawToMips||(this.mipsDirty=!0)}}],r&&ul(n.prototype,r),o&&ul(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(_s);function yl(e){return yl="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},yl(e)}function bl(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,gl(r.key),r)}}function gl(e){var t=function(e,t){if("object"!=yl(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=yl(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==yl(t)?t:t+""}function wl(e,t,n){return t=xl(t),function(e,t){if(t&&("object"==yl(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,_l()?Reflect.construct(t,n||[],xl(e).constructor):t.apply(e,n))}function _l(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(_l=function(){return!!e})()}function xl(e){return xl=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},xl(e)}function Sl(e,t){return Sl=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Sl(e,t)}var kl=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:2,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:2,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1,l=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),n=wl(this,t,[e]),a=Math.floor(a),s=Math.floor(s),l=Math.floor(l);var u=[],c=[],f=[],h=[],d=0,p=function(e,t,n,r,o,i,a,s,l,p,v){for(var m=i/l,y=a/p,b=i/2,g=a/2,w=s/2,_=l+1,x=p+1,S=0,k=new je,P=0;P<x;P++)for(var T=P*y-g,M=0;M<_;M++){var E=M*m-b;k[e]=E*r,k[t]=T*o,k[n]=w,c.push(k.x,k.y,k.z),k[e]=0,k[t]=0,k[n]=s>0?1:-1,f.push(k.x,k.y,k.z),h.push(M/l),h.push(1-P/p),S+=1}for(var O=0;O<p;O++)for(var j=0;j<l;j++){var D=d+j+_*O,A=d+j+_*(O+1),L=d+(j+1)+_*(O+1),C=d+(j+1)+_*O;u.push(D,A,C),u.push(A,L,C)}d+=S};return p("z","y","x",-1,-1,i,o,r,l,s),p("z","y","x",1,-1,i,o,-r,l,s),p("x","z","y",1,1,r,i,o,a,l),p("x","z","y",1,-1,r,i,-o,a,l),p("x","y","z",1,-1,r,o,i,a,s),p("x","y","z",-1,-1,r,o,-i,a,s),n.setPositions(Float32Array.from(c)),n.setUV0(Float32Array.from(h)
2),n.setNormals(Float32Array.from(f)),d<Math.pow(2,16)?n.setIndices(Uint16Array.from(u)):n.setIndices32(new Uint32Array(u)),n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Sl(e,t)}(t,e),n=t,r&&bl(n.prototype,r),o&&bl(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(de);function Pl(e){return Pl="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Pl(e)}function Tl(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Ml(r.key),r)}}function Ml(e){var t=function(e,t){if("object"!=Pl(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Pl(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Pl(t)?t:t+""}function El(e,t,n){return t=jl(t),function(e,t){if(t&&("object"==Pl(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Ol()?Reflect.construct(t,n||[],jl(e).constructor):t.apply(e,n))}function Ol(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Ol=function(){return!!e})()}function jl(e){return jl=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},jl(e)}function Dl(e,t){return Dl=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Dl(e,t)}var Al=function(e){function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),El(this,t,[e,n,n,n,r,r,r])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Dl(e,t)}(t,e),n=t,r&&Tl(n.prototype,r),o&&Tl(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(kl);function Ll(e){return Ll="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ll(e)}function Cl(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Bl(r.key),r)}}function zl(e,t,n){return t=Rl(t),function(e,t){if(t&&("object"==Ll(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Fl()?Reflect.construct(t,n||[],Rl(e).constructor):t.apply(e,n))}function Fl(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Fl=function(){return!!e})()}function Rl(e){return Rl=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Rl(e)}function Vl(e,t){return Vl=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Vl(e,t)}function Nl(e,t,n){return(t=Bl(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Bl(e){var t=function(e,t){if("object"!=Ll(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Ll(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Ll(t)?t:t+""}var Ul=function(e){function t(e,n,r){var o,i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Nl(o=zl(this,t,[e,{internalFormat:i?R:B,flipY:!0}]),"path",void 0),Nl(o,"convertToLDR",void 0),o.path=r,o.convertToLDR=i,n.add(o),o}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Vl(e,t)}(t,e),n=t,(r=[{key:"load",value:function(e){var t=this;
2!function(e,t,n,r){(r||Or.source).fetch(e,t,n)}(this.path,(function(n){var r=ls(new Uint8Array(n),t.convertToLDR);r&&t.setData(r.data,r.width,r.height,{flipY:!0}),e()}))}}])&&Cl(n.prototype,r),o&&Cl(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(wr);function Il(e){return Il="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Il(e)}function Wl(e){return function(e){if(Array.isArray(e))return Hl(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Hl(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Hl(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Hl(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Gl(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,$l(r.key),r)}}function ql(e,t,n){return t=Kl(t),function(e,t){if(t&&("object"==Il(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Xl()?Reflect.construct(t,n||[],Kl(e).constructor):t.apply(e,n))}function Xl(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Xl=function(){return!!e})()}function Yl(){return Yl="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=Kl(e)););return e}(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},Yl.apply(null,arguments)}function Kl(e){return Kl=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Kl(e)}function Zl(e,t){return Zl=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Zl(e,t)}function Jl(e,t,n){return(t=$l(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $l(e){var t=function(e,t){if("object"!=Il(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Il(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Il(t)?t:t+""}var Ql=function(e){function t(e,n,r){var o,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Jl(o=ql(this,t,[e,i]),"paths",void 0),Jl(o,"data",void 0),o.paths=Wl(r),n.add(o),o}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Zl(e,t)}(t,e),n=t,r=[{key:"load",value:function(e){var t=this;Er(this.paths,(function(n){Or.setTextureDataAtFirstUse?(t.data=n,t.dirty=!0):t.setImages(n),e()}),this.options)}},{key:"updateIfDirty",value:function(){if(this.data){var e=this.data;this.data=void 0,this.setImages(e)}var n,r,o,i,a;(n=t,r="updateIfDirty",o=this,a=Yl(Kl(1&(i=3)?n.prototype:n),r,o),2&i&&"function"==typeof a?function(e){return a.apply(o,e)}:a)([])}}],r&&Gl(n.prototype,r),o&&Gl(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(_s);function eu(e,t,n){for(var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=ir(t,n),i=o.getContext("2d"),a=i.createImageData(t,n),s=0;s<n;s++)for(var l=s*t*4,u=r?s*t*4:(n-s-1)*t*4,c=0;c<t;
2c++)a.data[l++]=e[u++],a.data[l++]=e[u++],a.data[l++]=e[u++],a.data[l++]=e[u++];return i.putImageData(a,0,0),o}function tu(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"image",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"png",r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;nu(eu(e.readPixels(),e.width,e.height),t,n,r)}function nu(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"image",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"png",r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;e.toBlob((function(e){if(e){var n=window.URL,r=document.createElement("a");r.href=n.createObjectURL(e),r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}}),"image/"+n,r)}function ru(e){return ru="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ru(e)}function ou(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,au(r.key),r)}}function iu(e,t,n){return(t=au(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function au(e){var t=function(e,t){if("object"!=ru(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=ru(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==ru(t)?t:t+""}Nt("generateSkybox.vs.glsl","#version 300 es\n\nin vec3 aPos;\n\nout vec3 vWorld;\n\nuniform mat4 _ViewProjection;\n\nvoid main(void) {\n    gl_Position = _ViewProjection * vec4(aPos, 1.0);\n\n    vWorld = aPos;\n}"),Nt("generateSkybox.fs.glsl","//https://github1s.com/Fewes/MinimalAtmosphere/blob/master/Assets/Atmosphere/Shaders/Atmosphere.cginc#L1-L206\n\n#version 300 es\nprecision highp float;\n\n// Constants\n#define EPS 1e-6\n#define PI 3.14159265359\n#define PLANET_RADIUS 6371000.0\n#define ATMOSPHERE_HEIGHT 100000.0\n#define RAYLEIGH_HEIGHT (ATMOSPHERE_HEIGHT * 0.08)\n#define MIE_HEIGHT (ATMOSPHERE_HEIGHT * 0.012)\n\nconst vec3 PLANET_CENTER = vec3(0.0, -PLANET_RADIUS, 0.0);\nconst vec3 C_RAYLEIGH = vec3(5.802, 13.558, 33.100) * 1e-6;\nconst vec3 C_MIE = vec3(3.996, 3.996, 3.996) * 1e-6;\nconst vec3 C_OZONE = vec3(0.650, 1.881, 0.085) * 1e-6;\n\nconst float ATMOSPHERE_DENSITY = 1.0;\n\n// Uniforms\nuniform mat4 viewProjection;\nuniform vec3 lightDir;\nuniform vec3 lightColor;\nuniform float brightness;\nuniform float horizon;\n\n// Varying inputs\nin vec3 vWorld;\nout vec4 fragColor;\n\n// Functions\nvec2 SphereIntersection(vec3 rayStart, vec3 rayDir, vec3 sphereCenter, float sphereRadius) {\n    vec3 adjustedStart = rayStart - sphereCenter;\n    float a = dot(rayDir, rayDir);\n    float b = 2.0 * dot(adjustedStart, rayDir);\n    float c = dot(adjustedStart, adjustedStart) - (sphereRadius * sphereRadius);\n    float d = b * b - 4.0 * a * c;\n\n    if (d < 0.0) {\n        return vec2(-1.0);\n    }\n    return vec2(-b - sqrt(d), -b + sqrt(d)) / (2.0 * a);\n}\n\nvec2 PlanetIntersection(vec3 rayStart, vec3 rayDir) {\n    return SphereIntersection(rayStart, rayDir, PLANET_CENTER, PLANET_RADIUS);\n}\n\nvec2 AtmosphereIntersection(vec3 rayStart, vec3 rayDir) {\n    return SphereIntersection(rayStart, rayDir, PLANET_CENTER, PLANET_RADIUS + ATMOSPHERE_HEIGHT);\n}\n\nfloat PhaseRayleigh(float costh) {\n    return 3.0 * (1.0 + costh * costh) / (16.0 * PI);\n}\n\nfloat PhaseMie(float costh, float g) {\n    float g_clamped = min(g, 0.9381);\n    float k = 1.55 * g_clamped - 0.55 * g_clamped * g_clamped * g_clamped;\n    float kcosth = k * costh;\n    return (1.0 - k * k) / ((4.0 * PI) * (1.0 - kcosth) * (1.0 - kcosth));\n}\n\nfloat AtmosphereHeight(vec3 positionWS) {\n    return distance(positionWS, PLANET_CENTER) - PLANET_RADIUS;\n}\n\nfloat DensityRayleigh(float h) {\n    return exp(-max(0.0, h / RAYLEIGH_HEIGHT));\n}\n\nfloat DensityMie(float h) {\n    return exp(-max(0.0, h / MIE_HEIGHT));\n}\n\nfloat DensityOzone(float h) {\n    return max(0.0, 1.0 - abs(h - 25000.0) / 15000.0);\n}\n\nvec3 AtmosphereDensity(float h) {\n    return vec3(DensityRayleigh(h), DensityMie(h), DensityOzone(h));\n}\n\nvec3 IntegrateOpticalDepth(vec3 rayStart, vec3 rayDir) {\n    vec2 intersection = AtmosphereIntersection(rayStart, rayDir);\n    float rayLength = intersection.y;\n\n    int sampleCount = 8;\n    float stepSize = rayLength / float(sampleCount);\n\n    vec3 opticalDepth = vec3(0.0);\n\n    for (int i = 0;
2 i < sampleCount; i++) {\n        vec3 localPosition = rayStart + rayDir * (float(i) + 0.5) * stepSize;\n        float localHeight = AtmosphereHeight(localPosition);\n        vec3 localDensity = AtmosphereDensity(localHeight);\n\n        opticalDepth += localDensity * stepSize;\n    }\n\n    return opticalDepth;\n}\n\nvec3 Absorb(vec3 opticalDepth) {\n    return exp(-(opticalDepth.x * C_RAYLEIGH + opticalDepth.y * C_MIE * 1.1 + opticalDepth.z * C_OZONE) * ATMOSPHERE_DENSITY);\n}\n\nvec4 IntegrateScattering(\nvec3 rayStart,\nvec3 rayDir,\nfloat rayLength,\nvec3 lightDir,\nvec3 lightColor\n) { // Returns vec4 with rgb=scattering, a=transmittance\n    float rayHeight = AtmosphereHeight(rayStart);\n    float sampleDistributionExponent = 1.0 + clamp(1.0 - rayHeight / ATMOSPHERE_HEIGHT, 0.0, 1.0) * 8.0;\n\n    vec2 intersection = AtmosphereIntersection(rayStart, rayDir);\n    float adjustedRayLength = min(rayLength, intersection.y);\n    vec3 adjustedRayStart = rayStart;\n\n    if (intersection.x > 0.0) {\n        adjustedRayStart += rayDir * intersection.x;\n        adjustedRayLength -= intersection.x;\n    }\n\n    float costh = dot(rayDir, lightDir);\n    float phaseR = PhaseRayleigh(costh);\n    float phaseM = PhaseMie(costh, 0.85);\n\n    int sampleCount = 64;\n    vec3 opticalDepth = vec3(0.0);\n    vec3 rayleigh = vec3(0.0);\n    vec3 mie = vec3(0.0);\n    float prevRayTime = 0.0;\n\n    for (int i = 0; i < sampleCount; i++) {\n        float rayTime = pow(float(i) / float(sampleCount), sampleDistributionExponent) * adjustedRayLength;\n        float stepSize = rayTime - prevRayTime;\n\n        vec3 localPosition = adjustedRayStart + rayDir * rayTime;\n        float localHeight = AtmosphereHeight(localPosition);\n        vec3 localDensity = AtmosphereDensity(localHeight);\n\n        opticalDepth += localDensity * stepSize;\n\n        vec3 viewTransmittance = Absorb(opticalDepth);\n        vec3 opticalDepthLight = IntegrateOpticalDepth(localPosition, lightDir);\n        vec3 lightTransmittance = Absorb(opticalDepthLight);\n\n        rayleigh += viewTransmittance * lightTransmittance * phaseR * localDensity.x * stepSize;\n        mie += viewTransmittance * lightTransmittance * phaseM * localDensity.y * stepSize;\n\n        prevRayTime = rayTime;\n    }\n\n    vec3 scattering = (rayleigh * C_RAYLEIGH + mie * C_MIE) * lightColor;\n\n    return vec4(scattering, 1.0);\n}\n\nvoid main() {\n    vec3 n = normalize(vWorld);\n    vec3 p = n * PLANET_RADIUS;\n    vec3 c = IntegrateScattering(vec3(0.0), n, 100000.0, lightDir, lightColor * brightness).xyz;\n\n    if (horizon > .5){\n        c = mix(c, vec3(.3), smoothstep(0., -.05, n.y));\n    }\n\n    fragColor = vec4(c, 1.0);\n}\n\n");var su=function(){return e=function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),iu(this,"renderer",void 0),iu(this,"cube",void 0),iu(this,"material",void 0),iu(this,"sunAngleX",void 0),iu(this,"sunAngleY",void 0),iu(this,"darkLowerHemisphereParam",void 0),iu(this,"handleDirty",(function(){})),this.renderer=t,this.cube=new Al(this.renderer,1),this.material=new qn(this.renderer,n,"generateSkybox"),this.material.setCullingDisabled()},t=[{key:"init",value:function(e,t,n){this.handleDirty=n;var r=e.addGroup("Atmosphere",this.material);r.addShaderParamColor("lightColor",Ge.fromHex(t.lightColorHex).vector3,(function(){return n()})),r.addShaderParamFloat("brightness",t.brightness,0,4*t.brightness,(function(){return n()})),this.sunAngleX=r.addParamFloat("sunAngleX",t.sunAngleX,-.05,.5*Math.PI,(function(){return n()})),this.sunAngleY=r.addParamFloat("sunAngleY",t.sunAngleY,-Math.PI,Math.PI,(function(){return n()})),this.darkLowerHemisphereParam=r.addShaderParamBool("horizon",t.horizon,(function(){return n()}))}},{key:"generate",value:function(e){var t=this;this.material.setVector3("lightDir",this.lightDirection),e.renderToTexture((function(e){t.material.setMatrix("_ViewProjection",e.viewProjection),t.renderer.draw(t.cube,t.material)}))}},{key:"lightDirection",get:function(){var e=new Vn;return e.rotateY(this.sunAngleY.value),e.rotateX(-this.sunAngleX.value),e.forward},set:function(e){var t=e.clone().multiplyScalar(-1);
2this.sunAngleY.setValue(Math.atan2(t.x,t.z),!1,!0),this.sunAngleX.setValue(Math.asin(t.y),!1,!0),this.handleDirty()}},{key:"setAngles",value:function(e,t){this.sunAngleX.setValue(e,!1,!0),this.sunAngleY.setValue(t,!1,!0),this.handleDirty()}},{key:"darkLowerHemisphere",set:function(e){this.darkLowerHemisphereParam.setValue(e)}}],t&&ou(e.prototype,t),n&&ou(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function lu(e){return lu="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},lu(e)}function uu(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return cu(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?cu(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function cu(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function fu(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function hu(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?fu(Object(n),!0).forEach((function(t){pu(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):fu(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function du(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,vu(r.key),r)}}function pu(e,t,n){return(t=vu(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function vu(e){var t=function(e,t){if("object"!=lu(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=lu(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==lu(t)?t:t+""}Nt("hdrToPbr.vs.glsl","#version 300 es\n\nin vec3 aPos;\n\nout vec3 vWorld;\n\nuniform mat4 _ViewProjection;\n\nvoid main(void) {\n    gl_Position = _ViewProjection * vec4(aPos, 1.0);\n\n    vWorld = aPos;\n}"),Nt("hdrToPbr.fs.glsl","precision highp float;\n#version 300 es\n#define textureCube texture\n#define textureCubeLod textureLod\nout vec4 colorOut;\n\nin vec3 vWorld;\n\nuniform samplerCube  _CubeSampler;\nuniform float _MipBias;\n\n#define PI 3.14159265359\n#define GOLDEN_ANGLE 2.39996322;\n#define HASHSCALE3 vec3(443.897, 441.423, 437.195)\nfloat hash13(vec3 p3)\n{\n    p3  = fract(p3 * 443.8975);\n    p3 += dot(p3, p3.yzx + 19.19);\n    return fract((p3.x + p3.y) * p3.z);\n}\n\n#ifdef PREFILTER_SPECULAR\nuniform float _Roughness;\nuniform float _SourceDim;\nuniform float _CurrentMip;\nuniform float _MipScale;\n//uniform float _UseWeight;\nuniform float _UseImportanceBasedMip;\n\n//http://www.rorydriscoll.com/2009/01/07/better-sampling/\n\n//biased concentration towards centre\nvec3 FibonacciImportanceSample (float i, float sampleCount, float roughness, float rotationOffset){\n    float phase = i / sampleCount;\n    float a = roughness * roughness;\n    //importance sampling\n    float z = sqrt((1. - phase) / (1. + (a*a - 1.) *phase));\n    float r = sqrt(1. - z * z);\n    float phi = i * GOLDEN_ANGLE;\n    phi += rotationOffset;\n    return vec3(sin(phi) * r, cos(phi) * r, z);\n}\n\nfloat D_GGX_Divide_Pi (float NdotH, float m) {\n    float m2 = m * m;\n    float f = (NdotH * m2 - NdotH) * NdotH + 1.;\n    return m2 / (f * f * PI);\n}\n\nvec3 preFilterSpiral(samplerCube envMap, float roughness, vec3 N){\n    vec3 prefilteredColor = vec3(0.0);\n    float totalWeight = 0.;\n\n    // Compute a tangent frame and rotate the half vector to world space\n    vec3 vUp = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0);\n    vec3 vTangentX = normalize(cross(vUp, N));\n    vec3 vTangentY = cross(N, vTangentX);\n    mat3 tangentToWorld = mat3(vTangentX, vTangentY, N);\n\n    float saTexel = 4.0 * PI / (6.0 * _SourceDim * _SourceDim);\n\n    float rotationOffset = hash13(N) * PI * 2.;\n\n    if (roughness > 0.){\n        for (int i = 0; i < SAMPLE_COUNT; i++)\n        {\n            vec3 hemisphere = FibonacciImportanceSample(float(i), float(SAMPLE_COUNT), roughness, rotationOffset);\n            vec3 L = tangentToWorld * hemisphere;\n            //not sure if this should be here; it is already importance sampled\n            //\t\tfloat weight = (_UseWeight > .5)? hemisphere.z *  hemisphere.z: 1.;\n\n            //\t\tif (weight > 0.0) {\n            float NdotH = hemisphere.z;\n            float D = D_GGX_Divide_Pi (NdotH, roughness);\n            float pdf = (D * NdotH / (4. * NdotH)) + 0.0001;\n\n            float saSample = 1.0 / (float(SAMPLE_COUNT) * pdf + 0.00001);\n\n            float mipLevel = max(_MipScale * log2(saSample / saTexel) + _MipBias, 0.0);\n\n            //this shows the effect of the importance based mip level. It can be very visible when using environment maps with bright, small highlights\n            if (_UseImportanceBasedMip < .5)mipLevel = _CurrentMip + 1. + _MipBias;\n\n            vec3 c = textureCubeLod(envMap, L, mipLevel).rgb;\n\n            prefilteredColor += c;\n            totalWeight += 1.;\n            //\t\t}\n        }\n\n        return prefilteredColor / totalWeight;\n    } else {\n        return textureCubeLod(envMap, N, 0.).rgb;\n    }\n}\n\n//https://placeholderart.wordpress.com/2015/07/28/implementation-notes-runtime-environment-map-filter
2ing-for-image-based-lighting/\n//https://learnopengl.com/PBR/IBL/Specular-IBL\n//ttps://blog.selfshadow.com/publications/s2013-shading-course/karis/s2013_pbs_epic_notes_v2.pdf\nvec4 prefilterSpecular(void) {\n    return vec4(preFilterSpiral(_CubeSampler, _Roughness, normalize(vWorld)), 1.);\n}\n#endif\n\n#ifdef PREFILTER_DIFFUSE\n\n//http://www.rorydriscoll.com/2009/01/07/better-sampling/\n\n//biased concentration towards centre\nvec3 FibonacciImportanceSample (float i, float sampleCount, float rotationOffset){\n    float phase = i / sampleCount;\n    float z = sqrt(1. - phase);\n    float r = sqrt(1. - z * z);\n    float phi = i * GOLDEN_ANGLE;\n    phi += rotationOffset;\n    return vec3(sin(phi) * r, cos(phi) * r, z);\n}\n\n//https://placeholderart.wordpress.com/2015/07/28/implementation-notes-runtime-environment-map-filtering-for-image-based-lighting/\n//https://learnopengl.com/PBR/IBL/Specular-IBL\nvec4 prefilterDiffuse() {\n    vec3 N = normalize(vWorld);\n\n    vec3 prefilteredColor = vec3(0.0);\n    float totalWeight = 0.;\n\n    // Compute a tangent frame and rotate the half vector to world space\n    vec3 vUp = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0);\n    vec3 vTangentX = normalize(cross(vUp, N));\n    vec3 vTangentY = cross(N, vTangentX);\n    mat3 tangentToWorld = mat3(vTangentX, vTangentY, N);\n\n    float rotationOffset = hash13(N) * PI * 2.;\n\n    for (int i = 0; i < SAMPLE_COUNT_DIFFUSE; i++)\n    {\n        vec3 hemisphere = FibonacciImportanceSample(float(i), float(SAMPLE_COUNT_DIFFUSE), rotationOffset);\n        vec3 L = tangentToWorld * hemisphere;\n        //not sure if this should be here; it is already importance sampled\n        float weight = hemisphere.z;\n\n        if (weight > 0.0) {\n            vec3 c = textureCubeLod(_CubeSampler, L, _MipBias).rgb;\n\n            prefilteredColor += c * weight;\n            totalWeight += weight;\n        }\n    }\n    return vec4(prefilteredColor / totalWeight, 1.);\n}\n#endif\n\n#ifdef FLOAT_TO_RGBE\nvec4 floatToRGBE() {\n    vec3 c = textureCube(_CubeSampler, normalize(vWorld)).rgb;\n    float m = max(max(c.r, c.g), c.b);\n    float e = ceil(log2(m));\n    c /= exp2(e);\n    return vec4(c, (e+128.)/255.);\n}\n#endif\n\n#ifdef RGBE_TO_FLOAT\nvec4 RGBEToFloat() {\n    vec4 c = textureCube(_CubeSampler, normalize(vWorld));\n    return vec4(c.rgb * exp2(c.a * 255. - 128.), 1.);\n}\n#endif\n\n#ifdef SPHERICAL_TO_CUBE\nuniform sampler2D  _Environment;\n\nconst vec2 invAtan = vec2(0.1591, 0.3183);\nvec4 sphericalToCube()\n{\n    vec3 v = normalize(vWorld);\n    vec2 uv = vec2(atan(v.z, v.x), asin(v.y));\n    uv = uv * invAtan + .5;\n    return vec4(texture(_Environment, uv).xyz, 1.);\n}\n#endif\n\nvoid main(void) {\n    #ifdef PREFILTER_SPECULAR\n    colorOut = prefilterSpecular();\n    #endif\n    #ifdef PREFILTER_DIFFUSE\n    colorOut = prefilterDiffuse();\n    #endif\n    #ifdef FLOAT_TO_RGBE\n    colorOut = floatToRGBE();\n    #endif\n    #ifdef RGBE_TO_FLOAT\n    colorOut = RGBEToFloat();\n    #endif\n    #ifdef SPHERICAL_TO_CUBE\n    colorOut = sphericalToCube();\n    #endif\n}\n"),Nt("brdfLut.vs.glsl","#version 300 es\n\nin vec3 aPos;\nin vec2 aUV0;\n\nout vec2 vUV;\n\nvoid main(void) {\n    gl_Position = vec4(aPos.xy, 0., 1.);\n    vUV = aUV0;\n}\n"),Nt("brdfLut.fs.glsl","#version 300 es\nprecision highp float;\n\nout vec4 fragColor;\nin vec2 vUV;\n\nconst float PI = 3.1415926536;\nconst uint NUM_SAMPLES = 2048u;\nconst float GOLDEN_ANGLE = 2.3999632297;\n\n// Hash function from https://www.shadertoy.com/view/4djSRW\nfloat hash21(vec2 p) {\n    vec3 p3 = fract(vec3(p.xyx) * vec3(.1031, .1030, .0973));\n    p3 += dot(p3, p3.yzx + 33.33);\n    return fract((p3.x + p3.y) * p3.z);\n}\n\nvec3 fibonacciImportanceSample(float i, float sampleCount, float roughness, float offset) {\n    float phase = i / sampleCount;\n    float alpha = roughness * roughness;\n    float phi = i * GOLDEN_ANGLE + offset;\n    float cosTheta = sqrt((1.0 - phase) / (1.0 + (alpha*alpha - 1.0) * phase));\n    float sinTheta = sqrt(1.0 - cosTheta * cosTheta);\n    return vec3(sinTheta * cos(phi), sinTheta * sin(phi), cosTheta);\n}\n\nvec2 Hammersley(uint i, uint N) {\n    uint bits = (i << 16u) | (i >> 16u);\n    bits = ((bits & 0x55555555u) << 1u) | ((bits & 0xAAAAAAAAu) >> 1u);\n    bits = ((bits & 0x33333333u) << 2u) | ((bits & 0xCCCCCCCCu) >> 2u);\n    bits = ((bits & 0x0F0F0F0Fu) << 4u) | ((bits & 0xF0F0F0F0u) >> 4u);\n    bits = ((bits & 0x00FF00FFu) << 8u) | ((bits & 0xFF00FF00u) >> 8u);\n    float rdi = float(bits) * 2.3283064365386963e-10;\n    return vec2(float(i) /float(N), rdi);\n}\n\nvec3 ImportanceSampleGGX(vec2 Xi, float roughness, vec3 N) {\n    float a = roughness * roughness;\n    float phi = 2.0 * PI * Xi.x;\n    float cosTheta = sqrt((1.0 - Xi.y) / (1.0 + (a*a - 1.0) * Xi.y));\n    float sinTheta = sqrt(1.0 - cosTheta * cosTheta);\n\n    vec3 H;\n    H.x = sinTheta * cos(phi);\n    H.y = sinTheta * sin(phi);\n    H.z = cosTheta;\n    return H;\n}\n\nfloat G_SchlicksmithGGX(float dotNL, float dotNV, float roughness) {\
2n    float k = (roughness * roughness) / 2.0;\n    float GL = dotNL / (dotNL * (1.0 - k) + k);\n    float GV = dotNV / (dotNV * (1.0 - k) + k);\n    return GL * GV;\n}\n\nvec2 BRDF(vec2 uv) {\n    float NoV = uv.x;\n    float roughness = uv.y;\n    vec3 N = vec3(0.0, 0.0, 1.0);\n    vec3 V = vec3(sqrt(1.0 - NoV*NoV), 0.0, NoV);\n    float offset = hash21(uv) * PI * 2.0;\n\n    vec2 LUT = vec2(0.0);\n    for (uint i = 0u; i < NUM_SAMPLES; i++) {\n        //\t\tvec3 H = ImportanceSampleGGX(Hammersley(i, NUM_SAMPLES), roughness, N);\n\n        vec3 H = fibonacciImportanceSample(float(i), float(NUM_SAMPLES), roughness, offset);\n        vec3 L = 2.0 * dot(V, H) * H - V;\n\n        float dotNL = max(dot(N, L), 0.0);\n        float dotNV = max(dot(N, V), 0.0);\n        float dotVH = max(dot(V, H), 0.0);\n        float dotNH = max(dot(H, N), 0.0);\n\n        if (dotNL > 0.0) {\n            float G = G_SchlicksmithGGX(dotNL, dotNV, roughness);\n            float G_Vis = (G * dotVH) / (dotNH * dotNV);\n            float Fc = pow(1.0 - dotVH, 5.0);\n            LUT += vec2((1.0 - Fc) * G_Vis, Fc * G_Vis);\n        }\n    }\n    return LUT / float(NUM_SAMPLES);\n}\n\nvoid main() {\n    vec2 brdf0 = BRDF(vUV);\n    fragColor = vec4(brdf0, 0.0, 1.0);\n}\n");var mu={loadFromHdr:!1,specularResolution:256,diffuseResolution:64,atmosphereOptions:{lightColorHex:"#ffffff",sunAngleX:.2,sunAngleY:0,brightness:30,horizon:!1},sampleCountSpecular:2048,sampleCountDiffuse:1024},yu=function(){return e=function e(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),pu(this,"mipmapWithMaxRoughness",void 0),pu(this,"specularCube",void 0),pu(this,"diffuseCube",void 0),pu(this,"cubeFloat",void 0),pu(this,"brdfLutTexture",void 0),pu(this,"hdrTexture",void 0),pu(this,"specularFormat",U),pu(this,"renderer",void 0),pu(this,"brdfLutMaterial",void 0),pu(this,"prefilterSpecularMaterial",void 0),pu(this,"prefilterDiffuseMaterial",void 0),pu(this,"floatToRgbeMaterial",void 0),pu(this,"rgbeToFloatMaterial",void 0),pu(this,"sphericalToCubeMaterial",void 0),pu(this,"cubeMesh",void 0),pu(this,"rgbeCube",void 0),pu(this,"atmosphereGenerator",void 0),pu(this,"options",void 0),pu(this,"atmosphereUpdateQueued",!1),this.renderer=t,this.options=hu(hu({},mu),o),this.options.loadFromHdr="string"==typeof r||this.options.loadFromHdr,(this.loadFromHdr||l.ENABLED)&&(this.sphericalToCubeMaterial=new qn(this.renderer,n,"hdrToPbr"),this.sphericalToCubeMaterial.addShaderDefines("SPHERICAL_TO_CUBE")),this.loadFromHdr?this.hdrTexture=new Ul(this.renderer,n,r):null!=r?this.loadRgbeCube(n,r):this.atmosphereGenerator=new su(this.renderer,n),this.prefilterSpecularMaterial=new qn(this.renderer,n,"hdrToPbr"),this.prefilterSpecularMaterial.addShaderDefines("PREFILTER_SPECULAR"),this.prefilterSpecularMaterial.setCullingDisabled(),this.prefilterSpecularMaterial.addShaderDefines(["SAMPLE_COUNT",this.options.sampleCountSpecular]),this.prefilterSpecularMaterial.addShaderDefines(["SAMPLE_COUNT_DIFFUSE",this.options.sampleCountDiffuse]),this.prefilterDiffuseMaterial=new qn(this.renderer,n,"hdrToPbr"),this.prefilterDiffuseMaterial.addShaderDefines("PREFILTER_DIFFUSE"),this.prefilterDiffuseMaterial.setCullingDisabled(),this.prefilterDiffuseMaterial.addShaderDefines(["SAMPLE_COUNT",this.options.sampleCountSpecular]),this.prefilterDiffuseMaterial.addShaderDefines(["SAMPLE_COUNT_DIFFUSE",this.options.sampleCountDiffuse]),l.ENABLED&&(this.floatToRgbeMaterial=new qn(this.renderer,n,"hdrToPbr"),this.floatToRgbeMaterial.addShaderDefines("FLOAT_TO_RGBE"),this.floatToRgbeMaterial.setCullingDisabled()),this.mipmapWithMaxRoughness=Math.log2(this.specularResolution)-4,this.cubeMesh=new Al(this.renderer),this.brdfLutTexture=new sl(this.renderer,256,256,{internalFormat:Z,linear:!0,clampToEdge:!0}),this.brdfLutMaterial=new qn(this.renderer,n,"brdfLut"),this.loadFromHdr,this.specularCube=new ml(this.renderer,this.specularResolution,{internalFormat:this.specularFormat,linear:!0,useMips:!0,drawToMips:!0}
2),this.diffuseCube=new ml(this.renderer,this.diffuseResolution,{internalFormat:this.specularFormat,linear:!0,useMips:!1,drawToMips:!1}),this.cubeFloat=new ml(this.renderer,this.specularResolution,{internalFormat:U,linear:!0,useMips:!0,drawToMips:!1})},t=[{key:"specularResolution",get:function(){return this.options.specularResolution}},{key:"diffuseResolution",get:function(){return this.options.diffuseResolution}},{key:"loadFromHdr",get:function(){return this.options.loadFromHdr}},{key:"init",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.65;l.ENABLED&&this.initDropZone(this.renderer.canvas);var o=e.addGroup("environment"),i=o.addGroup("specular",this.prefilterSpecularMaterial);i.addShaderParamBool("_UseImportanceBasedMip",!0),i.addShaderParamFloat("_MipBias",n,0,3),i.addShaderParamFloat("_MipScale",r,0,2),i.addButton("generate",(function(){return t.generateSpecular()})),(i=o.addGroup("diffuse",this.prefilterDiffuseMaterial)).addShaderParamFloat("_MipBias",7,0,8),i.addButton("generate",(function(){return t.generateDiffuse()})),i.addButton("exportRGBE",(function(){return t.exportRgbeCube(t.cubeFloat)})),o.collapsed=!0,this.renderer.blit(null,this.brdfLutTexture,this.brdfLutMaterial),this.atmosphereGenerator?(this.atmosphereGenerator.init(o,this.options.atmosphereOptions,(function(){t.updateAtmosphere()})),this.updateAtmosphere()):this.loadFromHdr?this.setHdrTexture(this.hdrTexture,this.cubeFloat):(this.rgbeCubeToFloatCube(this.rgbeCube,this.cubeFloat),this.handleSourceCubeUpdated())}},{key:"updateAtmosphere",value:function(){var e=this;this.atmosphereUpdateQueued||(this.atmosphereUpdateQueued=!0,setTimeout((function(){return e.delayedAtmosphereUpdate()}),1))}},{key:"delayedAtmosphereUpdate",value:function(){var e;null===(e=this.atmosphereGenerator)||void 0===e||e.generate(this.cubeFloat),this.handleSourceCubeUpdated(),this.atmosphereUpdateQueued=!1}},{key:"processHDR",value:function(e){var t=this,n=new FileReader;n.onload=function(e){var n,r=ls(new Uint8Array(null===(n=e.target)||void 0===n?void 0:n.result));if(r){var o=new wr(t.renderer,{internalFormat:B,linear:!0});o.setData(r.data,r.width,r.height,{flipY:!0}),t.setHdrTexture(o,t.cubeFloat)}},n.readAsArrayBuffer(e)}},{key:"setHdrTexture",value:function(e,t){this.sphericalToCube(e,t),e.destruct(),this.handleSourceCubeUpdated()}},{key:"handleSourceCubeUpdated",value:function(){this.generateSpecular(),this.generateDiffuse()}},{key:"sphericalToCube",value:function(e,t){var n=this;return this.sphericalToCubeMaterial.setCullingDisabled(),this.sphericalToCubeMaterial.depthWrite=!1,this.sphericalToCubeMaterial.setTexture("_Environment",e),t.renderToTexture((function(e){n.sphericalToCubeMaterial.setMatrix("_ViewProjection",e.viewProjection),n.renderer.draw(n.cubeMesh,n.sphericalToCubeMaterial)})),t}},{key:"loadRgbeCube",value:function(e,t){var n,r=[],o=uu(Gs.sides);try{for(o.s();!(n=o.n()).done;){var i=n.value;r.push(t("./"+i+".webp"))}}catch(e){o.e(e)}finally{o.f()}this.rgbeCube=new Ql(this.renderer,e,r),this.rgbeToFloatMaterial=new qn(this.renderer,e,"hdrToPbr"),this.rgbeToFloatMaterial.addShaderDefines("RGBE_TO_FLOAT"),this.rgbeToFloatMaterial.setCullingDisabled()}},{key:"initDropZone",value:function(e){var t=this;e.ondragover=function(e){return e.preventDefault(),!1},e.ondrop=function(e){e.preventDefault();var n,r=uu(e.dataTransfer.files);try{for(r.s();!(n=r.n()).done;){var o=n.value;"hdr"==o.name.split(".").pop()&&t.processHDR(o)}}catch(e){r.e(e)}finally{r.f()}}}},{key:"generateSpecular",value:function(){for(var e=this,t=this.specularCube,n=function(n){t.renderToTexture((function(t){return e.drawForMipLevel(e.cubeFloat,t,e.prefilterSpecularMaterial,n)}),n)},r=0;r<t.mipLevels;r++)n(r)}},{key:"generateDiffuse",value:function(){var e=this;this.diffuseCube.renderToTexture((function(t){return e.drawForMipLevel(e.cubeFloat,t,e.prefilterDiffuseMaterial,0)}))}},{key:"drawForMipLevel",value:function(e,t,n,r){e.bind();var o=Math.min(1,r/this.mipmapWithMaxRoughness);n.setFloat("_CurrentMip",r),n.setFloat("_Roughness",o),n.setTexture("_CubeSampler",e),n.setFloat("_SourceDim",e.size),n.setMatrix("_ViewProjection",t.viewProjection),this.renderer.draw(this.cubeMesh,n)}},{key:"exportRgbeCube",value:function(e){var t=new sl(this.renderer,this.specularResolution,this.specularResolution),n=new Gs;this.floatToRgbeMaterial.setTexture("_CubeSampler",e);for(var r=0;r<6;r++)this.renderer.renderTarget=t,n.setCubeMapSide(r),this.floatToRgbeMaterial.setMatr
2ix("_ViewProjection",n.viewProjection),this.renderer.draw(this.cubeMesh,this.floatToRgbeMaterial),this.renderer.renderTarget=null,tu(t,n.getSideName(r));t.destruct()}},{key:"rgbeCubeToFloatCube",value:function(e,t){var n=this,r=this.rgbeToFloatMaterial;t.renderToTexture((function(t){r.setTexture("_CubeSampler",e),r.setMatrix("_ViewProjection",t.viewProjection),n.renderer.draw(n.cubeMesh,r)}))}}],t&&du(e.prototype,t),n&&du(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();new mn(0,.8,.6,-.8,.36,-.48,-.6,-.48,.64);function bu(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.618,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:8,r=0,o=1,i=1,a=0;a<n;a++)r+=Math.sin(e*i)*o,i/=t,o*=t;return r}function gu(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.618,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:8,r=new je;return r.x=bu(e,t,n),r.y=bu(.98765*e+2.3999632,t,n),r.z=bu(1.23456*e-2.3999632,t,n),r}function wu(e){return wu="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},wu(e)}function _u(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Su(r.key),r)}}function xu(e,t,n){return(t=Su(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Su(e){var t=function(e,t){if("object"!=wu(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=wu(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==wu(t)?t:t+""}var ku=function(){return e=function e(){var t=this;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),xu(this,"enabled",!1),xu(this,"isDeviceAvailable",!1),xu(this,"eventBind",!1),xu(this,"target",new _n),xu(this,"screen",new _n),xu(this,"worldRot",new _n(-Math.sqrt(.5),0,0,Math.sqrt(.5))),"undefined"!=typeof window)if("undefined"!=typeof navigator&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&"undefined"!=typeof DeviceOrientationEvent&&"function"==typeof DeviceMotionEvent.requestPermission){var n=!1;window.addEventListener("click",(function(){l.ENABLED&&l.log("Gyroscope: handle click"),n||(n=!0,DeviceOrientationEvent.requestPermission().then((function(e){l.ENABLED&&l.log("Gyroscope: requestPermission",e),"granted"==e&&t.enable()})).catch((function(e){})))}))}else this.enable()},t=[{key:"rotation",get:function(){return this.target.clone()}},{key:"enable",value:function(){var e=this;"undefined"!=typeof window&&"ondeviceorientation"in window?(l.ENABLED&&l.log("Gyroscope: ondeviceorientation found on window"),this.isDeviceAvailable=!0):l.warn("Gyroscope: no ondeviceorientation in window"),this.isDeviceAvailable&&(this.eventBind||(l.ENABLED&&l.log("Gyroscope: addEventListener : deviceorientation"),window.addEventListener("deviceorientation",(function(t){e.handleDeviceOrientation(t)}),!1),this.eventBind=!0),this.enabled=!0)}},{key:"isEnabled",value:function(){return this.enabled&&this.isDeviceAvailable}},{key:"disable",value:function(){this.enabled=!1}},{key:"destruct",value:function(){}},{key:"handleDeviceOrientation",value:function(e){if(this.enabled){var t=window.orientation||0;this.target.identity(),this.target.rotateY(ke(e.alpha)),this.target.rotateX(ke(e.beta)),this.target.rotateZ(-ke(e.gamma));var n=-t/2*Math.PI/180;this.screen.setValues(0,Math.sin(n),0,Math.cos(n)),this.target.multiply(this.screen),this.target.multiply(this.worldRot)}}}],t&&_u(e.prototype,t),n&&_u(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function Pu(e){return Pu="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Pu(e)}function Tu(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Eu(r.key),r)}}function Mu(e,t,n){return(t=Eu(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Eu(e){var t=function(e,t){if("object"!=Pu(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Pu(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Pu(t)?t:t+""}var Ou={},ju={},Du=!0,Au=!1;function Lu(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"undefined"!=typeof window?window:null;!Au&&e&&(Au=!0,e.addEventListener("keydown",(function(e){var t;if(Du){var n=e.key.toLowerCase();Ou[n]=!0,null===(t=ju[n])||void 0===t||t.forEach((function(e){return e()}))}}),!1),e.addEventListener("keyup",(function(e){if(Du){var t=e.key.toLowerCase();Ou[t]=!1}}),!1),e.addEventListener("blur",(function(){return Cu()}),!1),e.addEventListener("contextmenu",(function(){return Cu()}),!1))}function Cu(){Object.keys(Ou).forEach((function(e){return Ou[e]=!1}))}var zu={active:function(e){Du!==e&&(Du=e,e||Cu())},cancel:Cu,getKeyCodeDown:function(e){return Lu(),!!Ou[e.toLowerCase()]},addKeyHitEvent:function(e,t){var n;Lu();var r=e.toLowerCase();ju[r]=ju[r]||[],null===(n=ju[r])||void 0===n||n.push(t)}};function Fu(e){return Fu="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Fu(e)}function Ru(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Wu(r.key),r)}}function Vu(e,t,n){return t=Bu(t),function(e,t){if(t&&("object"==Fu(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Nu()?Reflect.construct(t,n||[],Bu(e).constructor):t.apply(e,n))}function Nu(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Nu=function(){return!!e})()}function Bu(e){return Bu=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Bu(e)}function Uu(e,t){return Uu=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Uu(e,t)}function Iu(e,t,n){return(t=Wu(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Wu(e){var t=function(e,t){if("object"!=Fu(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Fu(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Fu(t)?t:t+""}var Hu=function(e){function t(e,n){var r,o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Iu(r=Vu(this,t,[n]),"mouseListener",void 0),Iu(r,"renderer",void 0),Iu(r,"mouseDown",!1),Iu(r,"eulerSpeed",new be),Iu(r,"_rotating",!1),Iu(r,"rotatingLerp",0),Iu(r,"rotatingLerpPrev",0),Iu(r,"_rotationLimitX",new be(-1.4,1.4)),Iu(r,"_rotationLimitY",new be(-Math.PI,Math.PI)),Iu(r,"clampEuler",void 0),Iu(r,"accessible",!0),Iu(r,"_rotationSpeedMultiplier",3),r.renderer=e,r.mouseListener=e.mouseListener,r.clampEuler=o,Ir()&&(r.accessible=!1),r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Uu(e,t)}(t,e),n=t,(r=[{key:"rotationSpeedMultiplier",set:function(e){this._rotationSpeedMultiplier=e}},{key:"rotationSpeed",get:function(){return this.eulerSpeed}},{key:"rotationLimit",set:function(e){this.rotationLimitX=new be(e.x,e.y),this.rotationLimitY=new be(e.z,e.w)}},{key:"rotationLimitX",set:function(e){this._rotationLimitX.copy(e)}},{key:"rotationLimitY",set:function(e){this._rotationLimitY.copy(e)}},{key:"rotating",get:function(){return this._rotating}},{key:"mouseSpeed",get:function(){return this.mouseListener.mouseDown?this.mouseListener.normalizedVelocity:new be}},{key:"update",value:function(e){this.rotateWithMouse(e)||this.rotateWithKeys()?this.handleRotation():(this.rotatingLerp=we(this.rotatingLerp-ns.instance.dt),this._rotating=this.rotatingLerp>0,this._rotating&&(this.eulerSpeed.multiplyScalar(1-(this.rotatingLerpPrev-this.rotatingLerp)/this.rotatingLerpPrev),this.rotateBy(this.eulerSpeed)),this.rotatingLerpPrev=this.rotatingLerp)}},{key:"rotateWithMouse",value:function(e){var n=e.projection.FOV,r=.5/Math.tan(.5*n),o=2*Math.atan2(.5*this.renderer.aspectRatio,r),i=this.mouseSpeed;i.length(),t.MOUSE_MOVEMENT_CANCEL_TRIGGER;var a=this.mouseDown;if(this.mouseDown=this.mouseListener.mouseDown,this.mouseDown&&a){var s=this._rotationSpeedMultiplier;return this.eulerSpeed.setValues(s*i.y*n*this.mouseInverseValue,s*i.x*o*this.mouseInverseValue),!0}return!1}},{key:"rotateWithKeys",value:function(){if(this.accessible){var e=.5*ns.instance.dt*this.mouseInverseValue,t=0,n=0;return zu.getKeyCodeDown("ArrowDown")&&(t-=e),zu.getKeyCodeDown("ArrowUp")&&(t+=e),zu.getKeyCodeDown("ArrowLeft")&&(n+=e),zu.getKeyCodeDown("ArrowRight")&&(n-=e),Math.abs(t)+Math.abs(n)!=0&&(this.rotateBy(new be(t,n)),!0)}return!1}},{key:"handleRotation",value:function(){this._rotating=this.eulerSpeed.length()>0,this.rotatingLerp=this._rotating?.5:0,this.rotatingLerpPrev=this.rotatingLerp,this.rotateBy(this.eulerSpeed),this.eulerSpeed.setValues(Math.min(t.MAX_ROTATE_SPEED,Math.abs(this.eulerSpeed.x))*Math.sign(this.eulerSpeed.x),Math.min(t.MAX_ROTATE_SPEED,Math.abs(this.eulerSpeed.y))*Math.sign(this.eulerSpeed.y))}},{key:"resetSpeed",value:function(){this.mouseDown=!1,this.eulerSpeed.setValues(0,0)}},{key:"rotateBy",value:function(e){this._eulerXY.add(e),this._eulerXY.copy(this.clampEulerXY(this._eulerXY)),this.transform.eulerXY=this._eulerXY}},{key:"clampEulerXY",value:function(e){var t=e.clone();return this.clampEuler&&(this._rotationLimitX.y-this._rotationLimitX.x<Math.PI&&(t.x=Math.max(this._rotationLimitX.x,t.x),t.x=Math.min(this._rotationLimitX.y,t.x)),this._rotationLimitY.y-this._rotationLimitY.x<2*Math.PI&&(t.y=Math.max(this._rotationLimitY.x,t.y),t.y=Math.min(this._rotationLimitY.y,t.y))),t}}])&&Ru(n.prototype,r),o&&Ru(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(function(){return e=function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Mu(this,"_eulerXY",new be),Mu(this,"transform",new Vn),Mu(this,"mouseInverseValue",1),this.mouseInverseValue=t?-1:1},(t=[{key:"eulerXY",get:function(){return this._eulerXY},set:function(e){this._eulerXY.copy(e),this.transform.eulerXY=e}},{key:"rotation",get:function(){return this.transform.rotation},set:function(e){this.transform.rotation=e;var t=this.transform.euler;this._eulerXY.setValues(t.x,t.y)}},{key:"getTransform",value:function(){return this.transform}},{key:"update",value:function(e){}},{key:"setEulerValues",value:function(e,t){this._eulerXY.setValues(e,t),this.transform.eulerXY=this._eulerXY}},{key:"setMouseInverted",value:function(e){this.mouseInverseValue=e?-1:1}},{key:"getMouseInverted",value:function(){return this.mouseInverseValue<0}}])&&Tu(e.prototype,t),n&&Tu(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}());function Gu(e){return Gu="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Gu(e)}function qu(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,$u(r.key),r)}}function Xu(e,t,n){return t=Ku(t),function(e,t){if(t&&("object"==Gu(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Yu()?Reflect.construct(t,n||[],Ku(e).constructor):t.apply(e,n))}function Yu(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Yu=function(){return!!e})()}function Ku(e){return Ku=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Ku(e)}function Zu(e,t){return Zu=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Zu(e,t)}function Ju(e,t,n){return(t=$u(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $u(e){var t=function(e,t){if("object"!=Gu(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Gu(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Gu(t)?t:t+""}Iu(Hu,"MOUSE_MOVEMENT_CANCEL_TRIGGER",.0025),Iu(Hu,"MAX_ROTATE_SPEED",.175);var Qu=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.01,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,s=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],l=arguments.length>6&&void 0!==arguments[6]&&arguments[6],u=!(arguments.length>7&&void 0!==arguments[7])||arguments[7],c=!(arguments.length>8&&void 0!==arguments[8])||arguments[8];return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Ju(n=Xu(this,t,[r,o,i]),"pivot",new Vn),Ju(n,"gyroscope",null),Ju(n,"_rotationController",void 0),Ju(n,"renderer",void 0),Ju(n,"mouseListener",void 0),Ju(n,"hoverPivot",new Vn),Ju(n,"_euler",new je),Ju(n,"zoomTargetDistance",0),Ju(n,"distanceLimit",new be(0,1e20)),Ju(n,"hoverEnabled",!1),Ju(n,"hoverStrength",0),Ju(n,"hoverMaxAngle",1/Math.PI),Ju(n,"hoverMouseTarget",new be),Ju(n,"pivotPositionOld",new je),Ju(n,"pivotRotationOld",new _n),Ju(n,"_moving",!0),Ju(n,"pinching",!1),Ju(n,"pinchStart0",new be),Ju(n,"pinchStart1",new be),Ju(n,"pinch0",new be),Ju(n,"pinch1",new be),Ju(n,"zoomTargetDistanceStart",1),n.renderer=e,n.pivot.setPositionValues(0,0,0),n.hoverPivot.parent=n.pivot,n.view.parent=n.hoverPivot,
2n.distance=a,n.mouseListener=e.mouseListener,c&&n.mouseListener.addWheelEvent((function(e){return n.scrollZoom(e)})),n._rotationController=new Hu(n.renderer,s,u),Ir()&&l&&n.enableGyroscope(),Ir()&&c&&n.enablePinch(),n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Zu(e,t)}(t,e),n=t,r=[{key:"zooming",get:function(){return this.distance!=this.zoomTargetDistance}},{key:"rotationController",get:function(){return this._rotationController}},{key:"eulerX",get:function(){return this._euler.x},set:function(e){this._euler.x=e,this._rotationController.setEulerValues(this._euler.x,this._euler.y),this.pivot.euler=this._euler}},{key:"eulerY",get:function(){return this._euler.y},set:function(e){this._euler.y=e,this._rotationController.setEulerValues(this._euler.x,this._euler.y),this.pivot.euler=this._euler}},{key:"euler",get:function(){return this._euler.clone()}},{key:"eulerZ",set:function(e){this._euler.z=e,this.pivot.euler=this._euler}},{key:"rotation",set:function(e){this._rotationController.rotation=e,this.pivot.euler=this._euler}},{key:"distance",get:function(){return this.view.position.z},set:function(e){this.zoomTargetDistance=e,this.view.setPositionValues(0,0,e)}},{key:"lookAt",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:je.UP;this.pivot.lookAt(e,t,n),this.pivot.position=t,this.view.setPositionValues(0,0,je.distance(e,t)),this.zoomTargetDistance=this.distance}},{key:"setHoverEnabled",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2/180*Math.PI,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];this.hoverEnabled=e,this.hoverMaxAngle=t,n||(this.hoverStrength=e?1:0)}},{key:"scrollZoom",value:function(e){var t=this.zoomTargetDistance;e>0?t/=1.05:t*=1.05,t=Se(t,this.distanceLimit.x,this.distanceLimit.y),this.zoomTargetDistance=t}},{key:"setDistanceLimit",value:function(e,t){this.distanceLimit.setValues(e,t)}},{key:"update",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this.projection.aspectRatio=this.renderer.aspectRatio,0===this.zoomTargetDistance&&(this.zoomTargetDistance=this.distance),!e&&(this.pinching||this._rotationController.update(this),this.distance!=this.zoomTargetDistance)){var t=ge(this.zoomTargetDistance,this.distance,.9);Math.abs(this.distance-this.zoomTargetDistance)<.01&&(t=this.zoomTargetDistance),this.view.setPositionValues(0,0,t)}if(this.gyroscope)this.pivot.rotation=_n.slerp(this.pivot.rotation,this.gyroscope.rotation,.1);else{var n=this._rotationController.eulerXY;this._euler.x=n.x,this._euler.y=n.y,this.pivot.euler=this._euler}var r=this.hoverEnabled&&!this.inputPaused;this.hoverStrength=we(this.hoverStrength+(r?1/60:-1/60)),this.hoverMouseTarget=be.lerp(this.hoverMouseTarget,this.mouseListener.screenPos,.02);var o=this.hoverStrength*this.hoverMaxAngle*(this.rotationController.getMouseInverted()?-1:1);this.hoverPivot.setEulerValues(this.hoverMouseTarget.y*o,-this.hoverMouseTarget.x*o*this.renderer.aspectRatio,0);var i=je.distance(this.pivotPositionOld,this.worldPosition)>this.distance*ns.instance.dt*.01;this.pivotPositionOld.copy(this.worldPosition);var a=_n.dot(this.pivotRotationOld,this.pivot.rotation)<.999;this.pivotRotationOld.copy(this.pivot.rotation),this._moving=i||a}},{key:"moving",get:function(){return this._moving}},{key:"inputPaused",get:function(){return!1}},{key:"disableGyroscope",value:function(){this.gyroscope=null}},{key:"enableGyroscope",value:function(){this.gyroscope||(this.gyroscope=new ku)}},{key:"enablePinch",value:function(){var e=this,t=this.renderer.options.mouseEventsElement||this.renderer.canvas;t.addEventListener("touchstart",(function(t){2===t.touches.length&&(t.preventDefault(),e.pinching=!0,e.pinchStart0.setValues(t.touches[0].pageX,t.touches[0].pageY),e.pinchStart1.setValues(t.touches[1].pageX,t.touches[1].pageY),e.zoomTargetDistanceStart=e.zoomTargetDistance)}),{passive:!1}),t.addEventListener("touchmove",(function(t){if(e.pinching){t.preventDefault(),e.pinch0.setValues(t.touches[0].pageX,t.touches[0].pageY),e.pinch1.setValues(t.touches[1].pageX,t.touches[1].pageY);var n=be.distance(e.pinchStart0,e.pinchStart1),r=be.distance(e.pinch0,e.pinch1);e.zoomTargetDistance=e.zoomTargetDistanceStart*(n/r)}}),{passive:!1}),t.addEventListener("touchend",(function(t){e.pinching=!1}),{passive:!1})}}],r&&qu(n.prototype,r),o&&qu(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(Fs);function ec(e){return e*e*(3-2*e)}function tc(e){return e*e*e*(e*(6*e-15)+10)}function nc(e){return nc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},nc(e)}function rc(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,ic(r.key),r)}}function oc(e,t,n){return(t=ic(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ic(e){var t=function(e,t){if("object"!=nc(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=nc(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==nc(t)?t:t+""}var ac=function(){return e=function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),oc(this,"_from",void 0),oc(this,"_target",void 0),oc(this,"_value",void 0),oc(this,"duration",0),oc(this,"_progress",1),oc(this,"easing",ec),oc(this,"onProgress",void 0),oc(this,"onComplete",void 0),oc(this,"isNumber",!1),this.from=t},t=[{key:"from",get:function(){return this._from},set:function(e){this.isNumber="number"==typeof e,this._from=this.clone(e),this._value=this.clone(e)}},{key:"completed",get:function(){return this.progress>=1}},{key:"progress",get:function(){return this._progress}},{key:"easedProgress",get:function(){return this.easing(this._progress)}},{key:"value",get:function(){return this._value}},{key:"target",get:function(){return this._target}},{key:"to",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:ec;return void 0===this.from&&l.error("Tween.to without setting from value"),this.from=this._value,this._target=this.clone(e),this.duration=t,this._progress=0,this.onProgress=n,this.onComplete=r,this.easing=o,this}},{key:"fromTo",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:ec;return this.from=e,this.to(t,n,r,o,i)}},{key:"cancel",value:function(){return this._progress=1,this.onProgress=void 0,this.onComplete=void 0,this}},{key:"update",value:function(e){this._progress<1&&(this._progress=this.duration<=0?1:we(this._progress+e/this.duration),this._value=this.lerp(this.from,this._target,we(this.easing(this._progress))),void 0!==this.onProgress&&this.onProgress(this.value),this._progress>=1&&this.onComplete&&this.onComplete())}},{key:"clone",value:function(e){return this.isNumber?e:e.clone()}},{key:"lerp",value:function(e,t,n){return this.isNumber?ge(e,t,n):e.clone().lerp(t,n)}}],t&&rc(e.prototype,t),n&&rc(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function sc(e){return sc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},sc(e)}function lc(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,vc(r.key),r)}}function uc(e,t,n){return t=hc(t),function(e,t){if(t&&("object"==sc(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,cc()?Reflect.construct(t,n||[],hc(e).constructor):t.apply(e,n))}function cc(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(cc=function(){return!!e})()}function fc(){return fc="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=hc(e)););return e}(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},fc.apply(null,arguments)}
2function hc(e){return hc=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},hc(e)}function dc(e,t){return dc=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},dc(e,t)}function pc(e,t,n){return(t=vc(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function vc(e){var t=function(e,t){if("object"!=sc(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=sc(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==sc(t)?t:t+""}var mc=function(e){function t(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return pc(e=uc(this,t,[].concat(r)),"tmpCamera",new Fs),pc(e,"distanceTween",new ac(0)),pc(e,"positionTween",new ac(new je)),pc(e,"rotationTween",new ac(new _n)),e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&dc(e,t)}(t,e),n=t,r=[{key:"animating",get:function(){return!this.distanceTween.completed}},{key:"progress",get:function(){return this.distanceTween.progress}},{key:"inputPaused",get:function(){return this.animating}},{key:"update",value:function(){var e,n,r,o,i,a=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];if((e=t,n="update",r=this,i=fc(hc(1&(o=3)?e.prototype:e),n,r),2&o&&"function"==typeof i?function(e){return i.apply(r,e)}:i)([this.animating||!a]),this.animating){var s=ns.instance.dt;this._rotationController.resetSpeed(),this.rotationTween.update(s),this.positionTween.update(s),this.distanceTween.update(s),this.pivot.position=this.positionTween.value,this.pivot.rotation=this.rotationTween.value,this.distance=this.distanceTween.value}}},{key:"animateLookat",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:tc,a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null;this.tmpCamera.lookAt(e,t);var s=this.tmpCamera.view.euler;this.animatePosDistanceEuler(t,je.distance(e,t),new je(s.x,s.y,0),n,r,o,i,a)}},{key:"animatePosDistanceEuler",value:function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:tc,s=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,l=this._rotationController.clampEulerXY(new be(n.x,n.y));this.tmpCamera.view.setEulerValues(l.x,l.y,n.z),this.animatePosDistanceRotation(e,t,this.tmpCamera.view.rotation,r,o,i,a,s)}},{key:"animatePosDistanceRotation",value:function(e,t,n,r){var o=this,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:tc,l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null;this._rotationController.resetSpeed(),this.distanceTween.fromTo(this.distance,t,r,(function(){a&&a(o.progress)}),(function(){o._rotationController.rotation=o.rotationTween.value,o._rotationController.resetSpeed(),i&&i()}),s),this.rotationTween.fromTo(this.pivot.rotation,n,r,void 0,void 0,l||s),this.positionTween.fromTo(this.pivot.position,e,r,void 0,void 0,s)}},{key:"animatePosition",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:tc,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null;this.animatePosDistanceRotation(e,this.distance,this.pivot.rotation,t,n,r,o,i)}}],r&&lc(n.prototype,r),o&&lc(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(Qu);function yc(e){return yc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},yc(e)}function bc(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,kc(r.key),r)}}
2function gc(e,t,n){return t=_c(t),function(e,t){if(t&&("object"==yc(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,wc()?Reflect.construct(t,n||[],_c(e).constructor):t.apply(e,n))}function wc(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(wc=function(){return!!e})()}function _c(e){return _c=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},_c(e)}function xc(e,t){return xc=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},xc(e,t)}function Sc(e,t,n){return(t=kc(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function kc(e){var t=function(e,t){if("object"!=yc(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=yc(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==yc(t)?t:t+""}var Pc=function(e){function t(e,n){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.01,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Sc(r=gc(this,t,[1,o,i]),"bottomLeft",new be),Sc(r,"topRight",new be),r.bottomLeft.copy(e),r.topRight.copy(n),r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&xc(e,t)}(t,e),n=t,(r=[{key:"setSize",value:function(e,t){this.bottomLeft=new be(-e,-t),this.topRight=new be(e,t),this.dirty=!0}},{key:"updateMatrix",value:function(){this.dirty&&(jn.ortho(this.bottomLeft.x,this.topRight.x,this.bottomLeft.y,this.topRight.y,this._near,this._far,this.projectionMatrix),this.dirty=!1)}}])&&bc(n.prototype,r),o&&bc(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(Ts);function Tc(e){return Tc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Tc(e)}function Mc(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Oc(r.key),r)}}function Ec(e,t,n){return(t=Oc(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Oc(e){var t=function(e,t){if("object"!=Tc(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Tc(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Tc(t)?t:t+""}var jc=function(){return e=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1024,r=arguments.length>2?arguments[2]:void 0;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Ec(this,"camera",void 0),Ec(this,"renderTexture",void 0),Ec(this,"renderTextureBlurred",void 0),Ec(this,"depthWindow",new be(0,10)),Ec(this,"internalFormat",Z),this.renderTexture=new sl(t,n,n,{internalFormat:this.internalFormat,depth:!0}),this.renderTextureBlurred=new sl(t,n,n,{internalFormat:this.internalFormat,depth:!1}),this.renderTextureBlurred.autoGenerateMips=!0,this.camera=new Fs(.1,200),this.size=r},t=[{key:"size",set:function(e){this.camera.projection=new Pc(new be(-e/2,-e/2),new be(e/2,e/2),.01,100),this.camera.projection.aspectRatio=1}},{key:"setDirection",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new je(0,0,0);this.camera.lookAt(e.clone().multiplyScalar(50).add(t),t)}},{key:"setBounds",value:function(e,t){var n=Math.min(e,0)-.5,r=Math.max(t,0)+.5;this.depthWindow.setValues(.5*(n+r),.5*(r-n))}}],t&&Mc(e.prototype,t),n&&Mc(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function Dc(e){return Dc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Dc(e)}function Ac(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Cc(r.key),r)}}function Lc(e,t,n){return(t=Cc(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Cc(e){var t=function(e,t){if("object"!=Dc(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Dc(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Dc(t)?t:t+""}var zc,Fc=function(){return e=function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:3;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Lc(this,"buffer",void 0),Lc(this,"blurDir",new be),Lc(this,"renderer",void 0),Lc(this,"material",void 0),Lc(this,"filterWidth",void 0),Lc(this,"internalFormat",Z),this.renderer=t,this.filterWidth=r,this.material=new qn(t,n,"twoPassBlur"),this.material.addShaderDefines(["HALF_FILTER_WIDTH ",r]),this.material.depthWrite=!1,this.material.depthTest=!1,this.buffer=new sl(this.renderer,1,1,{internalFormat:this.internalFormat})},(t=[{key:"init",value:function(e){var t=this.generateGaussShaderKernelWeightsAndOffsets(4*this.filterWidth-1);this.material.setFloat32Array("_Weights",t[0]),this.material.setFloat32Array("_Offsets",t[1])}},{key:"draw",value:function(e,t){this.buffer.setSize(e.width,e.height),this.material.setVector2("_BlurDir",this.blurDir.
2setValues(1/e.width,0)),this.renderer.blit(e,this.buffer,this.material,!1,!1),this.material.setVector2("_BlurDir",this.blurDir.setValues(0,1/e.height)),this.renderer.blit(this.buffer,t,this.material,!1,!1)}},{key:"generateSeparableGaussKernel",value:function(e,t){for(var n=[],r=Math.floor(t/2),o=0,i=0;i<t;++i)n[i]=Math.sqrt(Math.exp(-.5*(Math.pow((i-r)/e,2)+Math.pow(r/e,2)))),o+=n[i];for(var a=0;a<t;++a)n[a]/=o;return n}},{key:"getAppropriateSeparableGauss",value:function(e){for(var t=.02/e,n=1,r=1;;){var o=this.generateSeparableGaussKernel(r,e);if(o[0]>t){if(n>.02){r-=n,r+=n*=.1;continue}for(var i=[],a=0;a<e;a++)i.push(o[a]);return i}if((r+=n)>1e3)break}throw new Error("getAppropriateSeparableGauss: did not find a value")}},{key:"generateGaussShaderKernelWeightsAndOffsets",value:function(e){if((e+1)%4==0){for(var t=this.getAppropriateSeparableGauss(e),n=[],r=Math.floor(e/2),o=r;o>=0;o--)o==r?n.push(.5*t[o]):n.push(t[o]);for(var i=n.length/2,a=new Float32Array(i),s=new Float32Array(i),l=0;l<i;l++){var u=n[2*l+0]+n[2*l+1];a[l]=u,s[l]=2*l+n[2*l+1]/u}return[a,s]}throw new Error("incorrect kernel size")}}])&&Ac(e.prototype,t),n&&Ac(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function Rc(e){return Rc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Rc(e)}function Vc(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Bc(r.key),r)}}function Nc(e,t,n){return(t=Bc(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Bc(e){var t=function(e,t){if("object"!=Rc(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Rc(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Rc(t)?t:t+""}!function(e){e[e.Desert=0]="Desert",e[e.Sky=1]="Sky",e[e.Grass=2]="Grass",e[e.Ocean=3]="Ocean",e[e.None=4]="None",e[e.ConcreteBox=5]="ConcreteBox"}(zc||(zc={}));var Uc=function(){return e=function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Nc(this,"material",void 0),Nc(this,"mesh",void 0),Nc(this,"renderer",void 0),Nc(this,"greyTexture",void 0),this.renderer=t,this.material=new qn(t,n,"particles"),this.material.setPreMultipliedAlphaBlending(),this.material.setCullingDisabled(),this.mesh=this.createMesh(32768)},(t=[{key:"init",value:function(e,t,n){var r,o=e.addGroup("particles",this.material);o.addShaderParamFloat("_PointSize",.1),o.addShaderParamFloat("_Opacity",t.environmentType==zc.Desert?.1:.4),o.addShaderParamFloat("_ShadowAmount",.75),o.addShaderParamFloat("_Amplitude",.2,0,1),o.addShaderParamFloat("_Twist",.1,0,1),o.addShaderParamFloat("_SpatialFrequency",2.5,0,8),o.addShaderParamFloat("_Falloff",.7),o.addShaderParamFloat("_WindX",.6),o.addShaderParamFloat("_WindY",1.5),o.addShaderParamFloat("_WindZ",3),o.collapsed=!0;var i=null===(r=n.materials.find((function(e){return"terrain"===e.name})))||void 0===r?void 0:r.albedoMap;i?this.material.setTexture("_AlbedoMap",i):(this.greyTexture=new wr(this.renderer),this.greyTexture.setData(new Uint8Array([128,128,128,255]),1,1),this.material.setTexture("_AlbedoMap",this.greyTexture)),this.material.setFloat("_TrackSpacing",t.trackSpacing?t.trackSpacing:1.5),this.material.setFloat("_TrackWidth",t.trackWidth?t.trackWidth:.3),this.material.setFloat("_TrackStart",t.trackStart?t.trackStart:-2.8),this.material.setFloat("_TrackEnd",t.trackEnd?t.trackEnd:3),this.material.setFloat("_LifeTime",t.particleLifeTime?t.particleLifeTime:4),t.environmentType==zc.Desert?(this.material.setVector3("_ColorA",new je(1,.9,.8).powScalar(2.2)),this.material.setVector3("_ColorB",Ge.fromHex("#907147").vector3.powScalar(2.2))):t.environmentType==zc.Grass&&(this.material.setVector3("_ColorA",new je(.35,.3,.25).powScalar(2.2)),this.material.setVector3("_ColorB",new je(.2,.25,.15).powScalar(2.2)))}},{key:"draw",value:function(e,t){this.material.setFloat("_Time",t),this.material.setFloat("_AspectRatio",this.renderer.aspectRatio),this.material.setMatr
2ix("_ViewProjection",e.viewProjection),this.renderer.draw(this.mesh,this.material)}},{key:"destruct",value:function(){var e;this.material.destruct(),this.mesh.destruct(),null===(e=this.greyTexture)||void 0===e||e.destruct()}},{key:"createMesh",value:function(e){for(var t=e,n=new Float32Array(2*t*4),r=new Float32Array(4*t*4),o=new Float32Array(4*t*4),i=[],a=0,s=0,l=0,u=0,c=(1+Math.sqrt(5))/2,f=0;f<e;f++){var h=2*Math.random()-1,d=2*Math.random()-1,p=2*Math.random()-1,v=f*c%1,m=Math.random(),y=Math.random(),b=Math.random(),g=Math.random();i[u+0]=4*f+0,i[u+1]=4*f+1,i[u+2]=4*f+2,i[u+3]=4*f+1,i[u+4]=4*f+3,i[u+5]=4*f+2,u+=6;for(var w=-1;w<=1;w+=2)for(var _=-1;_<=1;_+=2)r[a++]=h,r[a++]=d,r[a++]=p,r[a++]=v,o[s++]=m,o[s++]=y,o[s++]=b,o[s++]=g,n[l++]=w,n[l++]=_}var x=new de(this.renderer);return x.setAttribute("aData0",4,r),x.setAttribute("aData1",4,o),x.setAttribute("aUV0",2,n),x.setIndices32(new Uint32Array(i)),x}}])&&Vc(e.prototype,t),n&&Vc(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function Ic(e){return Ic="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ic(e)}function Wc(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Hc(r.key),r)}}function Hc(e){var t=function(e,t){if("object"!=Ic(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Ic(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Ic(t)?t:t+""}var Gc=function(){return e=function e(){var t,n,r,o=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),t=this,r=void 0,(n=Hc(n="useWorkers"))in t?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r,this.useWorkers=o},t=[{key:"fetch",value:function(e,t,n){Tr(e,t,n)}},{key:"loadImage",value:function(e,t,r){!function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:rr,o=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];if("function"==typeof createImageBitmap)if("string"!=typeof e&&(e=e.default),o&&"undefined"!=typeof Worker){var i=new Worker(new URL(n.p+n.u(2574),n.b));i.onmessage=function(e){t(e.data.imageBitmap)},i.postMessage({path:e,options:r})}else fetch(e).then((function(e){return e.blob()})).then((function(e){return createImageBitmap(e,{premultiplyAlpha:r.premultiplyAlpha?"premultiply":"none",colorSpaceConversion:r.colorSpaceConversion?"none":"default",imageOrientation:r.flipY?"flipY":"none"})})).then((function(e){t(e)})).catch((function(){t(null)}));else l.log("loadImageBitmap: createImageBitmap not available")}(e,t,r,this.useWorkers)}}],t&&Wc(e.prototype,t),r&&Wc(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function qc(e,t){var n=new Uint8Array(e,t,100),r=n.indexOf(0);return(new TextDecoder).decode(n.slice(0,r))}function Xc(e,t){for(var n=new Uint8Array(e,t+124,12),r="",o=0;o<11;o++)r+=String.fromCharCode(n[o]);return parseInt(r,8)}function Yc(e){return Yc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Yc(e)}function Kc(){Kc=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,o=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function c(e,t,n,r){var i=t&&t.prototype instanceof y?t:y,a=Object.create(i.prototype),s=new j(r||[]);return o(a,"_invoke",{value:T(e,n,s)}),a}function f(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=c;var h="suspendedStart",d="suspendedYield",p="executing",v="completed",m={};function y(){}function b(){}function g(){}var w={};u(w,a,(function(){return this}));var _=Object.getPrototypeOf,x=_&&_(_(D([])));x&&x!==n&&r.call(x,a)&&(w=x);var S=g.prototype=y.prototype=Object.create(w);function k(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}
vendor: 5,004 bytes, line 2
2))}function P(e,t){function n(o,i,a,s){var l=f(e[o],e,i);if("throw"!==l.type){var u=l.arg,c=u.value;return c&&"object"==Yc(c)&&r.call(c,"__await")?t.resolve(c.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):t.resolve(c).then((function(e){u.value=e,a(u)}),(function(e){return n("throw",e,a,s)}))}s(l.arg)}var i;o(this,"_invoke",{value:function(e,r){function o(){return new t((function(t,o){n(e,r,t,o)}))}return i=i?i.then(o,o):o()}})}function T(t,n,r){var o=h;return function(i,a){if(o===p)throw Error("Generator is already running");if(o===v){if("throw"===i)throw a;return{value:e,done:!0}}for(r.method=i,r.arg=a;;){var s=r.delegate;if(s){var l=M(s,r);if(l){if(l===m)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(o===h)throw o=v,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);o=p;var u=f(t,n,r);if("normal"===u.type){if(o=r.done?v:d,u.arg===m)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(o=v,r.method="throw",r.arg=u.arg)}}}function M(t,n){var r=n.method,o=t.iterator[r];if(o===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,M(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),m;var i=f(o,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,m;var a=i.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,m):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function E(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function O(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function j(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(E,this),this.reset(!0)}function D(t){if(t||""===t){var n=t[a];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function n(){for(;++o<t.length;)if(r.call(t,o))return n.value=t[o],n.done=!1,n;return n.value=e,n.done=!0,n};return i.next=i}}throw new TypeError(Yc(t)+" is not iterable")}return b.prototype=g,o(S,"constructor",{value:g,configurable:!0}),o(g,"constructor",{value:b,configurable:!0}),b.displayName=u(g,l,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===b||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,g):(e.__proto__=g,u(e,l,"GeneratorFunction")),e.prototype=Object.create(S),e},t.awrap=function(e){return{__await:e}},k(P.prototype),u(P.prototype,s,(function(){return this})),t.AsyncIterator=P,t.async=function(e,n,r,o,i){void 0===i&&(i=Promise);var a=new P(c(e,n,r,o),i);return t.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},k(S),u(S,l,"Generator"),u(S,a,(function(){return this})),u(S,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=D,j.prototype={constructor:j,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(O),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function o(r,o){return s.type="throw",s.arg=t,n.next=r,o&&(n.method="next",n.arg=e),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var l=r.call(a,"catchLoc"),u=r.call(a,"finallyLoc");if(l&&u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,m):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];
2if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),O(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;O(n)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:D(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),m}},t}function Zc(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function Jc(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){Zc(i,r,o,a,s,"next",e)}function s(e){Zc(i,r,o,a,s,"throw",e)}a(void 0)}))}}function $c(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,ef(r.key),r)}}function Qc(e,t,n){return(t=ef(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ef(e){var t=function(e,t){if("object"!=Yc(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Yc(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Yc(t)?t:t+""}var tf=0,nf=function(){return e=function e(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=arguments.length>2?arguments[2]:void 0;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Qc(this,"fileInfo",[]),Qc(this,"buffer",void 0),Qc(this,"worker",void 0),Qc(this,"useWorker",void 0),Qc(this,"resolve",[]),"string"==typeof t){if(!r)throw new Error("TarballLoaderSource: callback is required when loading from URL");this.useWorker=!0,this.worker=this.createWorker(t,r)}else this.buffer=t,this.useWorker=n,this.fileInfo=function(e){if(!e)return[];for(var t=[],n=0;n<e.byteLength-512;){var r=qc(e,n);if(0==r.length)break;var o=Xc(e,n);t.push({name:r,size:o,header_offset:n}),n+=512+512*Math.trunc(o/512),o%512&&(n+=512)}return t}(t),n&&(this.worker=this.createWorker(t,r))},t=[{key:"getInfo",value:function(e){return this.fileInfo.find((function(t){return t.name.includes(e)||e.includes(t.name)}))}},{key:"fetch",value:(s=Jc(Kc().mark((function e(t,n,r){var o,i=this;return Kc().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.useWorker){e.next=4;break}return e.abrupt("return",new Promise((function(){var e=i.getInfo(t);e&&(i.resolve[++tf]=n,i.worker.postMessage({cmd:"loadArrayBuffer",offset:e.header_offset+512,size:e.size,id:tf}))})));case 4:return e.next=6,this.getArrayBuffer(t,"arraybuffer");case 6:(o=e.sent)&&n(o);case 8:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return s.apply(this,arguments)})},{key:"loadImage",value:(a=Jc(Kc().mark((function e(t,n){var r,o,i=this,a=arguments;return Kc().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=a.length>2&&void 0!==a[2]?a[2]:rr,"string"!=typeof t&&(t=t.default),!this.useWorker){e.next=6;break}return e.abrupt("return",new Promise((function(){var e=i.getInfo(t);e&&(i.resolve[++tf]=n,i.worker.postMessage({cmd:"loadImage",offset:e.header_offset+512,size:e.size,id:tf,options:r}))})));case 6:return e.next=8,this.getBlob(t,"image");case 8:void 0!==(o=e.sent)&&createImageBitmap(o,{premultiplyAlpha:r.premultiplyAlpha?"premultiply":"none",colorSpaceConversion:r.colorSpaceConversion?"none":"default",imageOrientation:r.flipY?"flipY":"none"}).then((function(e){n(e)}));case 10:case"end":return e.stop()}}),e,this)}))),function(e,t){return a.apply(this,arguments)})},{key:"destruct",value:function(){this.worker&&this.worker.terminate()}},{key:"getBlob",value:(i=Jc(Kc().mark((function e(t){var n,r,o,i=arguments;return Kc().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=i.length>1&&void 0!==i[1]?i[1]:"",!(r=this.getInfo(t))){e.next=5;break}return o=new Uint8Array(this.buffer,r.header_offset+512,r.size),e.abrupt("return",new Blob([o],{type:n}));case 5:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"getArrayBuffer",value:(o=Jc(Kc().mark((function e(t){var n,r,o,i,a=arguments;return Kc().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=a.length>1&&void 0!==a[1]?a[1]:"",!(r=this.getInfo(t))){e.next=14;break}return o=new Uint8Array(this.buffer,r.header_offset+512,r.size),e.prev=4,i=new Blob([o],{type:n}).stream().pipeThrough(new DecompressionStream("gzip")),e.next=8,new Response(i).arrayBuffer();case 8:return e.abrupt("return",e.sent);case 11:return e.prev=11,e.t0=e.catch(4),e.abrupt("return",o);case 14:case"end":return e.stop()}}),e,this,[[4,11]])}))),function(e){return o.apply(this,arguments)})},{key:"createWorker",value:function(e,t){var r=this,o=new Worker(new URL(n.p+n.u(5882),n.b),{type:void 0});return o.addEventListener("message",(function(e){var n=r.resolve[e.data.id];if(r.resolve[e.data.id]=void 0,n)"imageBitmap"===e.data.msg?n(e.data.imageBitmap):"arrayBuffer"===e.data.msg&&n(e.data.arrayBuffer);else if("imageBitmap"===e.data.msg)try{e.data.imageBitmap.close()}catch(e){}else"fileInfo"===e.data.msg&&(r.fileInfo=e.data.fileInfo,t&&t())})),"string"==typeof e?o.postMessage({cmd:"init",url:e}):o.postMessage({cmd:"init",buffer:e},[e]),o}}],t&&$c(e.prototype,t),r&&$c(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r,o,i,a,s}();function rf(e){return rf="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},rf(e)}function of(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,af(r.key),r)}}function af(e){var t=function(e,t){if("object"!=rf(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=rf(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==rf(t)?t:t+""}function sf(e,t,n){return t=uf(t),function(e,t){if(t&&("object"==rf(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}
2(e,lf()?Reflect.construct(t,n||[],uf(e).constructor):t.apply(e,n))}function lf(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(lf=function(){return!!e})()}function uf(e){return uf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},uf(e)}function cf(e,t){return cf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},cf(e,t)}var ff=function(e){function t(e){var n;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),n=sf(this,t,[e]);var r=new Float32Array([-1,-1,0,-1,1,0,1,1,0,1,-1,0]);n.setPositions(r);var o=new Float32Array([0,0,0,1,1,1,1,0]);n.setUV0(o);var i=new Float32Array([0,0,1,0,0,1,0,0,1,0,0,1]);n.setNormals(i);var a=new Uint16Array([0,2,1,2,0,3]);return n.setIndices(a),n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&cf(e,t)}(t,e),n=t,r&&of(n.prototype,r),o&&of(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(de);function hf(e){return hf="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},hf(e)}function df(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return pf(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?pf(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function pf(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function vf(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function mf(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,gf(r.key),r)}}function yf(e,t,n){return t&&mf(e.prototype,t),n&&mf(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function bf(e,t,n){return(t=gf(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function gf(e){var t=function(e,t){if("object"!=hf(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=hf(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==hf(t)?t:t+""}var wf=function(){return yf((function e(t,n){vf(this,e),bf(this,"id",void 0),bf(this,"enabled",!0),bf(this,"transform",void 0),bf(this,"distanceToCamera",0),bf(this,"hover",!1),bf(this,"hoverAmount",0),bf(this,"screenPosition",new ze),bf(this,"cameraPosition",null),bf(this,"cameraPositionTransform",null),this.id=t,this.transform=n,this.cameraPositionTransform=n.getChild("CameraPosition"),this.cameraPositionTransform&&(this.cameraPosition=this.cameraPositionTransform.worldPosition)}),[{key:"shownInCanvas",get:function(){return null===this.cameraPosition}},{key:"update",value:function(e){this.distanceToCamera=je.distance(e.worldPosition,this.transform.worldPosition),this.screenPosition=e.worldToScreenPoint(this.transform.worldPosition),this.cameraPositionTransform&&(this.cameraPosition=this.cameraPositionTransform.worldPosition)}}])}(),_f=function(){return yf((function e(t,n){vf(this,e),bf(this,"hotspots",[]),bf(this,"hoverHotspot",null),bf(this,"activeHotspot",null),bf(this,"renderer",void 0),bf(this,"material",void 0),bf(this,"mesh",void 0),bf(this,"visibilityTween",new ac(1)),bf(this,"clickTween",new ac(0)),bf(this,"hoverRange",Ir()?.4:.25),this.renderer=t,this.material=new qn(t,n,"hotspot"),this.material.setPreMultipliedAlphaBlending(),Ir()&&this.material.addShaderDefines("MOBILE"),this.mesh=new ff(t)}),[{key:"init",value:function(e){this.material.setVector3("_Color",new je(254/255,171/255,0).powScalar(2.2))}},{key:"setHotspots",value:function(e){this.hoverHotspot=null,this.activeHotspot=null,this.hotspots=[];var t,n=df(e);try{for(n.s();!(t=n.n()).done;){var r=t.value,o=new wf(r.name,r);this.hotspots.push(o)}}catch(e){n.e(e)}finally{n.f()}}},{key:"updateHover",value:function(){var e,t=this.renderer.mouseListener.normalizedPos,n=df(this.hotspots);try{for(n.s();!(e=n.n()).done;){var r=e.value;if(r.shownInCanvas)if(be.distance(new be(r.screenPosition.x,r.screenPosition.y),t)<this.hoverRange/r.distanceToCamera)return void(this.hoverHotspot=r)}}catch(e){n.e(e)}finally{n.f()}this.hoverHotspot=null}},{key:"updateHotspots",value:function(e){var t,n=df(this.hotspots);try{for(n.s();!(t=n.n()).done;){t.value.update(e)}}catch(e){n.e(e)}finally{n.f()}this.hotspots.sort((function(e,t){return e.distanceToCamera-t.distanceToCamera}))}},{key:"handleHotspotClick",value:function(e){var t=this;this.clickTween.to(1,.2,void 0,(function(){t.clickTween.to(0,.2)})),this.activeHotspot=e}},{key:"draw",value:function(e){if(0!==this.hotspots.length){this.updateHotspots(e),this.updateHover(),this.visibilityTween.update(ns.instance.dt),this.material.setMatr
2ix("_ViewProjection",e.viewProjection),this.material.setFloat("_AspectRatio",this.renderer.aspectRatio),this.clickTween.update(ns.instance.dt);for(var t=0;t<this.hotspots.length;t++){var n=this.hotspots[t];n.shownInCanvas&&(this.material.setVector3("_Position",n.transform.worldPosition),Ir()||(n.hoverAmount+=(n==this.hoverHotspot?1:-1)*ns.instance.dt*15,n.hoverAmount=we(n.hoverAmount),this.material.setFloat("_Hover",this.activeHotspot==n?1:n.hoverAmount)),this.material.setFloat("_Click",this.hoverHotspot==n?this.clickTween.value:0),this.renderer.draw(this.mesh,this.material))}}}}])}();function xf(e){return xf="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},xf(e)}function Sf(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return kf(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?kf(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function kf(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Pf(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Mf(r.key),r)}}function Tf(e,t,n){return(t=Mf(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Mf(e){var t=function(e,t){if("object"!=xf(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=xf(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==xf(t)?t:t+""}var Ef=function(){function e(t,n,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Tf(this,"threshold",void 0),Tf(this,"passBoost",void 0),Tf(this,"strength",void 0),Tf(this,"distance",void 0),Tf(this,"enabled",void 0),Tf(this,"_buffers",void 0),Tf(this,"_output",null),Tf(this,"texelSize",new be),Tf(this,"firstPass",void 0),Tf(this,"intermediatePass",void 0),Tf(this,"lastPass",void 0),Tf(this,"renderer",void 0),Tf(this,"startHalfSize",void 0),Tf(this,"settings",void 0),Tf(this,"brightness",new ac(1)),this.renderer=t;var o={FIRST_PASS:1};1==r.alphaAsEmissive&&(o.ALPHA_AS_EMISSIVE=1),1==r.floatBuffers&&(o.HDR=1),this.firstPass=this.getMaterial(n,o),this.intermediatePass=this.getMaterial(n),this.intermediatePass.setAdditiveBlending(),this.lastPass=this.getMaterial(n,{LAST_PASS:1}),this.setSettings(r,{threshold:.6,strength:.6,passBoost:.25,alphaAsEmissive:!0,lastPassAdditive:!1,drawToTexture:!1,floatBuffers:!1,noiseAmount:.05,halfRes:!0}),this.settings.lastPassAdditive&&this.lastPass.setAdditiveBlending(),this._buffers=this.createBuffers(e.MAX_PASSES,this.settings.floatBuffers),this.settings.drawToTexture&&(this._output=new sl(t,1,1,{internalFormat:this.settings.floatBuffers?I:R}),this._output.scaleToCanvas=!0)}return t=e,n=[{key:"init",value:function(e){var t=e.addGroup("Bloom",[this.firstPass,this.intermediatePass,this.lastPass]);this.enabled=t.addParamBool("enabled",!1);var n=1;this.settings.floatBuffers?n=10:this.settings.alphaAsEmissive&&(n=2),this.threshold=t.addParamFloat("_Threshold",this.settings.threshold,0,n),this.passBoost=t.addParamFloat("_PassBoost",this.settings.passBoost),this.strength=t.addShaderParamFloat("_Strength",this.settings.strength,0,2),t.addShaderParamFloat("_NoiseAmount",this.settings.noiseAmount),this.startHalfSize=t.addParamBool("_HalfRes",this.settings.halfRes),t.collapsed=!0}},{key:"draw",value:function(t){if(this.enabled.value){var n,r=t,o=r.width,i=r.height,a=Math.log(.5*t.width)/Math.log(2),s=Math.log(.5*t.height)/Math.log(2),l=Math.floor(Math.min(e.MAX_PASSES,Math.min(a,s)));this.intermediatePass.setFloat("_PassBoost",this.passBoost.value),this.firstPass.setFloat("_PassBoost",this.passBoost.value);for(var u=0;u<l;u++)this.startHalfSize.value&&(o=Math.floor(.5*o),i=Math.floor(.5*i)),(n=this._buffers[u]).setSize(o,i),0==u?(this.startHalfSize?this.texelSize.setValues(1/r.width,1/r.height):this.texelSize.setValues(.5/r.width,.5/r.height),this.firstPass.setVector2("_SourceTexelSize",this.texelSize),this.firstPass.setFloat("_Threshold",this.threshold.value),this.renderer.blit(r,n,this.firstPass,!0)):(this.texelSize.setValues(1/r.width,1/r.height),this.intermediatePass.setVector2("_SourceTexelSize",this.texelSize),this.renderer.blit(r,n,this.intermediatePass,!0)),r=n,this.startHalfSize.value||(o=Math.floor(.5*o),i=Math.floor(.5*i));this.intermediatePass.setFloat("_PassBoost",0);for(var c=1;c<l;c++)n=this._buffers[l-c-1],this.texelSize.setValues(.5/r.width,.5/r.height),c==l-1?(this.lastPass.setTexture("_Source",t),this.lastPass.setVector2("_SourceTexelSize",this.texelSize),this.lastPass.setFloat("_Brightness",this.brightness.value),this.renderer.blit(r,this._output,this.lastPass,this.settings.drawToTexture)):(this.intermediatePass.setVector2("_SourceTexelSize",this.texelSize),this.renderer.blit(r,n,this.intermediatePass,!1),r=n)}else this.renderer.blit(t);return this._output}},{key:"destruct",value:function(){var e,t=Sf(this._buffers);try{for(t.s();!(e=t.n()).done;)e.value.destruct()}catch(e){t.e(e)}finally{t.f()}this.firstPass.destruct(),this.intermediatePass.destruct(),this.lastPass.destruct()}},{key:"setSettings",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.settings=Object.assign(t,e),l.log("BloomStandAlone: ",this.settings)}},{key:"getMaterial",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=new qn(this.renderer,e,"bloom");n.depthTest=!1;for(var r=0,o=Object.keys(t);r<o.length;r++){var i=o[r];n.addShaderDefines([i,t[i]])}return n}},{key:"createBuffers",value:function(e,t){for(var n=t?U:R,r=[],o=0;o<e;o++)r.push(new sl(this.renderer,1,1,{internalFormat:n,clampToEdge:!0,useMips:!1,linear:!0,depth:!1}
2));return r}}],n&&Pf(t.prototype,n),r&&Pf(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,n,r}();Tf(Ef,"MAX_PASSES",9);var Of,jf=!1,Df=[];function Af(e,t){var n=e.children[0].classList;t?n.add("active"):n.remove("active")}function Lf(){return JSON.parse(localStorage.getItem("MIDIMapping")||"[]")}function Cf(e){if(jf){var t=document.createElement("div");return t.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" aria-hidden="true"><path d="M819.2 174.08h-614.4a30.72 30.72 0 0 0-30.72 30.72v614.4a30.72 30.72 0 0 0 30.72 30.72h614.4a30.72 30.72 0 0 0 30.72-30.72v-614.4a30.72 30.72 0 0 0-30.72-30.72z m-433.95072 353.28a30.72 30.72 0 0 0 30.72-30.72V235.52h40.38656v261.12a30.72 30.72 0 0 0 30.72 30.72h4.46464V788.48H378.88v-261.12h6.36928z m147.23072 0h4.46464a30.72 30.72 0 0 0 30.72-30.72V235.52h40.38656v261.12a30.72 30.72 0 0 0 30.72 30.72h6.3488V788.48h-112.64v-261.12zM235.52 235.52h69.12v261.12a30.72 30.72 0 0 0 30.72 30.72H337.92V788.48h-102.4v-552.96z m552.96 552.96h-102.4v-261.12h2.56a30.72 30.72 0 0 0 30.72-30.72V235.52H788.48v552.96z"/></svg>',t.title="MIDI Learn",t.addEventListener("click",(function(){Of&&Af(Of.midiElement,!1),Of={param:e,midiElement:t},Af(t,!0)})),Lf().forEach((function(n,r){n===e.id&&(Df[r]={param:e,midiElement:t})})),t}}function zf(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,s=[],l=!0,u=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){u=!0,o=e}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(u)throw o}}return s}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Ff(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ff(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ff(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var Rf=["input","change"];function Vf(e){navigator.clipboard.writeText(e)}function Nf(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0,o=document.createElement("div");if(o.className="gui-form-field",e){var i=document.createElement("label");i.innerText=e.name,i.title=e.name,i.setAttribute("for","input-".concat(e.id)),o.appendChild(i)}return o.appendChild(t),n&&o.appendChild(n),r&&o.appendChild(r),o}function Bf(e,t){var n=document.createElement("button");n.innerText=t.name,n.addEventListener("click",(function(){return t.triggerCallbacks()})),e.appendChild(Nf(void 0,n))}function Uf(e,t){var n=document.createElement("input"),r=t.options;n.id="input-".concat(t.id),n.type="range",n.min=r.min.toString(),n.max=r.max.toString(),n.step=void 0!==r.step?"".concat(r.step):"any";var o=document.createElement("output"),i=function(e){null==e||isNaN(e)||(n.value="".concat(e),n.title="".concat(e.toFixed(r.precision||0)),o.innerText="".concat(e.toFixed(r.precision||0)))};i(t.value),o.addEventListener("click",(function(){return Vf(o.innerText)})),o.addEventListener("dblclick",(function(){var e=prompt("Enter value [".concat(r.min,"-").concat(r.max,"]"),n.value);if(e){var o=parseFloat(e);xe(e)&&t.setValue(o,!0)}})),Rf.forEach((function(e){n.addEventListener(e,(function(e){t.setValue(parseFloat(e.target.value),!0)}))})),t.addCallback(i),e.appendChild(Nf(t,n,o,Cf(t)))}function If(e,t){var n=document.createElement("input");n.id="input-".concat(t.id),n.type="color",n.value=new Ge(t.value.x,t.value.y,t.value.z,1).getHex();var r=document.createElement("output");r.addEventListener("click",(function(){return Vf(r.innerText)})),r.addEventListener("dblclick",(function(){return t.setValue((new Ge).setHex(prompt("Enter value",r.innerText)).vector3,!0)}));var o=function(e){var t=n.value=new Ge(e.x,e.y,e.z,1).getHex();n.value="".concat(t),r.innerText="".concat(t)};o(t.value),Rf.forEach((function(e){n.addEventListener(e,(function(e){t.setValue((new Ge).setHex(n.value).vector3,!0)}))})),t.addCallback(o),e.appendChild(Nf(t,n,r))}function Wf(e,t){var n=document.createElement("input");n.id="input-".concat(t.id),n.type="checkbox",n.checked=t.value,n.addEventListener("change",(function(e){t.setValue(e.target.checked,!0)})),t.addCallback((function(e){return n.checked=e})),e.appendChild(Nf(t,n))}function Hf(e,t){var n=document.createElement("select"),r=t.options;n.id="input-".concat(t.id),n.value=t.value.toString();for(var o=0,i=Object.entries(r.selectOptions||{});o<i.length;o++){var a=zf(i[o],2),s=a[0],l=a[1],u=document.createElement("option");u.value="".concat(l),u.text=s,n.appendChild(u)}var c=document.createElement("output"),f=function(e){n.value="".concat(e),n.title="".concat(e.toFixed(r.precision||2)),c.innerText="".concat(e.toFixed(r.precision||2))};f(t.value),c.addEventListener("click",(function(){return Vf(c.innerText)})),Rf.forEach((function(e){n.addEventListener(e,(function(e){t.setValue(parseFloat(e.target.value),!0)}))})),t.addCallback(f),e.appendChild(Nf(t,n,c))}function Gf(e,t){var n=document.createElement("input");n.id="input-".concat(t.id),n.type="text",n.value=t.value,Rf.forEach((function(e){n.addEventListener(e,(function(e){t.setValue(e.target.value,!0)}))})),t.addCallback((function(e){return n.value=e})),e.appendChild(Nf(t,n))}function qf(e,t){var n=document.createElement("pre");n.innerText=t.value.toString(),t.addCallback((function(e){return n.innerText=e.toString()})),e.appendChild(n)}var Xf=null;
vendor: 4,895 bytes, line 2
2function Yf(){if(Xf)return Xf;var e=document.createElement("style");return e.innerHTML="\n.gui {\n  position: fixed;\n  right: 0;\n  top: 0;\n  z-index: 999;\n  display: flex;\n  flex-direction: row;\n  color: white;\n  font: 12px sans-serif;\n  user-select: none;\n  align-items: flex-start;\n}\n.gui-group {\n  overflow: hidden;\n}\n.gui-group::-webkit-scrollbar {\n  display: none;\n}\n.gui-group[open] {\n  margin-bottom: 6px;\n}\n.gui > .gui-group {\n  max-height: calc(100vh - 8px);\n  overflow-y: auto;\n  margin-right: 8px;\n  background-color: rgba(51, 51, 51, 0.7);\n  border-radius: 0 0 8px 8px;\n  min-width: 280px;\n  position:relative;\n}\n.gui-group-header {\n  padding: 9px 8px;\n  cursor: pointer;\n  background-color: #000;\n  font-weight: bold;\n}\n.gui-group-header:hover {\n  opacity: 0.8;\n}\n.gui-group .gui-group .gui-group .gui-group-header {\n  margin-left: 8px;\n  background: #222;\n}\n.gui-mover {\n  position: absolute;\n  bottom: 0;\n  top: 0;\n  width: 7px;\n  background: #555;\n  opacity: 0;\n}\n.gui-mover:hover {\n  cursor: ew-resize;\n  opacity: 0.5;\n}\n.gui-form-field {\n  display: flex;\n  flex-direction: row;\n  align-items: center;\n  min-height: 32px;\n  margin: 0 8px;\n}\n.gui-canvas {\n  margin-top: 4px;\n  margin-left: 8px;\n  width: 260px !important;\n  height: 26px !important;\n}\n.gui label {\n  flex-grow: 1;\n  text-overflow: ellipsis;\n  overflow: hidden;\n  color: lightgray;\n  white-space: nowrap;\n}\n.gui output {\n  min-width: 50px;\n  max-width: 50px;\n  text-align: right;\n  color: lightgray;\n  cursor: pointer;\n}\n.gui svg {\n  width: 24px;\n  color: #666;\n  fill: #666;\n  cursor: pointer;\n}\n.gui svg:hover, .gui svg.active {\n  color: lightgray;\n  fill: lightgray;\n}\n.gui pre {\n  padding: 4px;\n  padding-left: 16px;\n  background-color: #6662;\n}\n.gui input {\n  flex-grow: 1;\n  height: 24px;\n}\n.gui input[type=\"checkbox\"] {\n  height: 16px;\n  flex-grow: 0;\n  margin-left: 8px;\n}\n.gui button, .gui select {\n  background-color: #666;\n  border: none;\n  border-radius: 4px;\n  color: white;\n  text-align: center;\n  width: 100%;\n  padding: 6px 16px;\n  cursor: pointer;\n}\n.gui button:hover {\n    background-color: #555;\n}\n.gui pre {\n    margin: 8px;\n}\n.gui input:not([type='text']) {\n    cursor: pointer;\n}",document.head.appendChild(e),(Xf=document.createElement("div")).className="gui",document.body.appendChild(Xf),Xf}function Kf(e){return Kf="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Kf(e)}function Zf(){Zf=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,o=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function c(e,t,n,r){var i=t&&t.prototype instanceof y?t:y,a=Object.create(i.prototype),s=new j(r||[]);return o(a,"_invoke",{value:T(e,n,s)}),a}function f(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=c;var h="suspendedStart",d="suspendedYield",p="executing",v="completed",m={};function y(){}function b(){}function g(){}var w={};u(w,a,(function(){return this}));var _=Object.getPrototypeOf,x=_&&_(_(D([])));x&&x!==n&&r.call(x,a)&&(w=x);var S=g.prototype=y.prototype=Object.create(w);function k(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function P(e,t){function n(o,i,a,s){var l=f(e[o],e,i);if("throw"!==l.type){var u=l.arg,c=u.value;return c&&"object"==Kf(c)&&r.call(c,"__await")?t.resolve(c.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):t.resolve(c).then((function(e){u.value=e,a(u)}),(function(e){return n("throw",e,a,s)}))}s(l.arg)}var i;o(this,"_invoke",{value:function(e,r){function o(){return new t((function(t,o){n(e,r,t,o)}))}return i=i?i.then(o,o):o()}})}function T(t,n,r){var o=h;return function(i,a){if(o===p)throw Error("Generator is already running");if(o===v){if("throw"===i)throw a;return{value:e,done:!0}}for(r.method=i,r.arg=a;;){var s=r.delegate;if(s){var l=M(s,r);if(l){if(l===m)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(o===h)throw o=v,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);o=p;var u=f(t,n,r);if("normal"===u.type){if(o=r.done?v:d,u.arg===m)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(o=v,r.method="throw",r.arg=u.arg)}}}function M(t,n){var r=n.method,o=t.iterator[r];if(o===e)return n.delegate=null,"throw"===r&&t.iterator.return&&
vendor: 4,780 bytes, line 2
2(n.method="return",n.arg=e,M(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),m;var i=f(o,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,m;var a=i.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,m):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function E(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function O(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function j(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(E,this),this.reset(!0)}function D(t){if(t||""===t){var n=t[a];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function n(){for(;++o<t.length;)if(r.call(t,o))return n.value=t[o],n.done=!1,n;return n.value=e,n.done=!0,n};return i.next=i}}throw new TypeError(Kf(t)+" is not iterable")}return b.prototype=g,o(S,"constructor",{value:g,configurable:!0}),o(g,"constructor",{value:b,configurable:!0}),b.displayName=u(g,l,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===b||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,g):(e.__proto__=g,u(e,l,"GeneratorFunction")),e.prototype=Object.create(S),e},t.awrap=function(e){return{__await:e}},k(P.prototype),u(P.prototype,s,(function(){return this})),t.AsyncIterator=P,t.async=function(e,n,r,o,i){void 0===i&&(i=Promise);var a=new P(c(e,n,r,o),i);return t.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},k(S),u(S,l,"Generator"),u(S,a,(function(){return this})),u(S,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=D,j.prototype={constructor:j,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(O),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function o(r,o){return s.type="throw",s.arg=t,n.next=r,o&&(n.method="next",n.arg=e),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var l=r.call(a,"catchLoc"),u=r.call(a,"finallyLoc");if(l&&u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,m):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),O(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;O(n)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:D(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),m}},t}function Jf(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function $f(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"FPS",n=1/0,r=0,o=Math.round,i=o(window.devicePixelRatio||1),a=260*i,s=12*i,l=260*i,u=14*i,c=2*i,f=ir(a,26*i);f.className="gui-canvas";var h=f.getContext("2d");h.font="bold ".concat(11*i,"px sans-serif"),h.textBaseline="top";var d=function(){var e,i=(e=Zf().mark((function e(i,d){var p,v;return Zf().wrap((function(e){for(;;
2)switch(e.prev=e.next){case 0:n=Math.min(n,i),r=Math.max(r,i),h.clearRect(0,0,a,s),"memory"in window.performance&&(h.fillStyle="lightgray",h.textAlign="right",p=window.performance.memory,v=1048576,h.fillText("".concat(p.usedJSHeapSize/v|0,"/").concat(p.jsHeapSizeLimit/v|0," MB"),a,0),h.textAlign="left"),h.fillStyle=i<58?"pink":"lightgreen",h.fillText("".concat(o(i)," ").concat(t," (").concat(o(n),"-").concat(o(r),")"),0,0),createImageBitmap(f).then((function(e){h.clearRect(0,s,l,u),h.drawImage(e,0+c,s,l-c,u,0,s,l-c,u),e.close();var t=o(we(i/d)*u);h.fillRect(0+l-c,s+u-t,c,t)}));case 7:case"end":return e.stop()}}),e)})),function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){Jf(i,r,o,a,s,"next",e)}function s(e){Jf(i,r,o,a,s,"throw",e)}a(void 0)}))});return function(e,t){return i.apply(this,arguments)}}();d(0,100);var p=(performance||Date).now(),v=p,m=0;!function e(){p=function(){m++;var e=(performance||Date).now();return e>=v+1e3&&(d(1e3*m/(e-v),100),v=e,m=0),e}(),requestAnimationFrame(e)}(),e.appendChild(f)}function Qf(e){return(new Ge).setHex(e).vector3}function eh(e){return{name:e.name,collapsed:e.collapsed,params:e.params.map((function(e){return function(e){return{name:e.name,id:e.id,type:e.type,value:3===e.type?(t=e.value,new Ge(t.x,t.y,t.z,1).getHex()):e.value,options:e.options};var t}(e)})),children:e.children.map((function(e){return eh(e)}))}}function th(e,t,n){e.params.forEach((function(e){e.id===t&&e.setValue(3===e.type?Qf(n):n)})),e.children.forEach((function(e){return th(e,t,n)}))}function nh(e,t){if(t){var n=document.createElement("div"),r=new Ja,o=r.addButton("Save JSON",(function(){return function(e){var t=eh(e),n=JSON.stringify(t,null,2),r=new Blob([n],{type:"application/json"}),o=URL.createObjectURL(r),i=document.createElement("a");i.href=o,i.download="params.json",document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(o)}(e)})),i=r.addButton("Load JSON",(function(){return function(e){var t=document.createElement("input");t.type="file",t.accept=".json",t.onchange=function(t){var n,r=null===(n=t.target.files)||void 0===n?void 0:n[0];if(r){var o=new FileReader;o.onload=function(t){try{var n,r=null===(n=t.target)||void 0===n?void 0:n.result;if(!r)return;rh(JSON.parse(r),e)}catch(e){}},o.onerror=function(e){},o.readAsText(r)}},t.click()}(e)}));Bf(n,o),Bf(n,i),t.appendChild(n)}}function rh(e,t){t&&(e.children.forEach((function(e,n){return rh(e,t.children[n])})),e.params.forEach((function(e){var n;return null===(n=t.params.find((function(t){return t.name===e.name})))||void 0===n?void 0:n.setValue(3===e.type?Qf(e.value):e.value)})))}function oh(e){return oh="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},oh(e)}function ih(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return ah(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ah(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function ah(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function sh(){sh=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,o=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function c(e,t,n,r){var i=t&&t.prototype instanceof y?t:y,a=Object.create(i.prototype),s=new j(r||[]);return o(a,"_invoke",{value:T(e,n,s)}),a}function f(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=c;var h="suspendedStart",d="suspendedYield",p="executing",v="completed",m={};function y(){}function b(){}function g(){}var w={};u(w,a,(function(){return this}));var _=Object.getPrototypeOf,x=_&&_(_(D([])));x&&x!==n&&r.call(x,a)&&(w=x);var S=g.prototype=y.prototype=Object.create(w);function k(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}
vendor: 5,004 bytes, line 2
2))}function P(e,t){function n(o,i,a,s){var l=f(e[o],e,i);if("throw"!==l.type){var u=l.arg,c=u.value;return c&&"object"==oh(c)&&r.call(c,"__await")?t.resolve(c.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):t.resolve(c).then((function(e){u.value=e,a(u)}),(function(e){return n("throw",e,a,s)}))}s(l.arg)}var i;o(this,"_invoke",{value:function(e,r){function o(){return new t((function(t,o){n(e,r,t,o)}))}return i=i?i.then(o,o):o()}})}function T(t,n,r){var o=h;return function(i,a){if(o===p)throw Error("Generator is already running");if(o===v){if("throw"===i)throw a;return{value:e,done:!0}}for(r.method=i,r.arg=a;;){var s=r.delegate;if(s){var l=M(s,r);if(l){if(l===m)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(o===h)throw o=v,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);o=p;var u=f(t,n,r);if("normal"===u.type){if(o=r.done?v:d,u.arg===m)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(o=v,r.method="throw",r.arg=u.arg)}}}function M(t,n){var r=n.method,o=t.iterator[r];if(o===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,M(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),m;var i=f(o,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,m;var a=i.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,m):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function E(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function O(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function j(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(E,this),this.reset(!0)}function D(t){if(t||""===t){var n=t[a];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function n(){for(;++o<t.length;)if(r.call(t,o))return n.value=t[o],n.done=!1,n;return n.value=e,n.done=!0,n};return i.next=i}}throw new TypeError(oh(t)+" is not iterable")}return b.prototype=g,o(S,"constructor",{value:g,configurable:!0}),o(g,"constructor",{value:b,configurable:!0}),b.displayName=u(g,l,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===b||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,g):(e.__proto__=g,u(e,l,"GeneratorFunction")),e.prototype=Object.create(S),e},t.awrap=function(e){return{__await:e}},k(P.prototype),u(P.prototype,s,(function(){return this})),t.AsyncIterator=P,t.async=function(e,n,r,o,i){void 0===i&&(i=Promise);var a=new P(c(e,n,r,o),i);return t.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},k(S),u(S,l,"Generator"),u(S,a,(function(){return this})),u(S,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=D,j.prototype={constructor:j,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(O),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function o(r,o){return s.type="throw",s.arg=t,n.next=r,o&&(n.method="next",n.arg=e),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var l=r.call(a,"catchLoc"),u=r.call(a,"finallyLoc");if(l&&u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,m):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];
2if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),O(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;O(n)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:D(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),m}},t}function lh(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function uh(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,fh(r.key),r)}}function ch(e,t,n){return(t=fh(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function fh(e){var t=function(e,t){if("object"!=oh(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=oh(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==oh(t)?t:t+""}var hh=function(){return e=function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),ch(this,"div",void 0),ch(this,"gui",void 0)},t=[{key:"init",value:(r=sh().mark((function e(t){var n,r,o=arguments;return sh().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=o.length>1&&void 0!==o[1]&&o[1],r=o.length>2&&void 0!==o[2]&&o[2],"undefined"!=typeof window){e.next=4;break}return e.abrupt("return");case 4:this.div=this.readGroup(void 0,t,Yf(),n,r);case 5:case"end":return e.stop()}}),e,this)})),o=function(){var e=this,t=arguments;return new Promise((function(n,o){var i=r.apply(e,t);function a(e){lh(i,n,o,a,s,"next",e)}function s(e){lh(i,n,o,a,s,"throw",e)}a(void 0)}))},function(e){return o.apply(this,arguments)})},{key:"destruct",value:function(){this.gui&&this.gui.parentElement&&this.gui.parentElement.removeChild(this.gui),this.gui=void 0}},{key:"readGroup",value:function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];if(!t.name)throw new Error("group name not initialized");var i=function(e,t){var n=document.createElement("details");n.className="gui-group",n.open=!t.collapsed,e.appendChild(n);var r=document.createElement("summary");r.className="gui-group-header",n.appendChild(r),r.innerText=t.name;var o=document.createElement("div");if(o.className="gui-group-body",n.appendChild(o),n.addEventListener("toggle",(function(){t.collapsed=!n.open})),null!=e&&e.classList.contains("gui")){var i=function(e){if(n){var t=s-e.x;n.style.width=Math.max(l+t,280)+"px"}},a=document.createElement("div");a.className="gui-mover",n.appendChild(a);var s=0,l=0;a.addEventListener("mousedown",(function(e){s=e.x,l=n.getBoundingClientRect().width,document.addEventListener("mousemove",i,!1),document.addEventListener("mouseup",(function(){document.removeEventListener("mousemove",i,!1)}),!1)}),!1)}return o}(n,t),a={div:i,children:new Array};e||(this.gui=i.parentElement),0===t.id&&(o&&nh(t,i),$f(i));var s,l=ih(t.params);try{for(l.s();!(s=l.n()).done;){var u=s.value;switch(u.type){case 2:case 1:Uf(i,u);break;case 3:If(i,u);break;case 0:Wf(i,u);break;case 5:Bf(i,u);break;case 4:Gf(i,u);break;case 6:Hf(i,u);break;case 7:qf(i,u)}}}catch(e){l.e(e)}finally{l.f()}var c,f=ih(t.children);try{for(f.s();!(c=f.n()).done;){var h=c.value;h.collapsed=h.collapsed||r,a.children.push(this.readGroup(t,h,i,r))}}catch(e){f.e(e)}finally{f.f()}return a}}],t&&uh(e.prototype,t),n&&uh(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n,r,o}();function dh(e){return dh="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},dh(e)}function ph(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,vh(r.key),r)}}function vh(e){var t=function(e,t){if("object"!=dh(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=dh(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==dh(t)?t:t+""}function mh(e,t,n){return t=bh(t),function(e,t){if(t&&("object"==dh(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,yh()?Reflect.construct(t,n||[],bh(e).constructor):t.apply(e,n))}function yh(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(yh=function(){return!!e})()}
2function bh(e){return bh=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},bh(e)}function gh(e,t){return gh=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},gh(e,t)}var wh=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:8,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1,l=arguments.length>6&&void 0!==arguments[6]&&arguments[6],u=arguments.length>7&&void 0!==arguments[7]?arguments[7]:0,c=arguments.length>8&&void 0!==arguments[8]?arguments[8]:2*Math.PI;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),n=mh(this,t,[e]),a=Math.floor(a),s=Math.floor(s);var f=[],h=[],d=[],p=[],v=0,m=[],y=i/2,b=function(e){for(var t=v,n=new be,i=new je,s=e?r:o,l=e?1:-1,m=1;m<=a;m++)h.push(0,y*l,0),d.push(0,l,0),p.push(.5,.5),v++;for(var b=v,g=0;g<=a;g++){var w=g/a*c+u,_=Math.cos(w),x=Math.sin(w);i.x=s*x,i.y=y*l,i.z=s*_,h.push(i.x,i.y,i.z),d.push(0,l,0),n.x=.5*_+.5,n.y=.5*x*l+.5,p.push(n.x,n.y),v++}for(var S=0;S<a;S++){var k=t+S,P=b+S;e?f.push(P,P+1,k):f.push(P+1,P,k)}};return function(){for(var e=new je,t=new je,n=(o-r)/i,l=0;l<=s;l++){for(var b=[],g=l/s,w=g*(o-r)+r,_=0;_<=a;_++){var x=_/a,S=x*c+u,k=Math.sin(S),P=Math.cos(S);t.x=w*k,t.y=-g*i+y,t.z=w*P,h.push(t.x,t.y,t.z),e.setValues(k,n,P).normalize(),d.push(e.x,e.y,e.z),p.push(x,1-g),b.push(v++)}m.push(b)}for(var T=0;T<a;T++)for(var M=0;M<s;M++){var E=m[M][T],O=m[M+1][T],j=m[M+1][T+1],D=m[M][T+1];f.push(E,O,D),f.push(O,j,D)}}(),l||(r>0&&b(!0),o>0&&b(!1)),n.setPositions(Float32Array.from(h)),n.setUV0(Float32Array.from(p)),n.setNormals(Float32Array.from(d)),n.setIndices(Uint16Array.from(f)),n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&gh(e,t)}(t,e),n=t,r&&ph(n.prototype,r),o&&ph(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(de);function _h(e){return _h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_h(e)}function xh(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,kh(r.key),r)}}function Sh(e,t,n){return(t=kh(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function kh(e){var t=function(e,t){if("object"!=_h(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=_h(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==_h(t)?t:t+""}var Ph=function(){return e=function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Sh(this,"material",void 0),Sh(this,"mesh",void 0),Sh(this,"renderer",void 0),Sh(this,"transform",null),this.renderer=t,this.material=new qn(t,n,"afterburnerTrail"),this.material.setPreMultipliedAlphaBlending(),this.mesh=new wh(t,.5,.5,2,32)},(t=[{key:"init",value:function(e){var t=e.addGroup("afterburner",this.material);t.addShaderParamFloat("_Opacity",6),t.addShaderParamFloat("_Brightness",4),t.addShaderParamFloat("_StepSize",.1,.02,.5),t.collapsed=!0}},{key:"handleModelLoaded",value:function(e){this.transform=e.transformsByName.AfterburnerTrail,this.transform||(this.transform=null)}},{key:"draw",value:function(e,t){this.transform&&(this.material.setMatrix("_Model",this.transform.worldMatrix),this.material.setMatrix("_InverseModel",this.transform.worldMatrix.inverse),this.material.setVector3("_CameraPosition",e.worldPosition),this.material.setFloat("_Time",t),this.material.setMatr
2ix("_ViewProjection",e.viewProjection),this.renderer.draw(this.mesh,this.material))}},{key:"destruct",value:function(){this.mesh.destruct(),this.material.destruct()}}])&&xh(e.prototype,t),n&&xh(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function Th(e){return Th="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Th(e)}function Mh(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Eh(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Eh(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function Eh(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Oh(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,jh(r.key),r)}}function jh(e){var t=function(e,t){if("object"!=Th(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Th(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Th(t)?t:t+""}var Dh=function(){return e=function e(){var t,n,r;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),t=this,r=void 0,(n=jh(n="material"))in t?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r},(t=[{key:"init",value:function(e,t){}},{key:"handleModelLoaded",value:function(e,t,n){}},{key:"draw",value:function(e,t){}},{key:"drawReflection",value:function(e,t,n){}},{key:"setLightDirection",value:function(e){var t,n=Mh(this.materials);try{for(n.s();!(t=n.n()).done;){var r=t.value;r.setMatrix("_LightViewProjection",e.camera.viewProjection),r.setVector3("_LightDirection",e.camera.worldForward),r.setVector2("_ShadowDepthWindow",e.depthWindow)}}catch(e){n.e(e)}finally{n.f()}}},{key:"materials",get:function(){return[this.material]}},{key:"destruct",value:function(){var e;null===(e=this.material)||void 0===e||e.destruct()}}])&&Oh(e.prototype,t),n&&Oh(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function Ah(e){return Ah="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ah(e)}function Lh(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Bh(r.key),r)}}function Ch(e,t,n){return t=Rh(t),function(e,t){if(t&&("object"==Ah(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,zh()?Reflect.construct(t,n||[],Rh(e).constructor):t.apply(e,n))}function zh(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(zh=function(){return!!e})()}function Fh(){return Fh="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=Rh(e)););return e}(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},Fh.apply(null,arguments)}
2function Rh(e){return Rh=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Rh(e)}function Vh(e,t){return Vh=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Vh(e,t)}function Nh(e,t,n){return(t=Bh(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Bh(e){var t=function(e,t){if("object"!=Ah(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Ah(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Ah(t)?t:t+""}var Uh=function(e){function t(e,n){var r;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Nh(r=Ch(this,t),"renderer",void 0),Nh(r,"mesh",void 0),Nh(r,"noiseTexture",void 0),Nh(r,"noiseMaterial",void 0),Nh(r,"scale",1),Nh(r,"normalHeightMap",void 0),Nh(r,"normalHeightMaterial",void 0),Nh(r,"microNormal",void 0),Nh(r,"microNrormalMaterial",void 0),r.renderer=e,r.mesh=new Io(e,255,255,!0),r.material=new qn(r.renderer,n,"sand"),r.noiseTexture=new sl(r.renderer,1024,1024,{useMips:!0,clampToEdge:!1}),r.noiseMaterial=new qn(r.renderer,n,"desertNoise"),r.normalHeightMap=new sl(r.renderer,256,2048,{useMips:!1,clampToEdge:!1,internalFormat:U}),r.normalHeightMaterial=new qn(r.renderer,n,"desertNormalHeight"),r.microNormal=new sl(r.renderer,512,512,{useMips:!0,clampToEdge:!1,internalFormat:U}),r.microNrormalMaterial=new qn(r.renderer,n,"desertMicroNormal"),r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Vh(e,t)}(t,e),n=t,r=[{key:"init",value:function(e,t){var n=e.addGroup("Desert",this.material);n.addShaderParamFloat("_Tiling",12),n.addShaderParamFloat("_NoiseNormal",.5),n.addShaderParamFloat("_Roughness",.75),n.addShaderParamFloat("_MipBias",-1,-2,0),n.addShaderParamFloat("_SparkleAmount",.1),n.addShaderParamFloat("_SparklePower",5),n.addShaderParamFloat("_SparkleMipBias",-2,-10,0),n.addShaderParamColor("_Albedo",Ge.fromHex("#907147").vector3),n.collapsed=!0,this.material.setTexture("_brdfLUT",t.brdfLutTexture),this.material.setTexture("_IrradianceMap",t.diffuseCube),this.material.setTexture("_PrefilterMap",t.specularCube),this.material.setFloat("_MaxLod",t.mipmapWithMaxRoughness),this.renderer.blit(null,this.noiseTexture,this.noiseMaterial),this.material.setTexture("_Noise",this.noiseTexture),this.material.setFloat("_AspectRatio",this.normalHeightMap.width/this.normalHeightMap.height),this.normalHeightMaterial.setFloat("_AspectRatio",this.normalHeightMap.width/this.normalHeightMap.height),this.renderer.blit(null,this.normalHeightMap,this.normalHeightMaterial),this.material.setTexture("_NormalHeightMap",this.normalHeightMap),this.renderer.blit(null,this.microNormal,this.microNrormalMaterial),this.material.setTexture("_MicroNormal",this.microNormal)}},{key:"handleModelLoaded",value:function(e,t,n){this.scale=64,this.material.setFloat("_Scale",this.scale),this.material.setFloat("_TrackStart",e.trackStart?e.trackStart:-3),this.material.setFloat("_TrackEnd",e.trackEnd?e.trackEnd:3),this.material.setFloat("_TrackWidth",e.trackWidth?e.trackWidth:0),this.material.setFloat("_TrackSpacing",e.trackSpacing?e.trackSpacing:0),this.material.setTexture("_ShadowMap",t.renderTextureBlurred),this.material.setColor("_FogColor",n),this.setLightDirection(t)}},{key:"draw",value:function(e,t,n){this.material.setVector3("_CamPos",e.worldPosition),this.material.setMatrix("_ViewProjection",e.viewProjection),this.material.setFloat("_DrawDepth",n?1:0),this.material.setFloat("_Moved",t),this.renderer.draw(this.mesh,this.material)}},{key:"destruct",value:function(){var e,n,r,o,i;this.mesh.destruct(),this.material.destruct(),this.noiseTexture.destruct(),this.noiseMaterial.destruct(),this.normalHeightMap.destruct(),this.normalHeightMaterial.destruct(),this.microNormal.destruct(),this.microNrormalMaterial.destruct(),(e=t,n="destruct",r=this,i=Fh(Rh(1&(o=3)?e.prototype:e),n,r),2&o&&"function"==typeof i?function(e){return i.apply(r,e)}:i)([])}}],r&&Lh(n.prototype,r),o&&Lh(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(Dh);function Ih(e){return Ih="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ih(e)}function Wh(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Yh(r.key),r)}}function Hh(e,t,n){return t=qh(t),function(e,t){if(t&&("object"==Ih(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Gh()?Reflect.construct(t,n||[],qh(e).constructor):t.apply(e,n))}function Gh(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Gh=function(){return!!e})()}
2function qh(e){return qh=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},qh(e)}function Xh(e,t){return Xh=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Xh(e,t)}function Yh(e){var t=function(e,t){if("object"!=Ih(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Ih(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Ih(t)?t:t+""}var Kh=function(e){function t(e,n,r,o){var i,a,s,l,u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),i=Hh(this,t,[e,V,u]),a=i,s="size",l=new je,(s=Yh(s))in a?Object.defineProperty(a,s,{value:l,enumerable:!0,configurable:!0,writable:!0}):a[s]=l;var c=i.renderer.context;return i.bind(),c.texParameteri(c.TEXTURE_3D,c.TEXTURE_BASE_LEVEL,0),c.texParameteri(c.TEXTURE_3D,c.TEXTURE_MAX_LEVEL,0),i.createBuffer(n,r,o,null),i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Xh(e,t)}(t,e),n=t,r=[{key:"width",get:function(){return this.size.x}},{key:"height",get:function(){return this.size.y}},{key:"depth",get:function(){return this.size.z}},{key:"createBuffer",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;this.size.setValues(e,t,n);var o=this.renderer.context;this.bind(),this.setPixelStoreOptions(),o.texImage3D(o.TEXTURE_3D,0,this.internalFormat,e,t,n,0,this.format,this.type,r),this.setDefaultPixelStoreOptions(),this.mipsDirty=!0,this.generateMipsIfNeeded()}}],r&&Wh(n.prototype,r),o&&Wh(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(or);function Zh(e){return Zh="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Zh(e)}function Jh(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,rd(r.key),r)}}function $h(e,t,n){return t=ed(t),function(e,t){if(t&&("object"==Zh(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Qh()?Reflect.construct(t,n||[],ed(e).constructor):t.apply(e,n))}function Qh(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Qh=function(){return!!e})()}function ed(e){return ed=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},ed(e)}function td(e,t){return td=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},td(e,t)}function nd(e,t,n){return(t=rd(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function rd(e){var t=function(e,t){if("object"!=Zh(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Zh(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Zh(t)?t:t+""}var od=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),nd(n=$h(this,t,[e,r,o,i,a]),"frameBuffer",void 0),nd(n,"frameBufferComplete",!1),nd(n,"scaleToCanvas",!1),nd(n,"sizeMultiplier",1);var s=n.renderer.context;return n.frameBuffer=s.createFramebuffer(),s.bindFramebuffer(y,n.frameBuffer),s.framebufferTextureLayer(y,h,n.textureGL,0,0),n.frameBufferComplete=n.testBuffer(),s.bindFramebuffer(y,null),n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&td(e,t)}(t,e),n=t,r=[{key:"setSlice",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.renderer.context;n.bindFramebuffer(y,this.frameBuffer),n.framebufferTextureLayer(y,h,this.textureGL,t,e)}
2},{key:"setTexture3DSlice",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=this.renderer.context;r.bindFramebuffer(y,this.frameBuffer),r.framebufferTextureLayer(y,h,e.textureGL,n,t)}},{key:"hasDepth",value:function(){return!1}},{key:"setAsTarget",value:function(){this.renderer.context.bindFramebuffer(y,this.frameBuffer),this.renderer.renderState.setDepthMask(!1),this.mipsDirty=!0}},{key:"testBuffer",value:function(){var e=this.renderer.context;e.bindFramebuffer(y,this.frameBuffer);var t=e.checkFramebufferStatus(y);switch(t){case e.FRAMEBUFFER_COMPLETE:return!0;case e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return l.error("Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_ATTACHMENT",this.format),!1;case e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return l.error("Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",this.format),!1;case e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return l.error("Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_DIMENSIONS",this.format),!1;case e.FRAMEBUFFER_UNSUPPORTED:return l.error("Incomplete framebuffer: FRAMEBUFFER_UNSUPPORTED",this.format),!1;default:return l.error("Incomplete framebuffer: "+t,this.format),!1}}}],r&&Jh(n.prototype,r),o&&Jh(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(Kh);function id(e){return id="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},id(e)}function ad(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,ld(r.key),r)}}function sd(e,t,n){return(t=ld(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ld(e){var t=function(e,t){if("object"!=id(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=id(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==id(t)?t:t+""}var ud=function(){return e=function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),sd(this,"renderer",void 0),sd(this,"precomputeCurlMaterial",void 0),sd(this,"precomputeCurlTexture",void 0),sd(this,"precomputeDetailMaterial",void 0),sd(this,"precomputeDetailTexture",void 0),sd(this,"precomputeBaseMaterial",void 0),sd(this,"precomputeBaseTexture",void 0),this.renderer=t,this.precomputeCurlMaterial=new qn(t,n,"precompCurl"),this.precomputeCurlTexture=new sl(t,128,128,{clampToEdge:!1}
2),this.precomputeBaseMaterial=new qn(t,n,"precompBase"),this.precomputeBaseTexture=new od(t,128,32,128,{clampToEdge:!1,internalFormat:K,useMips:!0}),this.precomputeDetailMaterial=new qn(t,n,"precompDetail"),this.precomputeDetailTexture=new od(t,32,32,32,{clampToEdge:!1,internalFormat:K,useMips:!0})},(t=[{key:"init",value:function(e){for(var t=0;t<128;t++)this.precomputeBaseTexture.setSlice(t),this.precomputeBaseMaterial.setFloat("_Slice",t/128),this.renderer.blit(null,this.precomputeBaseTexture,this.precomputeBaseMaterial);for(var n=0;n<32;n++)this.precomputeDetailTexture.setSlice(n),this.precomputeDetailMaterial.setFloat("_Slice",n/32),this.renderer.blit(null,this.precomputeDetailTexture,this.precomputeDetailMaterial);this.renderer.blit(null,this.precomputeCurlTexture,this.precomputeCurlMaterial)}},{key:"destruct",value:function(){this.precomputeCurlMaterial.destruct(),this.precomputeCurlTexture.destruct(),this.precomputeDetailMaterial.destruct(),this.precomputeDetailTexture.destruct(),this.precomputeBaseMaterial.destruct(),this.prec
2omputeBaseTexture.destruct()}}])&&ad(e.prototype,t),n&&ad(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function cd(e){return cd="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},cd(e)}function fd(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,dd(r.key),r)}}function hd(e,t,n){return(t=dd(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function dd(e){var t=function(e,t){if("object"!=cd(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=cd(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==cd(t)?t:t+""}var pd=function(){return e=function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),hd(this,"renderer",void 0),hd(this,"cube",void 0),hd(this,"material",void 0),this.renderer=t,this.cube=new Al(this.renderer),this.material=new qn(t,n,"cloudsContinuous"),this.material.setPreMultipliedAlphaBlending(),this.material.setCullingFrontFace(),this.material.depthWrite=!1},(t=[{key:"init",value:function(e,t,n){var r=e.addGroup("cloud",this.material);r.addShaderParamFloat("_Opacity",.87),r.addShaderParamFloat("_Bias",.17),r.addShaderParamFloat("_CloudsTop",-3),r.addShaderParamFloat("_CloudsBottom",-15
2),r.addShaderParamFloat("_LowFrequency",.0075,0,.005),r.addShaderParamFloat("_HighFrequency",.114111),r.addShaderParamFloat("_HighFrequencyScale",.2243),r.addShaderParamFloat("_Brightness",1),r.addShaderParamFloat("_StepSize",1),this.material.setTexture("_Diffuse",t),this.material.setTexture("_Source",n.precomputeBaseTexture),this.material.setTexture("_SourceDetail",n.precomputeDetailTexture)}},{key:"draw",value:function(e,t){this.material.setMatrix("_ViewProjection",e.viewProjection),this.material.setVector3("_CameraPosition",e.worldPosition),this.material.setFloat("_Moved",t),this.material.setFloat("_Time",ns.instance.time),this.renderer.draw(this.cube,this.material)}},{key:"setLightDirection",value:function(e){this.material.setVector3("_LightDirection",e.camera.worldForward)}},{key:"destruct",value:function(){this.cube.destruct(),this.material.destruct()}}])&&fd(e.prototype,t),n&&fd(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function vd(e){return vd="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},vd(e)}function md(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,kd(r.key),r)}}function yd(e,t,n){return t=_d(t),function(e,t){if(t&&("object"==vd(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,bd()?Reflect.construct(t,n||[],_d(e).constructor):t.apply(e,n))}function bd(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(bd=function(){return!!e})()}function gd(e,t,n,r){var o=wd(_d(1&r?e.prototype:e),t,n);return 2&r&&"function"==typeof o?function(e){return o.apply(n,e)}:o}function wd(){return wd="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=_d(e)););return e}(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},wd.apply(null,arguments)}function _d(e){return _d=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},_d(e)}function xd(e,t){return xd=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},xd(e,t)}function Sd(e,t,n){return(t=kd(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function kd(e){var t=function(e,t){if("object"!=vd(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=vd(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==vd(t)?t:t+""}var Pd=function(e){function t(e,n){var r;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Sd(r=yd(this,t),"renderer",void 0),Sd(r,"mesh",void 0),Sd(r,"noise",void 0),Sd(r,"cloudsContinuous",void 0),Sd(r,"renderTarget",void 0),r.renderer=e,r.mesh=new Al(e),r.material=new qn(r.renderer,n,"sky"),r.material.setCullingFrontFace(),r.material.depthWrite=!1,r.noise=new ud(r.renderer,n),r.cloudsContinuous=new pd(r.renderer,n),r.renderTarget=new sl(r.renderer,1,1,{scaleToCanvas:!0,sizeMultiplier:.25,internalFormat:U}),r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&xd(e,t)}(t,e),n=t,(r=[{key:"init",value:function(e,t){var n=e.addGroup("Sky",this.material);n.collapsed=!0,this.material.setTexture("_Skybox",t.cubeFloat),this.noise.init(n),this.cloudsContinuous.init(n,t.diffuseCube,this.noise)}},{key:"handleModelLoaded",value:function(e,t,n){this.setLightDirection(t)}},{key:"setLightDirection",value:function(e){gd(t,"setLightDirection",this,3)([e]),this.cloudsContinuous.setLightDirection(e)}},{key:"draw",value:function(e,t,n){if(!n){var r=this.renderer.renderTarget;this.renderer.renderTarget=this.renderTarget,this.material.setVector3("_CamPos",e.worldPosition),this.material.setMatr
2ix("_ViewProjection",e.viewProjection),this.renderer.draw(this.mesh,this.material),this.cloudsContinuous.draw(e,t),this.renderer.blit(this.renderTarget,r),this.renderer.renderTarget=r}}},{key:"destruct",value:function(){this.mesh.destruct(),this.material.destruct(),this.cloudsContinuous.destruct(),this.renderTarget.destruct(),this.noise.destruct(),gd(t,"destruct",this,3)([])}}])&&md(n.prototype,r),o&&md(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(Dh);function Td(e){return Td="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Td(e)}function Md(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Od(r.key),r)}}function Ed(e,t,n){return(t=Od(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Od(e){var t=function(e,t){if("object"!=Td(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Td(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Td(t)?t:t+""}var jd=function(){return e=function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Ed(this,"renderer",void 0),Ed(this,"flipPivot",new Vn),Ed(this,"reflectionRenderTarget",void 0),Ed(this,"floorMesh",void 0),Ed(this,"material",void 0),Ed(this,"floorTransform",new Vn),this.renderer=t,this.reflectionRenderTarget=new sl(this.renderer,1,1,{scaleToCanvas:!0,sizeMultiplier:.5,internalFormat:R,depth:!0,useMips:!0}),this.flipPivot.scale=new je(1,-1,1),this.floorMesh=new Io(this.renderer),this.material=new qn(this.renderer,n,"puddleReflection"),this.material.setAlphaBlending()},t=[{key:"init",value:function(e,t,n){this.material.setTexture("_HeightMap",t),this.material.setFloat("_AspectRatio",t.aspectRatio),this.material.setFloat("_Scale",n),this.floorTransform.scaleScalar=n}},{key:"handleModelLoaded",value:function(e){this.material.setColor("_FogColor",e)}},{key:"draw",value:function(e,t,n){var r=this.renderer.renderTarget;this.renderer.renderTarget=this.reflectionRenderTarget,this.renderer.clearWithColor(0,0,0,0);var o=this.getParentRecursive(e);o.parent=this.flipPivot,e.setDirty(),t(e),o.parent=null,this.renderer.renderTarget=r,this.material.setFloat("_Moved",n),this.material.setVector3("_CameraPosition",e.worldPosition),this.material.setTexture("_Reflection",this.reflectionRenderTarget),this.material.setMatrix("_ViewProjection",e.viewProjection),this.material.setMatrix("_Model",this.floorTransform.worldMatrix),this.renderer.draw(this.floorMesh,this.material)}},{key:"getParentRecursive",value:function(e){for(;e.parent;)e=e.parent;return e}},{key:"destruct",value:function(){this.reflectionRenderTarget.destruct(),this.material.destruct(),this.floorMesh.destruct()}}],t&&Md(e.prototype,t),n&&Md(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function Dd(e){return Dd="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Dd(e)}function Ad(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Ld(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ld(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function Ld(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Cd(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Fd(r.key),r)}}function zd(e,t,n){return(t=Fd(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Fd(e){var t=function(e,t){if("object"!=Dd(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Dd(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Dd(t)?t:t+""}var Rd=n(12050),Vd=function(){return e=function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),zd(this,"renderer",void 0),zd(this,"meshes",[]),zd(this,"textures",[]),zd(this,"material",void 0),zd(this,"JSONLoader",void 0),zd(this,"textureIndices",[]),this.renderer=t,this.JSONLoader=new vi(n,Rd("./rocks.json")),this.material=new qn(t,n,"rocks"),this.material.setAlphaBlending(),this.material.depthWrite=!0,this.textures.push(new Ur(this.renderer,n,Rd("./T_RockGroup01_1_D.webp"),{useMips:!0})),this.textures.push(new Ur(this.renderer,n,Rd("./T_RockGroup01_2_D.webp"),{useMips:!0})),this.textures.push(new Ur(this.renderer,n,Rd("./T_RockGroup01_3_D.webp"),{useMips:!0})),this.textureIndices=[0,0,0,2,1]},(t=[{key:"init",value:function(e,t,n,r){this.parseJson(this.JSONLoader.data),this.material.setTexture("_HeightMap",t),this.material.setFloat("_AspectRatio",t.aspectRatio),this.material.setFloat("_Scale",n),this.material.setTexture("_brdfLUT",r.brdfLutTexture),this.material.setTexture("_IrradianceMap",r.diffuseCube),this.material.setTexture("_PrefilterMap",r.specularCube),this.material.setFloat("_MaxLod",r.mipmapWithMaxRoughness)}},{key:"parseJson",value:function(e){var t,n=Ad(e.meshes);try{for(n.s();!(t=n.n()).done;){var r=t.value,o=new de(this.renderer);o.name=r.name,r.indices.length>0&&o.setIndices(new Uint16Array(r.indices));var i,a=Ad(r.attributes);try{for(a.s();!(i=a.n()).done;){var s=i.value;o.setAttribute(s.name,s.stride,new Float32Array(s.data))}}catch(e){a.e(e)}finally{a.f()}this.meshes.push(o)}}catch(e){n.e(e)}finally{n.f()}}},{key:"handleModelLoaded",value:function(e,t){this.material.setColor("_FogColor",e),this.material.setMatr
2ix("_LightViewProjection",t.camera.viewProjection),this.material.setVector3("_LightDirection",t.camera.worldForward)}},{key:"draw",value:function(e,t,n){this.material.setMatrix("_ViewProjection",e.viewProjection),this.material.setVector3("_CamPos",e.worldPosition),this.material.setFloat("_Moved",t),this.material.setFloat("_DrawDepth",n?1:0);for(var r=0;r<this.meshes.length;r++)this.material.setFloat("_RockType",r),this.material.setTexture("_AlbedoMap",this.textures[this.textureIndices[r]]),this.renderer.drawInstanced(this.meshes[r],this.material,30)}},{key:"destruct",value:function(){for(var e=0;e<this.meshes.length;e++)this.meshes[e].destruct();for(var t=0;t<this.textures.length;t++)this.textures[t].destruct();this.material.destruct()}}])&&Cd(e.prototype,t),n&&Cd(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function Nd(e){return Nd="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Nd(e)}function Bd(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Xd(r.key),r)}}function Ud(e,t,n){return t=Hd(t),function(e,t){if(t&&("object"==Nd(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Id()?Reflect.construct(t,n||[],Hd(e).constructor):t.apply(e,n))}function Id(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Id=function(){return!!e})()}function Wd(){return Wd="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=Hd(e)););return e}(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},Wd.apply(null,arguments)}function Hd(e){return Hd=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Hd(e)}function Gd(e,t){return Gd=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Gd(e,t)}function qd(e,t,n){return(t=Xd(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Xd(e){var t=function(e,t){if("object"!=Nd(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Nd(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Nd(t)?t:t+""}var Yd=n(89908),Kd=function(e){function t(e,n){var r;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),qd(r=Ud(this,t),"renderer",void 0),qd(r,"mesh",void 0),qd(r,"noiseTexture",void 0),qd(r,"noiseMaterial",void 0),qd(r,"albedo1",void 0),qd(r,"albedo2",void 0),qd(r,"normal1",void 0),qd(r,"normal2",void 0),qd(r,"normalHeightMap",void 0),qd(r,"normalHeightMaterial",void 0),qd(r,"puddleReflection",void 0),qd(r,"rocks",void 0),qd(r,"scale",64),r.renderer=e,r.mesh=new Io(e,127,127,!0),Yo(r.mesh),r.material=new qn(r.renderer,n,"grassland"),r.noiseTexture=new sl(r.renderer,256,256,{useMips:!0,clampToEdge:!1}),r.noiseMaterial=new qn(r.renderer,n,"desertNoise"),r.albedo1=new Ur(r.renderer,n,Yd("./grasslands/mossy_mud1_albedo.webp"),{useMips:!0}),r.albedo2=new Ur(r.renderer,n,Yd("./grasslands/patchy-meadow1_albedo.webp"),{useMips:!0}),r.normal1=new Ur(r.renderer,n,Yd("./grasslands/mossy_mud1_Normal-ogl.webp"),{useMips:!0}),r.normal2=new Ur(r.renderer,n,Yd("./grasslands/patchy-meadow1_normal-ogl.webp"),{useMips:!0}),r.puddleReflection=new jd(e,n),r.normalHeightMap=new sl(r.renderer,128,512,{useMips:!1,clampToEdge:!1,internalFormat:U}),r.normalHeightMaterial=new qn(r.renderer,n,"grassLandsNormalHeight"),r.rocks=new Vd(e,n),r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Gd(e,t)}(t,e),n=t,r=[{key:"init",value:function(e,t){this.material.setTexture("_brdfLUT",t.brdfLutTexture),this.material.setTexture("_IrradianceMap",t.diffuseCube),this.material.setTexture("_PrefilterMap",t.specularCube),this.material.setFloat("_MaxLod",t.mipmapWithMaxRoughness),this.material.setFloat("_Scale",this.scale),this.material.setTexture("_AlbedoMap",this.albedo1),this.material.setTexture("_AlbedoMap2",this.albedo2),this.material.setTexture("_NormalMap",this.normal1),this.material.setTexture("_NormalMap2",this.normal2),this.renderer.blit(null,this.noiseTexture,this.noiseMaterial),this.material.setTexture("_Noise",this.noiseTexture),this.material.setFloat("_AspectRatio",this.normalHeightMap.width/this.normalHeightMap.height),this.normalHeightMaterial.setFloat("_AspectRatio",this.normalHeightMap.width/this.normalHeightMap.height),this.renderer.blit(null,this.normalHeightMap,this.normalHeightMaterial),this.material.setTexture("_NormalHeightMap",this.normalHeightMap),this.puddleReflection.init(e,this.normalHeightMap,this.scale),this.rocks.init(e,this.normalHeightMap,this.scale,t)}},{key:"handleModelLoaded",value:function(e,t,n){this.material.setFloat("_TrackStart",e.trackStart?e.trackStart:-3),this.material.setFloat("_TrackEnd",e.trackEnd?e.trackEnd:3),this.material.setFloat("_TrackWidth",e.trackWidth?e.trackWidth:0),this.material.setFloat("_TrackSpacing",e.trackSpacing?e.trackSpacing:0),this.material.setTexture("_ShadowMap",t.renderTextureBlurred),this.material.setColor("_FogColor",n),this.setLightDirection(t),this.rocks.handleModelLoaded(n,t),this.puddleReflection.handleModelLoaded(n)}},{key:"materials",get:function(){return[this.material,this.rocks.material]}},{key:"draw",value:function(e,t,n){this.material.setVector3("_CamPos",e.worldPosition),this.material.setMatr
2ix("_ViewProjection",e.viewProjection),this.material.setFloat("_DrawDepth",n?1:0),this.material.setFloat("_Moved",t),this.renderer.draw(this.mesh,this.material),this.rocks.draw(e,t,n)}},{key:"drawReflection",value:function(e,t,n){this.puddleReflection.draw(e,t,n)}},{key:"destruct",value:function(){var e,n,r,o,i;this.mesh.destruct(),this.material.destruct(),this.noiseTexture.destruct(),this.noiseMaterial.destruct(),this.albedo1.destruct(),this.albedo2.destruct(),this.normal1.destruct(),this.normal2.destruct(),this.normalHeightMap.destruct(),this.normalHeightMaterial.destruct(),this.puddleReflection.destruct(),this.rocks.destruct(),(e=t,n="destruct",r=this,i=Wd(Hd(1&(o=3)?e.prototype:e),n,r),2&o&&"function"==typeof i?function(e){return i.apply(r,e)}:i)([])}}],r&&Bd(n.prototype,r),o&&Bd(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(Dh);function Zd(e){return Zd="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Zd(e)}function Jd(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Jd(Object(n),!0).forEach((function(t){Qd(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Jd(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Qd(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=Zd(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Zd(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Zd(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ep(e){return e.keys().reduce((function(t,n){return $d($d({},t),{},Qd({},n,e(n)))}),{})}function tp(e){return tp="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},tp(e)}function np(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,op(r.key),r)}}function rp(e,t,n){return(t=op(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function op(e){var t=function(e,t){if("object"!=tp(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=tp(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==tp(t)?t:t+""}var ip=n(89908),ap=function(){return e=function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),rp(this,"material",void 0),rp(this,"renderer",void 0),rp(this,"texture",void 0),this.renderer=t,this.material=new qn(t,n,"dustAndFlares"),this.material.setAdditiveBlending(),this.material.depthTest=!1,this.texture=new Ur(this.renderer,n,ip("./dustAndFlares.webp"),{useMips:!0})},(t=[{key:"draw",value:function(e,t){var n=_e(.8,1,-je.dot(t,e.worldForward));n<=0||(this.material.setFloat("_Opacity",.2*n),this.material.setFloat("_TextureAspectRatio",this.texture.aspectRatio),this.material.setFloat("_AspectRatio",this.renderer.aspectRatio),this.renderer.blit(this.texture,null,this.material))}},{key:"destruct",value:function(){this.material.destruct(),this.texture.destruct()}}])&&np(e.prototype,t),n&&np(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function sp(e){return sp="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},sp(e)}function lp(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,cp(r.key),r)}}function up(e,t,n){return(t=cp(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function cp(e){var t=function(e,t){if("object"!=sp(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=sp(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==sp(t)?t:t+""}var fp=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),up(this,"texture",void 0),up(this,"bounds",new ze),up(this,"renderer",void 0),up(this,"material",void 0),up(this,"ocean",void 0),up(this,"dirty",!0),up(this,"speed",e.SPEED),up(this,"scale",e.SCALE),up(this,"spread",e.SPREAD),up(this,"track",e.TRACK),this.renderer=t,this.material=new qn(this.renderer,n,"kelvinBake"),this.texture=new sl(this.renderer,1,1,{internalFormat:U,linear:!0,
2clampToEdge:!0,useMips:!1})}return t=e,(n=[{key:"init",value:function(t,n){var r=this;this.ocean=n,n.setTexture("_KelvinMap",this.texture);var o=t.addGroup("Kelvin",this.material);o.addParamFloat("_KelvinHeight",.15,0,1,null,[n]),o.addShaderParamFloat("_WakeSpeed",e.SPEED,0,3,(function(e){r.speed=e,r.dirty=!0})),o.addShaderParamFloat("_KelvinScale",e.SCALE,0,1,(function(e){r.scale=e,r.dirty=!0})),o.addShaderParamFloat("_KelvinSpread",e.SPREAD,.2,10,(function(e){r.spread=e,r.dirty=!0})),o.addShaderParamFloat("_KelvinTrack",e.TRACK,10,120,(function(e){r.track=e,r.dirty=!0})),o.addShaderParamFloat("_KelvinSoften",.9,.1,2,(function(){r.dirty=!0})),o.collapsed=!0}},{key:"peak",value:function(){return Math.max(Math.PI*this.speed*this.speed/e.GRAVITY*this.scale,.05)}},{key:"texelSize",get:function(){return this.peak()/e.TEXELS_PER_PEAK}},{key:"resolutionFor",value:function(t,n){var r=e.RESOLUTION_STEP,o=Math.ceil(t/n/r)*r;return Math.min(Math.max(o,e.MIN_RESOLUTION),e.MAX_RESOLUTION)}},{key:"update",value:function(){if(!this.dirty)return!1;this.dirty=!1;var t=this.peak(),n=Math.max(t*this.spread,.05),r=t+e.REACH*n,o=t/e.TEXELS_PER_PEAK,i=2*o,a=-r-i,s=r+i,l=this.track+r+i-a,u=2*s;this.texture.setSize(this.resolutionFor(l,o),this.resolutionFor(u,o)),this.bounds.setValues(a,-s,1/l,1/u),this.material.setVector4("_KelvinBounds",this.bounds),this.ocean.setVector4("_KelvinBounds",this.bounds),this.ocean.setFloat("_KelvinWaveLength",2*t);var c=this.renderer.renderTarget;return this.renderer.blit(null,this.texture,this.material,!1,!1),this.renderer.renderTarget=c,!0}}])&&lp(t.prototype,n),r&&lp(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,n,r}();function hp(e){return hp="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},hp(e)}function dp(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,vp(r.key),r)}}function pp(e,t,n){return(t=vp(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function vp(e){var t=function(e,t){if("object"!=hp(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=hp(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==hp(t)?t:t+""}up(fp,"GRAVITY",.981),up(fp,"REACH",4),up(fp,"TEXELS_PER_PEAK",12),up(fp,"RESOLUTION_STEP",16),up(fp,"MIN_RESOLUTION",32),up(fp,"MAX_RESOLUTION",1024),up(fp,"SPEED",1.1),up(fp,"SCALE",.35),up(fp,"SPREAD",4),up(fp,"TRACK",40);var mp=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),pp(this,"texture",void 0),pp(this,"renderer",void 0),pp(this,"material",void 0),pp(this,"ocean",void 0),this.renderer=t,this.material=new qn(this.renderer,n,"rippleDetailBake"),this.texture=new sl(this.renderer,e.SIZE,e.SIZE,{internalFormat:Z,linear:!0,clampToEdge:!1,useMips:!0,anisotropy:8})}return t=e,(n=[{key:"init",value:function(e,t){this.ocean=e,e.setTexture("_RippleDetail",this.texture),this.setWavelength(t)}},{key:"setWavelength",value:function(t){this.material.setFloat("_DetailWavelength",t),this.ocean.setFloat("_RippleTile",e.TILE_CELLS*t)}},{key:"update",value:function(e){this.material.setFloat("_Time",e);var t=this.renderer.renderTarget;this.renderer.blit(null,this.texture,this.material,!1,!1),this.renderer.renderTarget=t}}])&&dp(t.prototype,n),r&&dp(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,n,r}();function yp(e){return yp="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},yp(e)}function bp(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,wp(r.key),r)}}function gp(e,t,n){return(t=wp(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function wp(e){var t=function(e,t){if("object"!=yp(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=yp(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==yp(t)?t:t+""}pp(mp,"SIZE",512),pp(mp,"TILE_CELLS",12);var _p=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),gp(this,"texture",void 0),gp(this,"coverage",void 0),gp(this,"renderer",void 0),gp(this,"material",void 0),gp(this,"coverageMaterial",void 0),gp(this,"ocean",void 0),gp(this,"kelvin",void 0),gp(this,"bounds",new ze),gp(this,"tileDirty",!0),gp(this,"coverageDirty",!0),gp(this,"hull",new je(NaN,NaN,NaN)),gp(this,"armSpread",0),gp(this,"armWidth",0),gp(this,"armLength",0),gp(this,"washWidth",0),gp(this,"washSpread",0),gp(this,"washLength",0),this.renderer=t,this.material=new qn(this.renderer,n,"foamBake"),this.coverageMaterial=new qn(this.renderer,n,"foamCoverageBake"),this.texture=new sl(this.renderer,e.TILE_SIZE,e.TILE_SIZE,{internalFormat:R,linear:!0,
2clampToEdge:!1,useMips:!0,anisotropy:8}),this.coverage=new sl(this.renderer,1,1,{internalFormat:K,linear:!0,clampToEdge:!0,useMips:!1})}return t=e,n=[{key:"init",value:function(e,t,n){var r=this;this.ocean=t,this.kelvin=n,t.setTexture("_FoamMap",this.texture),t.setTexture("_FoamCoverage",this.coverage),this.coverageMaterial.setTexture("_KelvinMap",n.texture);var o=e.addGroup("Foam",t);o.addParamFloat("_FoamPatch",.8,0,1,(function(){r.tileDirty=!0}),[this.material]),o.addParamFloat("_FoamWarp",1.5,0,2,(function(){r.tileDirty=!0}),[this.material]),o.addParamFloat("_FoamContrast",1.5,.3,3,(function(){r.tileDirty=!0}),[this.material]),o.addShaderParamFloat("_FoamTile",3,2,40),o.addShaderParamFloat("_FoamDrift",1.1,0,4),o.addShaderParamFloat("_FoamAmount",1,0,2),o.addShaderParamFloat("_FoamEdge",.55,.02,1),o.addShaderParamFloat("_FoamBump",.8,0,3),o.addShaderParamColor("_FoamColor",Ge.fromHex("#e9f1f4").vector3,null,{gamma:!0}),this.bakeParam(o,"_FoamArmStrength",1,0,2),this.bakeParam(o,"_FoamArmSpread",.3,0,1,(function(e){return r.armSpread=e})),this.bakeParam(o,"_FoamArmWidth",1.1,.1,5,(function(e){return r.armWidth=e})),this.bakeParam(o,"_FoamArmLength",20,2,80,(function(e){return r.armLength=e})),this.bakeParam(o,"_FoamWashStrength",1,0,2),this.bakeParam(o,"_FoamWashWidth",1.4,.2,4,(function(e){return r.washWidth=e})),this.bakeParam(o,"_FoamWashSpread",.07,0,.5,(function(e){return r.washSpread=e})),this.bakeParam(o,"_FoamWashLength",40,1,80,(function(e){return r.washLength=e})),this.bakeParam(o,"_FoamWakeStrength",.62,0,2),this.bakeParam(o,"_FoamBreak",.08,.005,.5),o.collapsed=!0}},{key:"bakeParam",value:function(e,t,n,r,o){var i=this,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null;null==a||a(n),e.addParamFloat(t,n,r,o,(function(e){null==a||a(e),i.coverageDirty=!0}),[this.coverageMaterial])}},{key:"setHull",value:function(e,t,n){e===this.hull.x&&t===this.hull.y&&n===this.hull.z||(this.hull.setValues(e,t,n),this.coverageMaterial.setVector3("_WakeHull",this.hull),this.coverageDirty=!0)}},{key:"invalidateCoverage",value:function(){this.coverageDirty=!0}},{key:"update",value:function(){this.tileDirty&&(this.tileDirty=!1,this.blit(this.texture,this.material)),this.coverageDirty&&(this.coverageDirty=!1,this.bakeCoverage())}},{key:"bakeCoverage",value:function(){var t=Math.max(e.REACH*this.armLength,this.hull.y+e.REACH*this.washLength),n=3*this.armWidth,r=Math.max(this.hull.x+t*this.armSpread+3*this.armWidth,this.hull.x*this.washWidth+Math.max(t-this.hull.y,0)*this.washSpread+this.armWidth),o=this.kelvin.bounds,i=Math.min(-n,o.x),a=Math.max(t,o.x+1/o.z)-i,s=Math.max(r,-o.y),l=this.kelvin.texelSize;this.coverage.setSize(e.resolutionFor(a,l),e.resolutionFor(2*s,l)),this.bounds.setValues(i,-s,1/a,1/(2*s)),this.coverageMaterial.setVector4("_FoamBounds",this.bounds),this.ocean.setVector4("_FoamBounds",this.bounds),this.coverageMaterial.setVector4("_KelvinBounds",this.kelvin.bounds),this.blit(this.coverage,this.coverageMaterial)}},{key:"blit",value:function(e,t){var n=this.renderer.renderTarget;this.renderer.blit(null,e,t,!1,!1),this.renderer.renderTarget=n}}],r=[{key:"resolutionFor",value:function(t,n){var r=e.RESOLUTION_STEP,o=Math.ceil(t/n/r)*r;return Math.min(Math.max(o,e.MIN_RESOLUTION),e.MAX_RESOLUTION)}}],n&&bp(t.prototype,n),r&&bp(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,n,r}();function xp(e){return xp="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},xp(e)}function Sp(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Op(r.key),r)}}function kp(e,t,n){return t=Tp(t),function(e,t){if(t&&("object"==xp(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Pp()?Reflect.construct(t,n||[],Tp(e).constructor):t.apply(e,n))}function Pp(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Pp=function(){return!!e})()}
2function Tp(e){return Tp=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Tp(e)}function Mp(e,t){return Mp=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Mp(e,t)}function Ep(e,t,n){return(t=Op(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Op(e){var t=function(e,t){if("object"!=xp(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=xp(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==xp(t)?t:t+""}gp(_p,"TILE_SIZE",512),gp(_p,"REACH",4),gp(_p,"RESOLUTION_STEP",16),gp(_p,"MIN_RESOLUTION",32),gp(_p,"MAX_RESOLUTION",1024);var jp=function(e){function t(e,n){var r;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Ep(r=kp(this,t),"renderer",void 0),Ep(r,"mesh",void 0),Ep(r,"gridColumns",0),Ep(r,"gridRows",0),Ep(r,"skyMesh",void 0),Ep(r,"skyMaterial",void 0),Ep(r,"kelvin",void 0),Ep(r,"rippleDetail",void 0),Ep(r,"foam",void 0),Ep(r,"seaLevel",void 0),Ep(r,"blockerCenters",t.BLOCKER_CENTERS.map((function(e){return e.clone()}))),Ep(r,"blockerSizes",t.BLOCKER_SIZES.map((function(e){return e.clone()}))),Ep(r,"blockerTapers",t.BLOCKER_TAPERS.slice()),Ep(r,"inverseViewProjection",new jn),Ep(r,"rayBase",new je),Ep(r,"rayDX",new je),Ep(r,"rayDY",new je),r.renderer=e,r.material=new qn(r.renderer,n,"ocean"),r.material.setCullingDisabled(),r.skyMesh=new Al(e),r.skyMaterial=new qn(r.renderer,n,"sky"),r.skyMaterial.setCullingFrontFace(),r.skyMaterial.depthWrite=!1,r.skyMaterial.addShaderDefines(["HORIZON_FALLOFF"]),r.kelvin=new fp(r.renderer,n),r.rippleDetail=new mp(r.renderer,n),r.foam=new _p(r.renderer,n),r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Mp(e,t)}(t,e),n=t,(r=[{key:"init",value:function(e,n){var r=this,o=e.addGroup("Ocean",[this.material,this.skyMaterial]);this.seaLevel=o.addShaderParamFloat("_SeaLevel",0,-3,3),o.addShaderParamFloat("_GridBias",1,.3,3),o.addShaderParamFloat("_WaveLength",4,2,40),o.addShaderParamFloat("_WaveHeight",.06,0,1),o.addShaderParamFloat("_WaveSteepness",.75,0,1),o.addShaderParamFloat("_WaveFalloff",.62,.4,.85),o.addShaderParamFloat("_WindAngle",-2.8,-Math.PI,Math.PI),o.addShaderParamFloat("_WindSpread",.9,0,2),o.addShaderParamFloat("_WaterRoughness",.045,0,.4),o.addShaderParamFloat("_FarRoughness",.22,0,.6),o.addShaderParamFloat("_DetailStrength",.05),o.addShaderParamFloat("_DetailWavelength",t.DETAIL_WAVELENGTH,.1,4,(function(e){r.rippleDetail.setWavelength(e)})),o.addShaderParamFloat("_ScatterStrength",1.2,0,4),o.addShaderParamFloat("_FadeStart",.53,0,1),o.addShaderParamFloat("_HorizonFalloff",.2,.01,.4),o.addShaderParamColor("_DeepColor",Ge.fromHex("#0b2530").vector3,null,{gamma:!0}),o.addShaderParamColor("_ScatterColor",Ge.fromHex("#1d6b63").vector3,null,{gamma:!0}),o.addShaderParamColor("_HorizonColor",Ge.fromHex("#ffffff").vector3,null,{gamma:!0}),o.collapsed=!0;var i=o.addGroup("Blockers",this.material);i.addShaderParamFloat("_BlockerStrength",.95,0,1),i.addShaderParamFloat("_BlockerSoftness",1,.01,3);for(var a=0;a<this.blockerCenters.length;a++)this.addBlockerParams(i,a);i.collapsed=!0,this.kelvin.init(o,this.material),this.updateWakeStem(),this.rippleDetail.init(this.material,t.DETAIL_WAVELENGTH),this.foam.init(o,this.material,this.kelvin),this.material.setTexture("_brdfLUT",n.brdfLutTexture),this.material.setTexture("_IrradianceMap",n.diffuseCube),this.material.setTexture("_PrefilterMap",n.specularCube),this.material.setTexture("_Skybox",n.cubeFloat),this.material.setFloat("_MaxLod",n.mipmapWithMaxRoughness),this.material.setFloat("_MaxDistance",t.MAX_DISTANCE),this.updateGridResolution(),this.skyMaterial.setTexture("_Skybox",n.cubeFloat)}},{key:"updateWakeStem",value:function(){var e=this.blockerCenters[0],t=this.blockerSizes[0];this.material.setVector2("_WakeStem",new be(e.x,e.z-t.z)),this.foam.setHull(t.x,2*t.z,this.blockerTapers[0])}},{key:"addBlockerParams",value:function(e,n){for(var r=this,o=this.blockerCenters[n],i=this.blockerSizes[n],a="_Blocker".concat(n,"Center"),s="_Blocker".concat(n,"Size"),l=["x","y","z"],u=function(){var t=f[c];e.addParamFloat("".concat(a).concat(t.toUpperCase()),o[t],-15,15,(function(e){o[t]=e,r.material.setVector3(a,o),r.updateWakeStem()}))},c=0,f=l;c<f.length;c++)u();for(var h=function(){var t=p[d];e.addParamFloat("".concat(s).concat(t.toUpperCase()),i[t],0,15,(function(e){i[t]=e,r.material.setVector3(s,i),r.updateWakeStem()}))},d=0,p=l;d<p.length;d++)h();e.addShaderParamFloat("_Blocker".concat(n,"Taper"),t.BLOCKER_TAPERS[n],-8,8,(function(e){r.blockerTapers[n]=e,r.updateWakeStem()})),this.material.setVector3(a,o),this.material.setVector3(s,i)}},{key:"handleModelLoaded",value:function(e,t,n){var r;this.material.setTexture("_ShadowMap",t.renderTextureBlurred),this.seaLevel.setValue(null!==(r=e.seaLevel)&&void 0!==r?r:0,!0,!0),this.setLightDirection(t)}},{key:"updateGridResolution",value:function(){var e=Math.max(Math.round(t.SEGMENTS_Y*this.renderer.aspectRatio),t.MIN_SEGMENTS),n=t.SEGMENTS_Y;if(e!==this.gridColumns||n!==this.gridRows){this.gridColumns=e,this.gridRows=n,this.mesh&&this.mesh.destruct();for(var r=e*n,o=new Float32Array(2*r),i=0,a=0;a<n;a++)for(var s=0;s<e;s++)o[i++]=s/(e-1),o[i++]=a/(n-1);var u=new Uint32Array(6*(e-1)*(n-1));i=0;for(var c=0;c<n-1;c++)for(var f=0;f<e-1;f++){var h=c*e+f;u[i++]=h,u[i++]=h+e,u[i++]=h+1,u[i++]=h+e,u[i++]=h+e+1,u[i++]=h+1}this.mesh=new de(this.renderer),this.mesh.setUV0(o),r>=65536?this.mesh.setIndices32(u):this.mesh.setIndices(Uint16Array.from(u)),l.log("ocean vertex count",this.mesh.vertexCount),this.material.setVector2("_Segments",new be(e,n))}}},{key:"updateRayBasis",value:function(e){var t=jn.invert(e.viewProjection,this.inverseViewProjection).m,n=e.worldPosition;this.rayDX.setValues(t[0]-n.x*t[3],t[1]-n.y*t[3],t[2]-n.z*t[3]),this.rayDY.setValues(t[4]-n.x*t[7],t[5]-n.y*t[7],t[6]-n.z*t[7]);var r=t[11]+t[15];this.rayBase.setValues(t[8]+t[12]-n.x*r,t[9]+t[13]-n.y*r,t[10]+t[14]-n.z*r),this.material.setVector3("_RayBase",this.rayBase),this.material.setVector3("_RayDX",this.rayDX),this.material.setVector3("_RayDY",this.rayDY)}},{key:"draw",value:function(e,t,n){n||(this.kelvin.update()&&this.foam.invalidateCoverage(),this.rippleDetail.update(.2*t),this.foam.update(
2),this.skyMaterial.setVector3("_CamPos",e.worldPosition),this.skyMaterial.setMatrix("_ViewProjection",e.viewProjection),this.renderer.draw(this.skyMesh,this.skyMaterial),this.updateGridResolution(),this.updateRayBasis(e),this.material.setVector3("_CamPos",e.worldPosition),this.material.setMatrix("_ViewProjection",e.viewProjection),this.material.setFloat("_Time",.2*t),this.renderer.draw(this.mesh,this.material))}}])&&Sp(n.prototype,r),o&&Sp(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(Dh);function Dp(e){return Dp="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Dp(e)}function Ap(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Vp(r.key),r)}}function Lp(e,t,n){return t=zp(t),function(e,t){if(t&&("object"==Dp(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Cp()?Reflect.construct(t,n||[],zp(e).constructor):t.apply(e,n))}function Cp(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Cp=function(){return!!e})()}function zp(e){return zp=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},zp(e)}
2function Fp(e,t){return Fp=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Fp(e,t)}function Rp(e,t,n){return(t=Vp(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Vp(e){var t=function(e,t){if("object"!=Dp(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Dp(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Dp(t)?t:t+""}Ep(jp,"SEGMENTS_Y",350),Ep(jp,"MIN_SEGMENTS",8),Ep(jp,"MAX_DISTANCE",80),Ep(jp,"BLOCKER_CENTERS",[new je(.05,.85,-.08),new je(.05,2.7,-4.7)]),Ep(jp,"BLOCKER_SIZES",[new je(1.5,1.6,10.2),new je(1.2,1.2,3.7)]),Ep(jp,"BLOCKER_TAPERS",[3,0]),Ep(jp,"DETAIL_WAVELENGTH",.9);var Np=n(89908),Bp=function(e){function t(e,n){var r;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Rp(r=Lp(this,t),"renderer",void 0),Rp(r,"mesh",void 0),Rp(r,"floorMap",void 0),Rp(r,"wallMap",void 0),r.renderer=e,r.mesh=new Al(e),r.material=new qn(r.renderer,n,"concreteBox"),r.material.setCullingFrontFace();var o={useMips:!0,clampToEdge:!1,anisotropy:4};return r.floorMap=new Ur(r.renderer,n,Np("./concreteBox/floor1k.webp"),o),r.wallMap=new Ur(r.renderer,n,Np("./concreteBox/wall2k.webp"),o),r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Fp(e,t)}(t,e),n=t,r=[{key:"init",value:function(e,t){var n=e.addGroup("Concrete Box",this.material);n.addShaderParamFloat("_Brightness",2.2,0,8),n.addShaderParamFloat("_Falloff",.03),n.addShaderParamFloat("_CornerDarkness",.5),n.addShaderParamFloat("_SpotBrightness",1,0,2),n.collapsed=!0,this.material.setTexture("_FloorMap",this.floorMap),this.material.setTexture("_WallMap",this.wallMap)}},{key:"setLightDirection",value:function(e){}},{key:"draw",value:function(e,t){arguments.length>2&&void 0!==arguments[2]&&arguments[2]||(this.material.setMatrix("_ViewProjection",e.viewProjection),this.renderer.draw(this.mesh,this.material))}},{key:"destruct",value:function(){this.mesh.destruct(),this.material.destruct(),this.floorMap.destruct(),this.wallMap.destruct()}}],r&&Ap(n.prototype,r),o&&Ap(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(Dh);function Up(e){return Up="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Up(e)}function Ip(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=Hp(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function Wp(e){return function(e){if(Array.isArray(e))return Gp(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Hp(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Hp(e,t){if(e){if("string"==typeof e)return Gp(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Gp(e,t):void 0}}function Gp(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function qp(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Yp(r.key),r)}}
2function Xp(e,t,n){return(t=Yp(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Yp(e){var t=function(e,t){if("object"!=Up(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Up(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Up(t)?t:t+""}var Kp=function(){return e=function e(t,n,r,o){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:256;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Xp(this,"camera",void 0),Xp(this,"renderTexture",void 0),Xp(this,"renderTextureBlurred",void 0),Xp(this,"renderer",void 0),Xp(this,"twoPassBlur",void 0),Xp(this,"depthMaterial",void 0),Xp(this,"cameraFov",void 0),Xp(this,"positionTween",new ac(new je(0,3,4))),Xp(this,"targetTween",new ac(new je)),Xp(this,"defaultPosition",new je(0,3,4)),Xp(this,"defaultTarget",new je),Xp(this,"hotspotCameraPosition",null),Xp(this,"hotspotTarget",new je),Xp(this,"boundsCenter",new je),Xp(this,"boundsRadius",1),Xp(this,"depthWindow",new be),
2Xp(this,"lookAtHelper",new Vn),Xp(this,"paramGroup",void 0),Xp(this,"litMaterials",[]),Xp(this,"dirty",!0),Xp(this,"angleScale",void 0),Xp(this,"offsetRight",void 0),Xp(this,"offsetUp",void 0),Xp(this,"range",void 0),Xp(this,"internalFormat",Z),this.renderer=t,this.twoPassBlur=r,this.cameraFov=o,this.renderTexture=new sl(t,i,i,{internalFormat:this.internalFormat,depth:!0}),this.renderTextureBlurred=new sl(t,i,i,{internalFormat:this.internalFormat,depth:!1}),this.renderTextureBlurred.autoGenerateMips=!0,this.camera=new Fs(o,.1,20),this.camera.projection.aspectRatio=1,this.depthMaterial=new qn(t,n,"spotDepth")},(t=[{key:"init",value:function(e){var t=this,n=e.addGroup("Infantry Spotlight",this.depthMaterial);this.paramGroup=n,this.angleScale=n.addParamFloat("SpotAngleScale",.75,.2,1,(function(){return t.dirty=!0})),n.addShaderParamFloat("_ConeSoftness",.15,.01,1),this.offsetRight=n.addParamFloat("SpotOffsetRight",1,-4,4,(function(){return t.refreshHotspotPose()})),this.offsetUp=n.addParamFloat("SpotOffsetUp",.5,-4,4,(function(){return t.refreshHotspotPose()})),n.addShaderParamFloat("_SpotStrength",8,0,40),this.range=n.addShaderParamFloat("_SpotRange",20,10,60,(function(){return t.dirty=!0})),n.addShaderParamColor("_SpotColor",new je(1,.97,.93),null,{gamma:!0}),n.addShaderParamColor("_AmbientColor",new je(.42,.48,.55),null,{gamma:!0}),n.addShaderParamFloat("_AmbientStrength",3,0,10),n.addShaderParamFloat("_SpotVarianceMin",.002,0,.05),n.addShaderParamFloat("_SpotBleedThreshold",0),n.collapsed=!0}},{key:"handleModelLoaded",value:function(e,t,n,r,o){var i,a,s;this.litMaterials=[].concat(Wp(r.materials),Wp(o)),this.paramGroup.setMaterials([].concat(Wp(this.litMaterials),[this.depthMaterial]));var l,u=Ip(this.litMaterials);try{for(u.s();!(l=u.n()).done;)l.value.setTexture("_SpotShadowMap",this.renderTextureBlurred)}catch(e){u.e(e)}finally{u.f()}this.dirty=!0;var c=null!==(i=e.lightDirectionX)&&void 0!==i?i:.78,f=null!==(a=e.lightDirectionY)&&void 0!==a?a:-2.3,h=new je(Math.sin(f)*Math.cos(c),Math.sin(c),Math.cos(f)*Math.cos(c)).normalize();this.boundsCenter=t.clone(),this.boundsRadius=Math.max(n,.01),this.defaultTarget=t.clone(),this.defaultPosition=t.clone().add(h.multiplyScalar(null!==(s=e.cameraDist)&&void 0!==s?s:5)),this.hotspotCameraPosition=null,this.positionTween.fromTo(this.defaultPosition,this.defaultPosition,0),this.targetTween.fromTo(this.defaultTarget,this.defaultTarget,0)}},{key:"clearMaterials",value:function(){this.litMaterials=[],this.paramGroup.setMaterials(this.depthMaterial)}},{key:"animateToHotspot",value:function(e,t,n){this.hotspotCameraPosition=e.clone(),this.hotspotTarget=t.clone(),this.animateTo(this.hotspotPosition(),this.hotspotTarget,n)}},{key:"animateToDefault",value:function(e){this.hotspotCameraPosition=null,this.animateTo(this.defaultPosition,this.defaultTarget,e)}},{key:"draw",value:function(e,t){var n=!this.positionTween.completed||!this.targetTween.completed;this.positionTween.update(e),this.targetTween.update(e),this.camera.projection.FOV=this.cameraFov*this.angleScale.value,this.camera.projection.far=this.range.value,(n||this.dirty||this.camera.projection.dirty)&&(this.dirty=!1,this.camera.lookAt(this.positionTween.value,this.targetTween.value),this.setPoseUniforms(),this.renderer.renderTarget=this.renderTexture,this.renderer.clearWithColor(.5,.25,0,0),t.drawDepth(this.camera,this.depthMaterial),this.renderer.renderTarget=void 0,this.twoPassBlur.draw(this.renderTexture,this.renderTextureBlurred),this.renderer.renderTarget=void 0)}},{key:"setPoseUniforms",value:function(){var e=je.distance(this.camera.worldPosition,this.boundsCenter);this.depthWindow.setValues(Math.max(e-this.boundsRadius,.01),1/(2*this.boundsRadius)),this.depthMaterial.setMatrix("_ViewProjection",this.camera.viewProjection),this.depthMaterial.setVector3("_SpotPosition",this.camera.worldPosition),this.depthMaterial.setVector2("_SpotDepthWindow",this.depthWindow);var t,n=Ip(this.litMaterials);try{for(n.s();!(t=n.n()).done;){var r=t.value;r.setVector3("_SpotPosition",this.camera.worldPosition),r.setMatrix("_SpotViewProjection",this.camera.viewProjection),r.setVector2("_SpotDepthWindow",this.depthWindow)}}catch(e){n.e(e)}finally{n.f()}}},{key:"animateTo",value:function(e,t,n){this.positionTween.to(e.clone(),n,void 0,void 0,tc),this.targetTween.to(t.clone(),n,void 0,void 0,tc)}},{key:"hotspotPosition",value:function(){var e=this.hotspotCameraPosition;return this.lookAtHelper.lookAt(e,this.hotspotTarget),e.clone().add(this.lookAtHelper.worldRight.multiplyScalar(this.offsetRight.value)).add(this.lookAtHelper.worldUp.multiplyScalar(this.offsetUp.value))}},{key:"refreshHotspotPose",value:function(){this.hotspotCameraPosition&&this.animateTo(this.hotspotPosition(),this.hotspotTarget,0)}}])&&qp(e.prototype,t),n&&qp(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function Zp(e){return Zp="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Zp(e)}function Jp(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];
vendor: 4,863 bytes, line 2
2if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return $p(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?$p(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function $p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Qp(){Qp=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,o=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function c(e,t,n,r){var i=t&&t.prototype instanceof y?t:y,a=Object.create(i.prototype),s=new j(r||[]);return o(a,"_invoke",{value:T(e,n,s)}),a}function f(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=c;var h="suspendedStart",d="suspendedYield",p="executing",v="completed",m={};function y(){}function b(){}function g(){}var w={};u(w,a,(function(){return this}));var _=Object.getPrototypeOf,x=_&&_(_(D([])));x&&x!==n&&r.call(x,a)&&(w=x);var S=g.prototype=y.prototype=Object.create(w);function k(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function P(e,t){function n(o,i,a,s){var l=f(e[o],e,i);if("throw"!==l.type){var u=l.arg,c=u.value;return c&&"object"==Zp(c)&&r.call(c,"__await")?t.resolve(c.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):t.resolve(c).then((function(e){u.value=e,a(u)}),(function(e){return n("throw",e,a,s)}))}s(l.arg)}var i;o(this,"_invoke",{value:function(e,r){function o(){return new t((function(t,o){n(e,r,t,o)}))}return i=i?i.then(o,o):o()}})}function T(t,n,r){var o=h;return function(i,a){if(o===p)throw Error("Generator is already running");if(o===v){if("throw"===i)throw a;return{value:e,done:!0}}for(r.method=i,r.arg=a;;){var s=r.delegate;if(s){var l=M(s,r);if(l){if(l===m)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(o===h)throw o=v,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);o=p;var u=f(t,n,r);if("normal"===u.type){if(o=r.done?v:d,u.arg===m)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(o=v,r.method="throw",r.arg=u.arg)}}}function M(t,n){var r=n.method,o=t.iterator[r];if(o===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,M(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),m;var i=f(o,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,m;var a=i.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,m):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function E(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function O(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function j(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(E,this),this.reset(!0)}function D(t){if(t||""===t){var n=t[a];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function n(){for(;++o<t.length;)if(r.call(t,o))return n.value=t[o],n.done=!1,n;return n.value=e,n.done=!0,n};return i.next=i}}throw new TypeError(Zp(t)+" is not iterable")}return b.prototype=g,o(S,"constructor",{value:g,configurable:!0}),o(g,"constructor",{value:b,configurable:!0}),b.displayName=u(g,l,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===b||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,g):(e.__proto__=g,u(e,l,"GeneratorFunction")),e.prototype=Object.create(S),e},t.awrap=function(e){return{__await:e}},k(P.prototype),u(P.prototype,s,(function(){return this})),t.AsyncIterator=P,t.async=function(e,n,r,o,i){void 0===i&&(i=Prom
2ise);var a=new P(c(e,n,r,o),i);return t.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},k(S),u(S,l,"Generator"),u(S,a,(function(){return this})),u(S,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=D,j.prototype={constructor:j,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(O),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function o(r,o){return s.type="throw",s.arg=t,n.next=r,o&&(n.method="next",n.arg=e),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var l=r.call(a,"catchLoc"),u=r.call(a,"finallyLoc");if(l&&u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,m):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),O(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;O(n)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:D(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),m}},t}function ev(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function tv(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ev(Object(n),!0).forEach((function(t){ov(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ev(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function nv(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function rv(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,iv(r.key),r)}}function ov(e,t,n){return(t=iv(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function iv(e){var t=function(e,t){if("object"!=Zp(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Zp(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Zp(t)?t:t+""}var av=function(){return e=function e(t,r,o){var i=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),ov(this,"renderer",void 0),ov(this,"canvasManager",void 0),ov(this,"time",new ns),ov(this,"timeNotPaused",0),ov(this,"pbr",void 0),ov(this,"modelData",void 0),ov(this,"scene",void 0),ov(this,"lightMap",void 0),ov(this,"camera",void 0),ov(this,"mouseLerp",new be),ov(this,"mouseLerpDouble",new be),ov(this,"light",void 0),ov(this,"twoPassBlur",void 0),ov(this,"isInfantry",!1),ov(this,"infantryLighting",void 0),ov(this,"renderTarget",void 0),ov(this,"postMaterial",void 0),ov(this,"particles",null),ov(this,"afterburnerTrail",null),ov(this,"wheels",[]),ov(this,"rotorModels",[]),ov(this,"rotorTransforms",[]),ov(this,"lightDirectionX",void 0),ov(this,"lightDirectionY",void 0),ov(this,"exposure",void 0),ov(this,"horizontalOffset",void 0),ov(this,"depthMaterial",void 0),ov(this,"showShadowMapParam",void 0),ov(this,"floatParam
2sByName",{}),ov(this,"hotspotRenderer",void 0),ov(this,"sceneCenter",new je),ov(this,"activeHotspot",null),ov(this,"environment",null),ov(this,"loading",!0),ov(this,"bloom",void 0),ov(this,"dustAndFlares",null),ov(this,"paused",!1),ov(this,"click",!1),ov(this,"onHotspotClickCallback",null),ov(this,"animationEnabled",!0),ov(this,"uiVisible",void 0),ov(this,"modelUI",null),ov(this,"paramGroup",null),ov(this,"modelParamGroup",null),ov(this,"visible",!0),e.instance=this,this.uiVisible=o,Or.source=new Gc,function(e){for(var t=0,n=Object.entries(e);t<n.length;t++){var r=Ct(n[t],2);Nt(r[0],r[1])}}(ep(n(5089))),this.canvasManager=t,this.renderer=new ln(this.canvasManager.canvas,{antialias:!1}),this.pbr=new yu(this.renderer,r,null,{atmosphereOptions:{lightColorHex:"#ffeeaa",sunAngleX:.78,sunAngleY:-2.3,brightness:100,horizon:!0},specularResolution:512}),this.camera=new mc(this.renderer,ke(32),.1,140,15,!0,!1,!0,!1),this.camera.rotationController.rotationLimitX=new be(-1,-.05),this.light=new jc(this.renderer,512,15),this.twoPassBlur=new Fc(this.renderer,r),this.infantryLighting=new Kp(this.renderer,r,this.twoPassBlur,this.camera.projection.FOV);var a=this.canvasManager.pixelRatio<=1;this.renderTarget=new sl(this.renderer,1,1,{scaleToCanvas:!0,antialias:a,depth:!0,stencil:!0,internalFormat:I}),this.depthMaterial=new qn(this.renderer,r,"depth"),this.depthMaterial.addShaderDefines(["DEPTH_ONLY"]),this.hotspotRenderer=new _f(this.renderer,r),this.postMaterial=new qn(this.renderer,r,"post"),this.bloom=new Ef(this.renderer,r,{floatBuffers:!0}),this.renderer.mouseListener.addClickEvent((function(){i.click=!0}))},t=[{key:"setVisible",value:function(e){this.visible=e}},{key:"setHotspotClickCallback",value:function(e){this.onHotspotClickCallback=e}},{key:"loadModelTar",value:(o=Qp().mark((function e(t,n,r){var o,i,a,s,l,u,c=this,f=arguments;return Qp().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=f.length>3&&void 0!==f[3]?f[3]:function(){},i=!(f.length>4&&void 0!==f[4])||f[4],this.bloom.brightness.to(0,0),this.loading=!0,this.destructOldScene(),Or.source=new Gc,Or.setTextureDataAtFirstUse=!0,a=function(e){return""},s="",u="undefined"==typeof window,e.next=12,new Promise((function(e){l=new nf(t,!u,(function(){a=function(e){return e},Mr("info.json",(function(t){var n,r={Grass:zc.Grass,Desert:zc.Desert,Ocean:zc.Ocean,ConcreteBox:zc.ConcreteBox};t.environmentType=null!==(n=r[t.environmentType])&&void 0!==n?n:zc.Sky,c.modelData=tv({},t),c.isInfantry=c.modelData.environmentType===zc.ConcreteBox,s=t.jsonName,e(!0)}),void 0,l)}))}));case 12:if(!this.modelData){e.next=36;break}this.scene=new ii(this.renderer,n,new vi(n,s,l),(function(e){return a(e+".webp")}),l,this.isInfantry?"Infantry":"unity"),this.lightMap=new Ur(this.renderer,n,a(this.modelData.lightmapName),{flipY:!0},l),this.modelData.hasAfterburner&&(this.afterburnerTrail=new Ph(this.renderer,n)),this.modelData.hasTrackParticles&&(this.particles=new Uc(this.renderer,n)),this.modelData.hasLensDust&&(this.dustAndFlares=new ap(this.renderer,n)),e.t0=this.modelData.environmentType,e.next=e.t0===zc.Desert?21:e.t0===zc.Sky?23:e.t0===zc.Grass?25:e.t0===zc.Ocean?27:e.t0===zc.ConcreteBox?29:31;break;case 21:case 31:return this.environment=new Uh(this.renderer,n),e.abrupt("break",33);case 23:return this.environment=new Pd(this.renderer,n),e.abrupt("break",33);case 25:return this.environment=new Kd(this.renderer,n),e.abrupt("break",33);case 27:return this.environment=new jp(this.renderer,n),e.abrupt("break",33);case 29:return this.environment=new Bp(this.renderer,n),e.abrupt("break",33);case 33:n.load((function(){i&&c.init(),c.handleModelLoaded(),r()}),o),e.next=37;break;case 36:case 37:case"end":return e.stop()}}),e,this)})),i=function(){var e=this,t=arguments;return new Promise((function(n,r){var i=o.apply(e,t);function a(e){nv(i,n,r,a,s,"next",e)}function s(e){nv(i,n,r,a,s,"throw",e)}a(void 0)}))},function(e,t,n){return i.apply(this,arguments)})},{key:"destructOldScene",value:function(){var e,t,n,r,o,i,a;null===(e=this.environment)||void 0===e||e.destruct(),this.environment=null,null===(t=this.modelUI)||void 0===t||t.destruct(),this.modelUI=null,null===(n=this.afterburnerTrail)||void 0===n||n.destruct(),this.afterburnerTrail=null,null===(r=this.particles)||void 0===r||r.destruct(),this.particles=null,null===(o=this.scene)||void 0===o||o.destruct(!0),this.scene=null,null===(i=this.lightMap)||void 0===i||i.destruct(),this.lightMap=null,null===(a=this.dustAndFlares)||void 0===a||a.destruct(),this.dustAndFlares=null}},{key:"handleModelLoaded",value:function(){var e,t,n,r,o,i,a,s,l,u,c,f,h,d,p=this;if(this.modelData){var v=new Ja("modelUI");this.modelParamGroup=v,this.scene.init(),null===(e=this.environment)||void 0===e||e.init(v,this.pbr),null===(t=this.particles)||void 0===t||t.init(v,this.modelData,this.scene),null===(n=this.afterburnerTrail)||void 0===n||n.init(v),this.uiVisible&&"undefined"!=typeof document&&(this.modelUI=new hh,this.modelUI.init(v));var m=Ge.fromHex("#181d20");null===(r=this.environment)||void 0===r||r.handleModelLoaded(this.modelData,this.light,m),this.exposure.setValue(null!==(o=this.modelData.exposure)&&void 0!==o?o:.8),this.setFloat("_LightMapAmount",null!=this.modelData.lightmapAmount?this.modelData.lightmapAmount:.5),this.setFloat("_SunStrength",null!=this.modelData.sunStrength?this.modelData.sunStrength:8),this.setFloat("_WheelNormalMode",this.modelData.wheelNormalFix?1:0),this.scene.materials.forEac
2h((function(e){var t,n;for(var r in e.isWheel&&p.modelData&&(e.setFloat("_TrackSpacing",null!==(t=p.modelData.trackSpacing)&&void 0!==t?t:1.5),e.setFloat("_TrackWidth",null!==(n=p.modelData.trackWidth)&&void 0!==n?n:.3)),p.floatParamsByName)if("_Roughness"!=r&&"_Metallic"!=r){var o=p.floatParamsByName[r];o.setValue(o.value,!0,!0)}e.setTexture("_LightMap",p.lightMap),e.setColor("_FogColor",m),e.setPbrEnvironment(p.pbr)})),this.modelData.environmentType!==zc.Sky&&this.modelData.environmentType!==zc.ConcreteBox&&this.setFloat("_Roughness",.85),this.wheels=[];var y,b=Jp(this.scene.transforms);try{for(b.s();!(y=b.n()).done;){var g=y.value;(g.name.includes("WHEEL")||g.name.includes("TREAD")||g.name.includes("Wheel")||g.name.includes("Sprocket"))&&this.wheels.push(g)}}catch(e){b.e(e)}finally{b.f()}var w=this.scene.transformsByName.Hotspots;w?this.hotspotRenderer.setHotspots(w.children):this.hotspotRenderer.setHotspots([]);for(var _=0;_<this.scene.models.length;_++){var x=this.scene.models[_];"Floor"===x.transform.name&&(x.active=!1)}var S,k=new Xo,P=Jp(this.scene.models);try{for(P.s();!(S=P.n()).done;){var T=S.value;if(T.active){var M=Ko(T.mesh);k.expandWithAABox(M.transform(T.transform))}}}catch(e){P.e(e)}finally{P.f()}this.camera.rotationController.rotationLimitX=new be(-1,this.modelData.cameraCanLookUp?.1:-.05),this.sceneCenter=k.center,this.setDefaultCamera(),this.activeHotspot=null,this.isInfantry?this.infantryLighting.handleModelLoaded(this.modelData,k.center,k.extents.length(),this.scene,this.environment?this.environment.materials:[]):this.infantryLighting.clearMaterials(),this.light.size=null!==(i=this.modelData.shadowMapSize)&&void 0!==i?i:15,this.light.setBounds(k.min.y,k.max.y),this.lightDirectionX.setValue(null!==(a=this.modelData.lightDirectionX)&&void 0!==a?a:.78),this.lightDirectionY.setValue(null!==(s=this.modelData.lightDirectionY)&&void 0!==s?s:-2.3),this.setLightDirection(null!==(l=this.modelData.lightDirectionX)&&void 0!==l?l:.78,null!==(u=this.modelData.lightDirectionY)&&void 0!==u?u:-2.3,k.center.multiplyScalar(.5)),this.bloom.enabled.setValue(null!==(c=this.modelData.bloomEnabled)&&void 0!==c&&c),this.bloom.strength.setValue(null!==(f=this.modelData.bloomStrength)&&void 0!==f?f:1),this.bloom.threshold.setValue(null!==(h=this.modelData.bloomThreshold)&&void 0!==h?h:1),this.loading=!1,this.bloom.brightness.fromTo(0,1,1),this.gatherRotors(),null===(d=this.afterburnerTrail)||void 0===d||d.handleModelLoaded(this.scene)}}},{key:"getDefaultCameraPivotPosition",value:function(){var e,t=this.sceneCenter.clone().multiplyScalar(.5).add(new je(0,-1,0));return null!=(null===(e=this.modelData)||void 0===e?void 0:e.cameraHeight)&&(t.y=this.modelData.cameraHeight-1),t}},{key:"setDefaultCamera",value:function(){var e,t,n,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(this.modelData){var o=this.getDefaultCameraPivotPosition(),i=null!==(e=this.modelData.cameraAngleX)&&void 0!==e?e:0,a=null!==(t=this.modelData.cameraAngleY)&&void 0!==t?t:0,s=null!==(n=this.modelData.cameraDist)&&void 0!==n?n:15;r>0?this.camera.animatePosDistanceEuler(o,s,new je(i,a,0),r):(this.camera.pivot.position=o,this.camera.rotationController.eulerXY=new be(i,a),this.camera.distance=s)}}},{key:"exitHotspot",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;this.activeHotspot=null,this.hotspotRenderer.activeHotspot=null,this.setDefaultCamera(e),this.isInfantry&&this.infantryLighting.animateToDefault(e)}},{key:"moveCameraToHotspot",value:function(e){if(e.cameraPosition){var t=this.camera.pivot.parent,n=function(e){return t?e.clone().transform(jn.invert(t.worldMatrix)):e.clone()};this.activeHotspot=e,this.isInfantry&&this.infantryLighting.animateToHotspot(e.cameraPosition,e.transform.worldPosition,1),this.camera.animateLookat(n(e.cameraPosition),n(e.transform.worldPosition),1)}}},{key:"gatherRotors",value:function(){this.rotorModels=[];for(var e=0;e<this.scene.models.length;e++)this.scene.models[e].material.name.includes("Blade")&&this.rotorModels.push(this.scene.models[e]);this.rotorTransforms=[];for(var t=0;t<this.scene.transforms.length;t++)this.scene.transforms[t].name.includes("Rotor")&&this.rotorTransforms.push(this.scene.transforms[t])}},{key:"setLightDirection",value:function(){var e,t,n=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.lightDirectionX.value,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.lightDirectionY.value,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new je(0,0,0),a=new je(Math.sin(o)*Math.cos(r),Math.sin(r),Math.cos(o)*Math.cos(r)).normalize();
2this.light.setDirection(a,i),this.scene.materials.forEach((function(e){e.setVector3("_LightDirection",a),e.setVector2("_ShadowDepthWindow",n.light.depthWindow)})),this.depthMaterial.setVector2("_ShadowDepthWindow",this.light.depthWindow),this.particles&&this.particles.material.setVector2("_ShadowDepthWindow",this.light.depthWindow),null===(e=this.pbr.atmosphereGenerator)||void 0===e||e.setAngles(r,o),null===(t=this.environment)||void 0===t||t.setLightDirection(this.light)}},{key:"init",value:function(){var e=this;this.paramGroup=new Ja("controls");var t=this.paramGroup;if(this.uiVisible){var n={boxer:"/models/boxer.tar",leopard2a6MA3:"/models/leopard2a6MA3.tar",fennek:"/models/fennek.tar",vector:"/models/vector.tar",bushMaster:"/models/bushMaster.tar",pzh:"/models/pzh.tar",nh90:"/models/nh90.tar",mq9a:"/models/mq9a.tar","ah-64e":"/models/ah-64e.tar","ch-47f":"/models/ch-47f.tar",f35a:"/models/f35a.tar","karel-doorman":"/models/karel-doorman.tar","korps-mariniers":"/models/korps-mariniers.tar","lucht-mobiel":"/models/lucht-mobiel.tar","pantser-genie":"/models/pantser-genie.tar","pantser-infanterie":"/models/pantser-infanterie.tar"},r={},o=[];Object.keys(n).forEach((function(e,t){r[e]=t,o.push(n[e])})),t.addParamSelect("Model",10,r,(function(t){e.loadModelTar(o[t],new ci,(function(){}),(function(){}),!1)})),t.addParamBool("animate",!0,(function(t){return e.setAnimationEnabled(t)}))}this.renderer.init(),this.renderer.clearColor=new Ge(0,0,0,1),this.pbr.init(t),this.twoPassBlur.init(t),this.infantryLighting.init(t),this.hotspotRenderer.init(t);var i=[];this.particles&&i.push(this.particles.material);var a=t.addGroup("Visuals",i);this.showShadowMapParam=a.addParamBool("Show ShadowMap",!1),this.addFloatParam(a,"_Roughness",.8),this.addFloatParam(a,"_Metallic",.2),this.addFloatParam(a,"_VarianceMin",.05,0,1),this.addFloatParam(a,"_VSMBleedThreshold",.5),this.addFloatParam(a,"_LightMapAmount",.5),this.addFloatParam(a,"_SunStrength",8,0,20),this.addFloatParam(a,"_WheelNormalMode",0),this.lightDirectionX=a.addParamFloat("LightX",.78,0,Math.PI/2,(function(){return e.setLightDirection()})),this.lightDirectionY=a.addParamFloat("LightY",-2.3,-4,4,(function(){return e.setLightDirection()})),a.addParamSelect("_DebugMap",0,{"Full Lighting":0,"Texture/World Normal":1,"vNormal/World Normal":2,N:3,Albedo:4,Roughness:5,Metallic:6,prefilteredColor:7,Irradiance:8,Diffuse:9,"Gamma corrected Specular * Exposure":10,"Emissive/BRDF":11,LightMap:12,Shadow:13,kD:14},(function(t){e.scene.materials.forEach((function(e){e.setFloat("_DebugMap",t)}))})),a.collapsed=!0,this.bloom.init(t);var s=t.addGroup("Post Processing",[this.postMaterial,this.bloom.lastPass]);this.exposure=s.addShaderParamFloat("_Exposure",1,0,2);var l=new Vn;return l.setPositionValues(0,1,0),this.camera.pivot.parent=l,this.camera.rotationController.setEulerValues(-.1,-2),this.horizontalOffset=t.addParamFloat("Horizontal Offset",0,-1,1,(function(t){return e.camera.projection.setFrustumOffsetX(t)})),this.uiVisible&&"undefined"!=typeof document&&(new hh).init(t),this.update(),t}},{key:"setParamValue",value:function(e,t){this.paramGroup&&th(this.paramGroup,e,t),this.modelParamGroup&&th(this.modelParamGroup,e,t)}},{key:"addFloatParam",value:function(e,t,n){var r=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1;this.floatParamsByName[t]=e.addParamFloat(t,n,o,i,(function(e){if(r.scene.setUniform(t,e),r.environment){var n,o=Jp(r.environment.materials);try{for(o.s();!(n=o.n()).done;)n.value.setFloat(t,e)}catch(e){o.e(e)}finally{o.f()}}}))}},{key:"setFloat",value:function(e,t){var n=this.floatParamsByName[e];n&&n.setValue(t,!0,!0)}},{key:"update",value:function(){var e,t,n,r,o,i=this,a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;requestAnimationFrame((function(e){return i.update(e)})),this.time.update(a);var s=this.time.dt,l=this.canvasManager.update(s);if(!this.scene||!this.scene.loaded||this.loading||!this.modelData)return this.renderer.clear(),void(this.click=!1);if(!this.paused&&this.visible||l){this.timeNotPaused+=s;var u=this.timeNotPaused;this.bloom.brightness.update(s),this.mouseLerpDouble=be.lerp(this.renderer.mouseListener.normalizedPos,this.mouseLerpDouble,Math.pow(.01,s)),this.mouseLerp=be.lerp(this.mouseLerpDouble,this.mouseLerp,Math.pow(.01,s)),this.camera.update(!0),this.scene.update(s,this.camera,this.mouseLerp);var f=u*(this.animationEnabled?4:0);if(this.animationEnabled){if(this.modelData.autoMoveSpeed){var h=this.scene.transformsByName.body;if(h||(h=this.scene.transformsByName.IdleMovement),h){var d=u*this.modelData.autoMoveSpeed,p=this.modelData.autoMoveAmplitude?this.modelData.autoMoveAmplitude:.01;this.modelData.autoMoveTranslate?h.position=gu(d,.6,3).multiply(new je(p,.5*p,0)):h.euler=gu(d,.6,3).multiply(new je(p,.5*p,0))}}
2if(this.modelData.hasTrackAnimation&&this.scene.materials.forEach((function(e){(e.isTrack||e.isAfterBurner)&&e.setFloat("_Moved",1.9*f)})),this.modelData.hasSpinningWheels)for(var v=this.modelData.wheelSpinSpeed?this.modelData.wheelSpinSpeed:1,m=0;m<this.wheels.length;m++)this.wheels[m].euler=new je(-f*v,0,0)}if(this.isInfantry)this.infantryLighting.draw(s,this.scene);else{var y;this.renderer.renderTarget=this.light.renderTexture;var b=this.light.depthWindow.y;this.renderer.clearWithColor(-b,b*b,0,0),this.depthMaterial.setMatrix("_ViewProjection",this.light.camera.viewProjection),null===(y=this.environment)||void 0===y||y.draw(this.light.camera,f,!0),this.scene.drawDepth(this.light.camera,this.depthMaterial),this.renderer.renderTarget=void 0,this.twoPassBlur.draw(this.light.renderTexture,this.light.renderTextureBlurred),this.renderer.renderTarget=void 0}for(var g=0;g<this.scene.materials.length;g++){var w=this.scene.materials[g];w.setMatrix("_ViewProjection",this.camera.viewProjection),w.setVector3("_CamPos",this.camera.worldPosition),w.setMatrix("_LightViewProjection",this.light.camera.viewProjection),w.setTexture("_ShadowMap",this.light.renderTextureBlurred)}if(this.particles){var _=this.particles.material;_.setMatrix("_LightViewProjection",this.light.camera.viewProjection),_.setTexture("_ShadowMap",this.light.renderTextureBlurred)}this.renderer.renderTarget=this.renderTarget,this.renderer.clearWithColor(.0941,.1137,.1254,1),null===(e=this.environment)||void 0===e||e.draw(this.camera,f),this.scene.draw(this.camera),null===(t=this.environment)||void 0===t||t.drawReflection(this.camera,(function(e){for(var t=0;t<i.scene.materials.length;t++){var n=i.scene.materials[t];n.culling==c&&n.setCullingFrontFace(),n.setMatrix("_ViewProjection",i.camera.viewProjection),n.setVector3("_CamPos",i.camera.worldPosition)}i.scene.draw(e);for(var r=0;r<i.scene.materials.length;r++){var o=i.scene.materials[r];1028==o.culling&&o.setCullingBackFace()}}),f),this.drawRotors(this.camera),this.hotspotRenderer.draw(this.camera),null===(n=this.particles)||void 0===n||n.draw(this.camera,this.animationEnabled?u:0),null===(r=this.afterburnerTrail)||void 0===r||r.draw(this.camera,this.animationEnabled?u:0),this.renderer.renderTarget=void 0,this.renderTarget.resolveMultisampleBuffer();var x=this.exposure.value*this.bloom.brightness.value*ge(.2,1,_e(1,.75,-je.dot(this.camera.worldForward,this.light.camera.worldForward)));if(this.bloom.enabled.value?(this.bloom.lastPass.setFloat("_Exposure",x),this.bloom.draw(this.renderTarget)):(this.postMaterial.setFloat("_Exposure",x),this.renderer.blit(this.renderTarget,null,this.postMaterial)),null===(o=this.dustAndFlares)||void 0===o||o.draw(this.camera,this.light.camera.worldForward),this.showShadowMapParam.value&&this.renderer.blit(this.isInfantry?this.infantryLighting.renderTextureBlurred:this.light.renderTextureBlurred),this.click&&this.hotspotRenderer.hoverHotspot&&null!==this.onHotspotClickCallback){var S=this.hotspotRenderer.hoverHotspot,k=null!==S.cameraPosition&&this.activeHotspot===S;this.onHotspotClickCallback(k?null:S.id),this.hotspotRenderer.handleHotspotClick(k?null:S)}this.click=!1,this.renderer.drawCallCount=0}else this.click=!1}},{key:"drawRotors",value:function(e){if(this.animationEnabled&&0!=this.rotorTransforms.length&&this.modelData)for(var t=15*this.time.time,n=0;n<=10;n++){for(var r=n/10,o=0;o<this.rotorTransforms.length;o++){var i=this.rotorTransforms[o];"Rotor"==i.name&&(i.euler=new je(0,0,t+r*Math.PI*.1)),"BackRotor"==i.name&&(i.euler=new je(2*t+r*Math.PI*.2,0,0))}if(10!=n)for(var a=0;a<this.rotorModels.length;a++)this.rotorModels[a].draw(e)}}},{key:"pause",value:function(){this.paused=!0}},{key:"play",value:function(){this.paused=!1}},{key:"onHotspotClick",value:function(e){if(e){var t=this.hotspotRenderer.hotspots.find((function(t){return t.id===e}));if(t){var n;if(t.cameraPosition)return void this.moveCameraToHotspot(t);var r=new Vn,o=t.transform.worldPosition.sub(this.camera.pivot.worldPosition).normalize(),i=.6;if(o.y>i){var a=Math.sqrt(o.x*o.x+o.z*o.z);o.x=o.x/a*Math.sqrt(.64),o.z=o.z/a*Math.sqrt(.64),o.y=i}if(null!==(n=this.modelData)&&void 0!==n&&n.cameraCanLookUp){var s=-.1;if(o.y<s){var l=Math.sqrt(o.x*o.x+o.z*o.z);o.x=o.x/l*Math.sqrt(.99),o.z=o.z/l*Math.sqrt(.99),o.y=s}}else o.y<0&&(o.y=0,o.normalize());r.lookAt(o,je.ZERO,je.UP);var u=r.euler;u.z=0,this.camera.animatePosDistanceEuler(je.ZERO,this.camera.distance,u,1.5)}}else this.activeHotspot&&this.exitHotspot()}},{key:"setAnimationEnabled",value:function(e){if(this.animationEnabled=e,this.scene){var t,n=Jp(this.scene.materials);try{for(n.s();!(t=n.n()).done;){var r=t.value;r.name.includes("Blade")&&(r.alphaValue=e?.15:1,r.setFloat("_AlphaValue",r.alphaValue))}}catch(e){n.e(e)}finally{n.f()}}}},{key:"setHorizontalOffset",value:function(e){var t=Math.max(-1,Math.min(1,e));this.horizontalOffset?this.horizontalOffset.setValue(t,!0,!0):this.camera.projection.setFrustumOffsetX(t)}},{key:"destruct",value:function(){}}],t&&rv(e.prototype,t),r&&rv(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r,o,i}();function sv(e){return sv="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},sv(e)}function lv(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,cv(r.key),r)}}function uv(e,t,n){return(t=cv(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function cv(e){var t=function(e,t){if("object"!=sv(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=sv(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==sv(t)?t:t+""}ov(av,"instance",void 0);var fv=function(){return e=function e(t){if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),uv(this,"canvas",void 0),uv(this,"pixelRatio",1),uv(this,"container",void 0),this.container=t,t){var n,r;this.pixelRatio=window.devicePixelRatio;var o=null!==(n=null==t?void 0:t.offsetWidth)&&void 0!==n?n:32,i=null!==(r=null==t?void 0:t.offsetHeight)&&void 0!==r?r:32;this.canvas=ir(o,i),Object.assign(this.canvas.style,{display:"block",width:"100%",height:"100%",inset:"0"}),t.offsetWidth*t.offsetHeight<1&&l.error("canvasParent has no area",t),t.appendChild(this.canvas)}else l.error("canvasParent is null")},(t=[{key:"update",value:function(e){if(this.container){var t=this.container.getBoundingClientRect(),n=t.
2width,r=t.height;if(n*r>0)return this.setSize(n,r)}return!1}},{key:"setSize",value:function(e,t){return(this.canvas.width!==(e*this.pixelRatio|0)||this.canvas.height!==(t*this.pixelRatio|0))&&(this.canvas.width=e*this.pixelRatio|0,this.canvas.height=t*this.pixelRatio|0,this.canvas.dispatchEvent(new Event("resize")),!0)}},{key:"destruct",value:function(){var e;null===(e=this.container)||void 0===e||e.removeChild(this.canvas)}}])&&lv(e.prototype,t),n&&lv(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function hv(e){return hv="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},hv(e)}function dv(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,gv(r.key),r)}}function pv(e,t,n){return t=yv(t),function(e,t){if(t&&("object"==hv(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,vv()?Reflect.construct(t,n||[],yv(e).constructor):t.apply(e,n))}function vv(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(vv=function(){return!!e})()}function mv(){return mv="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=yv(e)););return e}(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},mv.apply(null,arguments)}function yv(e){return yv=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},yv(e)}function bv(e,t){return bv=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},bv(e,t)}function gv(e){var t=function(e,t){if("object"!=hv(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=hv(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==hv(t)?t:t+""}var wv=function(e){function t(e){var n,r,o,i;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),n=pv(this,t,[null]),r=n,i=!1,(o=gv(o="forceUpdate"))in r?Object.defineProperty(r,o,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[o]=i,n.canvas=e,n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&bv(e,t)}(t,e),n=t,r=[{key:"update",value:function(e){var t=this.forceUpdate;return this.forceUpdate=!1,t}},{key:"setSize",value:function(e,n){return this.forceUpdate=!0,(r=t,o="setSize",i=this,s=mv(yv(1&(a=3)?r.prototype:r),o,i),2&a&&"function"==typeof s?function(e){return s.apply(i,e)}:s)([e,n]);var r,o,i,a,s}}],r&&dv(n.prototype,r),o&&dv(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(fv);var _v=null,xv=null,Sv=new ci,kv=!1;Or.source=new Gc(!0),self.onmessage=function(e){var t,n,r,o,i,a,s,l,u=e.data,c=u.type,f=u.data;switch(c){case 101:kv=f.uiVisible||!1,xv=new wv(f.canvas),(_v=new av(xv,Sv,kv)).setHotspotClickCallback((function(e){self.postMessage({type:107,data:e})}));break;case 102:if(_v&&null!=f&&f.url){var h=!1!==f.initAfterLoad,d=h?Sv:new ci;_v.loadModelTar(f.url,d,(function(){var e,t;(self.postMessage({type:109}),kv)&&(null!==(e=_v)&&void 0!==e&&e.paramGroup&&self.postMessage({type:113,paramGroup:eh(_v.paramGroup)}),null!==(t=_v)&&void 0!==t&&t.modelParamGroup&&self.postMessage({type:113,paramGroup:eh(_v.modelParamGroup)}))}),(function(e){return self.postMessage({type:110,data:e})}),h)}break;case 103:null===(t=_v)||void 0===t||t.play();break;case 104:null===(n=_v)||void 0===n||n.pause();break;case 105:null===(r=_v)||void 0===r||r.setAnimationEnabled(f);break;
2case 106:null===(o=_v)||void 0===o||o.onHotspotClick(f);break;case 112:null===(i=_v)||void 0===i||i.setVisible(f);break;case 2:null===(a=xv)||void 0===a||a.setSize(f.width,f.height);break;case 114:null===(s=_v)||void 0===s||s.setParamValue(f.paramId,f.value);break;case 115:null===(l=_v)||void 0===l||l.setHorizontalOffset(f)}!function(e){var t=e.data;switch(t.type){case 5:_t();break;case 4:gt({clientX:t.data.x,clientY:t.data.y});break;case 6:wt({clientX:t.data.x,clientY:t.data.y});break;case 7:bt({deltaY:-t.data});break;case 8:yt()}}(e)}}()}();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.