SREV_TAMEMAN_TAMAssimpDefaultMatLDMS_TAMNMOD_TAMMFER_TAMTFER_TAM BIU_TAMhMaterialParamsbaseColormetallicroughnessreflectance BIS_TAMMaterialParams BUS_TAMMaterialParamsSSOD_TAMISOD_TAMNELB_TAMDMRT_TAMLFER_TAMSWED_TAMIRWC_TAMIRWD_TAMSETD_TAMOMUC_TAMPORP_TAMDAHS_TAMROIC_TAMAQER_TAMAAPS_TAMRAVS_TAM>RHTS_TAML>ODEV_TAMRTNI_TAMPDSC_TAMTXET_CIDY+#version 300 eslayout(std140) uniform FrameUniforms{mat4 a;mat4 b;mat4 c;mat4 d;mat4 e;mat4 f;mat4 g[4];vec4 h;vec4 i;vec3 j;float k;mediump vec4 l;mediump vec4 m;mediump vec2 n;mediump float o;mediump uint p;mediump vec3 q;mediump uint r;mediump float s;mediump float t;mediump float u;mediump float v;mediump vec4 w;mediump uvec2 x;mediump vec2 y;mediump float z;mediump float az;float bz;mediump float cz;mediump vec3 dz[9];mediump vec4 ez;mediump float fz;mediump float gz;mediump float hz;mediump uint iz;mediump vec3 jz;mediump float kz;mediump float lz;mediump float mz;mediump float nz;mediump float oz;mediump vec3 pz;mediump float qz;mediump float rz;mediump float sz;mediump float tz;mediump uint uz;mediump float vz;mediump float wz;mediump float xz;mediump float yz;mediump vec2 zz;mediump vec2 azz;mediump float bzz;mediump float czz;mediump float dzz;mediump uint ezz;mediump float fzz;float gzz;float hzz;float izz;mat4 jzz;mat4 kzz;mediump float lzz;mediump float mzz;mediump float nzz;mediump float ozz;mediump vec4 pzz[49];} frameUniforms;layout(std140) uniform ObjectUniformsmat3 b;mediump uint c;mediump uint d;mediump uint e;mediump uint f;mediump float g;} objectUniforms;layout(location = 0) in vec4 mesh_position;layout(location = 1) in vec4 mesh_tangents;out vec4 vertex_worldPosition;out mediump vec3 vertex_worldNormal;out vec4 vertex_position;void main()vec4 _233 = (objectUniforms.a[0] * mesh_position.x) + ((objectUniforms.a[1] * mesh_position.y) + ((objectUniforms.a[2] * mesh_position.z) + objectUniforms.a[3]));vertex_worldPosition.x = _233.x;vertex_worldPosition.y = _233.y;vertex_worldPosition.z = _233.z;vertex_worldNormal = objectUniforms.b * ((vec3(0.0, 0.0, 1.0) + ((vec3(2.0, -2.0, -2.0) * mesh_tangents.x) * mesh_tangents.zwx)) + ((vec3(2.0, 2.0, -2.0) * mesh_tangents.y) * mesh_tangents.wzy));gl_Position = frameUniforms.e * _233;vertex_position = gl_Position;gl_Position.z = dot(gl_Position.zw, frameUniforms.zz);}precision mediump float;precision mediump int;highp mat4 a;highp mat4 b;highp mat4 c;highp mat4 d;highp mat4 e;highp mat4 f;highp mat4 g[4];highp vec4 h;highp vec4 i;highp vec3 j;highp float k;vec4 l;vec4 m;vec2 n;float o;uint p;vec3 q;uint r;float s;float t;float u;float v;vec4 w;uvec2 x;vec2 y;float z;float az;highp float bz;float cz;vec3 dz[9];vec4 ez;float fz;float gz;float hz;uint iz;vec3 jz;float kz;float lz;float mz;float nz;float oz;vec3 pz;float qz;float rz;float sz;float tz;uint uz;float vz;float wz;float xz;float yz;vec2 zz;vec2 azz;float bzz;float czz;float dzz;uint ezz;float fzz;highp float gzz;highp float hzz;highp float izz;highp mat4 jzz;highp mat4 kzz;float lzz;float mzz;float nzz;float ozz;vec4 pzz[49];layout(std140) uniform MaterialParamsvec3 a;float b;float c;float d;} materialParams;uniform mediump sampler2DArray light_ssao;uniform mediump sampler2D light_iblDFG;uniform mediump samplerCube light_iblSpecular;in vec3 vertex_worldNormal;in highp vec4 vertex_worldPosition;in highp vec4 vertex_position;layout(location = 0) out vec4 fragColor;vec3 _2670;vec4 _2672;float _2698;bool _1817;highp vec3 _1387 = normalize(vertex_worldNormal);highp vec3 _1394 = normalize(frameUniforms.j - vertex_worldPosition.xyz);highp vec2 _1402 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);vec3 _1440 = reflect(-_1394, _1387);vec4 _2586 = vec4(1.0);_2586.x = materialParams.a.x;vec4 _2588 = _2586;_2588.y = materialParams.a.y;vec4 _2590 = _2588;_2590.z = materialParams.a.z;float _1534 = 1.0 - materialParams.b;vec3 _1552 = (_2590.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _1534);float _1562 = clamp(materialParams.c, 0.08900000154972076416015625, 1.0);float _1572 = _1562 * _1562;vec4 _1606 = textureLod(light_iblDFG, vec2(max(dot(_1387, _1394), 9.9999997473787516355514526367188e-05), _1562), 0.0);highp float _1740 = _1402.x;vec3 _1753 = mix(_1606.xxx, _1606.yyy, _1552);float _1766 = _1572 * _1572;float _2673;highp vec4 _2674;do_1817 = frameUniforms.vz > 0.0;if (_1817)highp vec3 _1840 = vec3(_1740, _1402.y, 0.0);vec4 _1841 = textureLodOffset(light_ssao, _1840, 0.0, ivec2(0, 1));vec4 _1849 = textureLodOffset(light_ssao, _1840, 0.0, ivec2(1));vec4 _1857 = textureLodOffset(light_ssao, _1840, 0.0, ivec2(1, 0));vec4 _1865 = textureLodOffset(light_ssao, _1840, 0.0, ivec2(0));vec4 _2609 = _2672;_2609.x = (_1841.y * 0.996108949184417724609375) + (_1841.z * 0.00389105058275163173675537109375);vec4 _2615 = _2609;_2615.y = (_1849.y * 0.996108949184417724609375) + (_1849.z * 0.00389105058275163173675537109375);vec4 _2621 = _2615;_2621.z = (_1857.y * 0.996108949184417724609375) + (_1857.z * 0.00389105058275163173675537109375);vec4 _2627 = _2621;_2627.w = (_1865.y * 0.996108949184417724609375) + (_1865.z * 0.00389105058275163173675537109375);highp vec2 _1933 = fract((vec3(_1740, _1402.y, _2698).xy * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _1935 = _1933.x;float _1936 = 1.0 - _1935;float _1938 = _1933.y;vec4 _2631 = _2672;_2631.x = _1936 * _1938;vec4 _2635 = _2631;_2635.y = _1935 * _1938;float _1951 = 1.0 - _1938;vec4 _2639 = _2635;_2639.z = _1935 * _1951;vec4 _2643 = _2639;_2643.w = _1936 * _1951;vec4 _1981 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), vertex_worldPosition.xyz) + frameUniforms.a[3].z) - (_2627 * (-frameUniforms.gz))) * frameUniforms.vz;highp vec4 _1989 = max(vec4(6.103515625e-05), vec4(1.0) - (_1981 * _1981)) * _2643;highp vec4 _2003 = _1989 / vec4(((_1989.x + _1989.y) + _1989.z) + _1989.w);_2674 = _2003;_2673 = dot(vec4(_1841.x, _1849.x, _1857.x, _1865.x), _2003);break;else_2674 = _2672;_2673 = textureLod(light_ssao, vec3(_1740, _1402.y, 0.0), 0.0).x;} while(false);float _1661 = min(1.0, _2673);float _2682;if (frameUniforms.wz > 0.0)vec3 _2676;highp vec3 _2089 = vec3(_1740, _1402.y, 1.0);vec4 _2090 = textureLodOffset(light_ssao, _2089, 0.0, ivec2(0, 1));vec4 _2097 = textureLodOffset(light_ssao, _2089, 0.0, ivec2(1));vec4 _2104 = textureLodOffset(light_ssao, _2089, 0.0, ivec2(1, 0));vec4 _2111 = textureLodOffset(light_ssao, _2089, 0.0, ivec2(0));vec3 _2665 = _2670;_2665.x = dot(vec4(_2090.x, _2097.x, _2104.x, _2111.x), _2674);vec3 _2667 = _2665;_2667.y = dot(vec4(_2090.y, _2097.y, _2104.y, _2111.y), _2674);vec3 _2669 = _2667;_2669.z = dot(vec4(_2090.z, _2097.z, _2104.z, _2111.z), _2674);_2676 = _2669;_2676 = textureLod(light_ssao, vec3(_1740, _1402.y, 1.0), 0.0).xyz;float _2301;float _2184 = sqrt(1.0 - _1661);float _2188 = exp2((-3.3219280242919921875) * _1766);float _2191 = dot(normalize((_2676 * 2.0) - vec3(1.0)), _1440);float _2678;float _2292 = (((-0.15658269822597503662109375) * _2184) + 1.57079601287841796875) * sqrt(1.0 - _2184);_2301 = 1.0 - _2188;float _2303 = (((-0.15658269822597503662109375) * _2188) + 1.57079601287841796875) * sqrt(_2301);float _2310 = abs(_2191);float _2318 = (((-0.15658269822597503662109375) * _2310) + 1.57079601287841796875) * sqrt(1.0 - _2310);float _2677;if (_2191 >= 0.0)_2677 = _2318;_2677 = 3.1415927410125732421875 - _2318;float _2241;if (min(_2292, _2303) <= (max(_2292, _2303) - _2677))_2678 = 1.0 - max(_2184, _2188);_2241 = _2292 + _2303;if (_2241 <= _2677)_2678 = 0.0;float _2255 = abs(_2292 - _2303);float _2267 = 1.0 - clamp((_2677 - _2255) / max(_2241 - _2255, 9.9999997473787516355514526367188e-05), 0.0, 1.0);_2678 = ((_2267 * _2267) * (((-2.0) * _2267) + 3.0)) * (1.0 - max(_2184, _2188));_2682 = min(1.0, mix(1.0, _2678 / _2301, smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _1572)));_2682 = 1.0;vec3 _2688;if (frameUniforms.dz[0].x == 65504.0)_2688 = textureLod(light_iblSpecular, _1387, frameUniforms.fz).xyz;float _2361 = _1387.y;float _2366 = _1387.z;float _2371 = _1387.x;_2688 = max((((((((frameUniforms.dz[0] + (frameUniforms.dz[1] * _2361)) + (frameUniforms.dz[2] * _2366)) + (frameUniforms.dz[3] * _2371)) + (frameUniforms.dz[4] * (_2361 * _2371))) + (frameUniforms.dz[5] * (_2361 * _2366))) + (frameUniforms.dz[6] * (((3.0 * _2366) * _2366) - 1.0))) + (frameUniforms.dz[7] * (_2366 * _2371))) + (frameUniforms.dz[8] * ((_2371 * _2371) - (_2361 * _2361))), vec3(0.0));fragColor = vec4((((_1753 * textureLod(light_iblSpecular, mix(_1440, _1387, vec3(_1766)), (frameUniforms.fz * _1562) * (2.0 - _1562)).xyz) * ((vec3(1.0) + (_1552 * ((1.0 / _1606.y) - 1.0))) * _2682)) * frameUniforms.az) + (((((_2590.xyz * _1534) * _2688) * (vec3(1.0) - _1753)) * _1661) * frameUniforms.az), 1.0);highp mat3 b;uint c;uint d;uint e;uint f;float g;vec3 _3372;vec4 _3374;float _3447;bool _2207;highp vec3 _1772 = normalize(vertex_worldNormal);highp vec3 _1779 = normalize(frameUniforms.j - vertex_worldPosition.xyz);highp vec2 _1787 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);float _1832 = max(dot(_1772, _1779), 9.9999997473787516355514526367188e-05);vec3 _1825 = reflect(-_1779, _1772);vec4 _3288 = vec4(1.0);_3288.x = materialParams.a.x;vec4 _3290 = _3288;_3290.y = materialParams.a.y;vec4 _3292 = _3290;_3292.z = materialParams.a.z;float _1924 = 1.0 - materialParams.b;vec3 _1925 = _3292.xyz * _1924;vec3 _1942 = (_3292.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _1924);float _1952 = clamp(materialParams.c, 0.08900000154972076416015625, 1.0);float _1962 = _1952 * _1952;vec4 _1996 = textureLod(light_iblDFG, vec2(_1832, _1952), 0.0);vec3 _1981 = vec3(1.0) + (_1942 * ((1.0 / _1996.y) - 1.0));highp float _2130 = _1787.x;vec3 _2143 = mix(_1996.xxx, _1996.yyy, _1942);float _2156 = _1962 * _1962;float _3375;highp vec4 _3376;_2207 = frameUniforms.vz > 0.0;if (_2207)highp vec3 _2230 = vec3(_2130, _1787.y, 0.0);vec4 _2231 = textureLodOffset(light_ssao, _2230, 0.0, ivec2(0, 1));vec4 _2239 = textureLodOffset(light_ssao, _2230, 0.0, ivec2(1));vec4 _2247 = textureLodOffset(light_ssao, _2230, 0.0, ivec2(1, 0));vec4 _2255 = textureLodOffset(light_ssao, _2230, 0.0, ivec2(0));vec4 _3311 = _3374;_3311.x = (_2231.y * 0.996108949184417724609375) + (_2231.z * 0.00389105058275163173675537109375);vec4 _3317 = _3311;_3317.y = (_2239.y * 0.996108949184417724609375) + (_2239.z * 0.00389105058275163173675537109375);vec4 _3323 = _3317;_3323.z = (_2247.y * 0.996108949184417724609375) + (_2247.z * 0.00389105058275163173675537109375);vec4 _3329 = _3323;_3329.w = (_2255.y * 0.996108949184417724609375) + (_2255.z * 0.00389105058275163173675537109375);highp vec2 _2323 = fract((vec3(_2130, _1787.y, _3447).xy * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _2325 = _2323.x;float _2326 = 1.0 - _2325;float _2328 = _2323.y;vec4 _3333 = _3374;_3333.x = _2326 * _2328;vec4 _3337 = _3333;_3337.y = _2325 * _2328;float _2341 = 1.0 - _2328;vec4 _3341 = _3337;_3341.z = _2325 * _2341;vec4 _3345 = _3341;_3345.w = _2326 * _2341;vec4 _2371 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), vertex_worldPosition.xyz) + frameUniforms.a[3].z) - (_3329 * (-frameUniforms.gz))) * frameUniforms.vz;highp vec4 _2379 = max(vec4(6.103515625e-05), vec4(1.0) - (_2371 * _2371)) * _3345;highp vec4 _2393 = _2379 / vec4(((_2379.x + _2379.y) + _2379.z) + _2379.w);_3376 = _2393;_3375 = dot(vec4(_2231.x, _2239.x, _2247.x, _2255.x), _2393);_3376 = _3374;_3375 = textureLod(light_ssao, vec3(_2130, _1787.y, 0.0), 0.0).x;float _2051 = min(1.0, _3375);float _3384;vec3 _3378;highp vec3 _2479 = vec3(_2130, _1787.y, 1.0);vec4 _2480 = textureLodOffset(light_ssao, _2479, 0.0, ivec2(0, 1));vec4 _2487 = textureLodOffset(light_ssao, _2479, 0.0, ivec2(1));vec4 _2494 = textureLodOffset(light_ssao, _2479, 0.0, ivec2(1, 0));vec4 _2501 = textureLodOffset(light_ssao, _2479, 0.0, ivec2(0));vec3 _3367 = _3372;_3367.x = dot(vec4(_2480.x, _2487.x, _2494.x, _2501.x), _3376);vec3 _3369 = _3367;_3369.y = dot(vec4(_2480.y, _2487.y, _2494.y, _2501.y), _3376);vec3 _3371 = _3369;_3371.z = dot(vec4(_2480.z, _2487.z, _2494.z, _2501.z), _3376);_3378 = _3371;_3378 = textureLod(light_ssao, vec3(_2130, _1787.y, 1.0), 0.0).xyz;float _2691;float _2574 = sqrt(1.0 - _2051);float _2578 = exp2((-3.3219280242919921875) * _2156);float _2581 = dot(normalize((_3378 * 2.0) - vec3(1.0)), _1825);float _3380;float _2682 = (((-0.15658269822597503662109375) * _2574) + 1.57079601287841796875) * sqrt(1.0 - _2574);_2691 = 1.0 - _2578;float _2693 = (((-0.15658269822597503662109375) * _2578) + 1.57079601287841796875) * sqrt(_2691);float _2700 = abs(_2581);float _2708 = (((-0.15658269822597503662109375) * _2700) + 1.57079601287841796875) * sqrt(1.0 - _2700);float _3379;if (_2581 >= 0.0)_3379 = _2708;_3379 = 3.1415927410125732421875 - _2708;float _2631;if (min(_2682, _2693) <= (max(_2682, _2693) - _3379))_3380 = 1.0 - max(_2574, _2578);_2631 = _2682 + _2693;if (_2631 <= _3379)_3380 = 0.0;float _2645 = abs(_2682 - _2693);float _2657 = 1.0 - clamp((_3379 - _2645) / max(_2631 - _2645, 9.9999997473787516355514526367188e-05), 0.0, 1.0);_3380 = ((_2657 * _2657) * (((-2.0) * _2657) + 3.0)) * (1.0 - max(_2574, _2578));_3384 = min(1.0, mix(1.0, _3380 / _2691, smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _1962)));_3384 = 1.0;vec3 _3390;_3390 = textureLod(light_iblSpecular, _1772, frameUniforms.fz).xyz;float _2751 = _1772.y;float _2756 = _1772.z;float _2761 = _1772.x;_3390 = max((((((((frameUniforms.dz[0] + (frameUniforms.dz[1] * _2751)) + (frameUniforms.dz[2] * _2756)) + (frameUniforms.dz[3] * _2761)) + (frameUniforms.dz[4] * (_2751 * _2761))) + (frameUniforms.dz[5] * (_2751 * _2756))) + (frameUniforms.dz[6] * (((3.0 * _2756) * _2756) - 1.0))) + (frameUniforms.dz[7] * (_2756 * _2761))) + (frameUniforms.dz[8] * ((_2761 * _2761) - (_2751 * _2751))), vec3(0.0));vec3 _2121 = (((_2143 * textureLod(light_iblSpecular, mix(_1825, _1772, vec3(_2156)), (frameUniforms.fz * _1952) * (2.0 - _1952)).xyz) * (_1981 * _3384)) * frameUniforms.az) + ((((_1925 * _3390) * (vec3(1.0) - _2143)) * _2051) * frameUniforms.az);vec3 _3444;vec3 _3399;if (frameUniforms.m.w >= 0.0)float _2888 = dot(frameUniforms.q, _1825);highp vec3 _3398;if (_2888 < frameUniforms.m.x)_3398 = normalize((frameUniforms.q * frameUniforms.m.x) + (normalize(_1825 - (frameUniforms.q * _2888)) * frameUniforms.m.y));_3398 = _1825;_3399 = _3398;_3399 = frameUniforms.q;float _2866 = clamp(dot(_1772, _3399), 0.0, 1.0);if (((frameUniforms.p & 255u) & (objectUniforms.e & 255u)) == 0u)_3444 = _2121;if (_2866 <= 0.0)vec3 _2936 = normalize(_1779 + _3399);float _2939 = clamp(_2866, 0.0, 1.0);vec3 _3027 = cross(_1772, _2936);float _3033 = clamp(dot(_1772, _2936), 0.0, 1.0) * _1962;float _3040 = _1962 / (dot(_3027, _3027) + (_3033 * _3033));float _3081 = pow(1.0 - clamp(dot(_3399, _2936), 0.0, 1.0), 5.0);_3444 = _2121 + ((((_1925 * 0.3183098733425140380859375) + (((vec3(_3081) + (_1942 * (1.0 - _3081))) * (min((_3040 * _3040) * 0.3183098733425140380859375, 65504.0) * min(0.5 / mix((2.0 * _2939) * _1832, _2939 + _1832, _1962), 65504.0))) * _1981)) * frameUniforms.l.xyz) * (frameUniforms.l.w * _2939));fragColor = vec4(_3444, 1.0);layout(std140) uniform FroxelRecordUniformshighp uvec4 a[1024];} froxelRecordUniforms;layout(std140) uniform LightsUniformshighp mat4 a[256];} lightsUniforms;uniform mediump usampler2D light_froxels;vec3 _4051;vec4 _4053;float _4109;bool _2554;highp vec3 _2119 = normalize(vertex_worldNormal);highp vec3 _2126 = normalize(frameUniforms.j - vertex_worldPosition.xyz);highp vec2 _2134 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);float _2179 = max(dot(_2119, _2126), 9.9999997473787516355514526367188e-05);vec3 _2172 = reflect(-_2126, _2119);vec4 _3939 = vec4(1.0);_3939.x = materialParams.a.x;vec4 _3941 = _3939;_3941.y = materialParams.a.y;vec4 _3943 = _3941;_3943.z = materialParams.a.z;float _2271 = 1.0 - materialParams.b;vec3 _2272 = _3943.xyz * _2271;vec3 _2289 = (_3943.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _2271);float _2299 = clamp(materialParams.c, 0.08900000154972076416015625, 1.0);float _2309 = _2299 * _2299;vec4 _2343 = textureLod(light_iblDFG, vec2(_2179, _2299), 0.0);vec3 _2328 = vec3(1.0) + (_2289 * ((1.0 / _2343.y) - 1.0));highp float _2477 = _2134.x;vec3 _2490 = mix(_2343.xxx, _2343.yyy, _2289);float _2503 = _2309 * _2309;float _4054;highp vec4 _4055;_2554 = frameUniforms.vz > 0.0;if (_2554)highp vec3 _2577 = vec3(_2477, _2134.y, 0.0);vec4 _2578 = textureLodOffset(light_ssao, _2577, 0.0, ivec2(0, 1));vec4 _2586 = textureLodOffset(light_ssao, _2577, 0.0, ivec2(1));vec4 _2594 = textureLodOffset(light_ssao, _2577, 0.0, ivec2(1, 0));vec4 _2602 = textureLodOffset(light_ssao, _2577, 0.0, ivec2(0));vec4 _3962 = _4053;_3962.x = (_2578.y * 0.996108949184417724609375) + (_2578.z * 0.00389105058275163173675537109375);vec4 _3968 = _3962;_3968.y = (_2586.y * 0.996108949184417724609375) + (_2586.z * 0.00389105058275163173675537109375);vec4 _3974 = _3968;_3974.z = (_2594.y * 0.996108949184417724609375) + (_2594.z * 0.00389105058275163173675537109375);vec4 _3980 = _3974;_3980.w = (_2602.y * 0.996108949184417724609375) + (_2602.z * 0.00389105058275163173675537109375);highp vec2 _2670 = fract((vec3(_2477, _2134.y, _4109).xy * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _2672 = _2670.x;float _2673 = 1.0 - _2672;float _2675 = _2670.y;vec4 _3984 = _4053;_3984.x = _2673 * _2675;vec4 _3988 = _3984;_3988.y = _2672 * _2675;float _2688 = 1.0 - _2675;vec4 _3992 = _3988;_3992.z = _2672 * _2688;vec4 _3996 = _3992;_3996.w = _2673 * _2688;vec4 _2718 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), vertex_worldPosition.xyz) + frameUniforms.a[3].z) - (_3980 * (-frameUniforms.gz))) * frameUniforms.vz;highp vec4 _2726 = max(vec4(6.103515625e-05), vec4(1.0) - (_2718 * _2718)) * _3996;highp vec4 _2740 = _2726 / vec4(((_2726.x + _2726.y) + _2726.z) + _2726.w);_4055 = _2740;_4054 = dot(vec4(_2578.x, _2586.x, _2594.x, _2602.x), _2740);_4055 = _4053;_4054 = textureLod(light_ssao, vec3(_2477, _2134.y, 0.0), 0.0).x;float _2398 = min(1.0, _4054);float _4063;vec3 _4057;highp vec3 _2826 = vec3(_2477, _2134.y, 1.0);vec4 _2827 = textureLodOffset(light_ssao, _2826, 0.0, ivec2(0, 1));vec4 _2834 = textureLodOffset(light_ssao, _2826, 0.0, ivec2(1));vec4 _2841 = textureLodOffset(light_ssao, _2826, 0.0, ivec2(1, 0));vec4 _2848 = textureLodOffset(light_ssao, _2826, 0.0, ivec2(0));vec3 _4018 = _4051;_4018.x = dot(vec4(_2827.x, _2834.x, _2841.x, _2848.x), _4055);vec3 _4020 = _4018;_4020.y = dot(vec4(_2827.y, _2834.y, _2841.y, _2848.y), _4055);vec3 _4022 = _4020;_4022.z = dot(vec4(_2827.z, _2834.z, _2841.z, _2848.z), _4055);_4057 = _4022;_4057 = textureLod(light_ssao, vec3(_2477, _2134.y, 1.0), 0.0).xyz;float _3038;float _2921 = sqrt(1.0 - _2398);float _2925 = exp2((-3.3219280242919921875) * _2503);float _2928 = dot(normalize((_4057 * 2.0) - vec3(1.0)), _2172);float _4059;float _3029 = (((-0.15658269822597503662109375) * _2921) + 1.57079601287841796875) * sqrt(1.0 - _2921);_3038 = 1.0 - _2925;float _3040 = (((-0.15658269822597503662109375) * _2925) + 1.57079601287841796875) * sqrt(_3038);float _3047 = abs(_2928);float _3055 = (((-0.15658269822597503662109375) * _3047) + 1.57079601287841796875) * sqrt(1.0 - _3047);float _4058;if (_2928 >= 0.0)_4058 = _3055;_4058 = 3.1415927410125732421875 - _3055;float _2978;if (min(_3029, _3040) <= (max(_3029, _3040) - _4058))_4059 = 1.0 - max(_2921, _2925);_2978 = _3029 + _3040;if (_2978 <= _4058)_4059 = 0.0;float _2992 = abs(_3029 - _3040);float _3004 = 1.0 - clamp((_4058 - _2992) / max(_2978 - _2992, 9.9999997473787516355514526367188e-05), 0.0, 1.0);_4059 = ((_3004 * _3004) * (((-2.0) * _3004) + 3.0)) * (1.0 - max(_2921, _2925));_4063 = min(1.0, mix(1.0, _4059 / _3038, smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _2309)));_4063 = 1.0;vec3 _4069;_4069 = textureLod(light_iblSpecular, _2119, frameUniforms.fz).xyz;float _3098 = _2119.y;float _3103 = _2119.z;float _3108 = _2119.x;_4069 = max((((((((frameUniforms.dz[0] + (frameUniforms.dz[1] * _3098)) + (frameUniforms.dz[2] * _3103)) + (frameUniforms.dz[3] * _3108)) + (frameUniforms.dz[4] * (_3098 * _3108))) + (frameUniforms.dz[5] * (_3098 * _3103))) + (frameUniforms.dz[6] * (((3.0 * _3103) * _3103) - 1.0))) + (frameUniforms.dz[7] * (_3103 * _3108))) + (frameUniforms.dz[8] * ((_3108 * _3108) - (_3098 * _3098))), vec3(0.0));highp uvec2 _3272 = uvec2((vec3(_2477, _2134.y, gl_FragCoord.z).xy * frameUniforms.i.xy) * vec2(frameUniforms.z, frameUniforms.v));uint _3254 = ((_3272.x * frameUniforms.r) + (_3272.y * frameUniforms.x.x)) + (uint(clamp((log2((frameUniforms.w.x * gl_FragCoord.z) + frameUniforms.w.y) * frameUniforms.w.z) + frameUniforms.w.w, 0.0, frameUniforms.w.w - 1.0)) * frameUniforms.x.y);uvec4 _3311 = texelFetch(light_froxels, ivec2(int(_3254 & 63u), int(_3254 >> 6u)), 0);uint _3314 = _3311.x;uint _3186 = _3314 + (_3311.y & 255u);uint _3189 = objectUniforms.e & 255u;vec3 _4085;vec4 _4086;_4086 = _4053;_4085 = (((_2490 * textureLod(light_iblSpecular, mix(_2172, _2119, vec3(_2503)), (frameUniforms.fz * _2299) * (2.0 - _2299)).xyz) * (_2328 * _4063)) * frameUniforms.az) + ((((_2272 * _4069) * (vec3(1.0) - _2490)) * _2398) * frameUniforms.az);vec4 _4049;vec3 _4103;for (uint _4084 = _3314; _4084 < _3186; _4086 = _4049, _4085 = _4103, _4084++)highp uvec4 _3458 = froxelRecordUniforms.a[_4084 >> 4u];highp uint _3475 = (_3458[(_4084 >> 2u) & 3u] >> ((_4084 & 3u) * 8u)) & 255u;highp vec2 _3359 = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_3475][2].x));highp vec3 _3384 = lightsUniforms.a[_3475][0].xyz - vertex_worldPosition.xyz;vec4 _4043 = _4086;_4043.x = _3359.x;vec4 _4045 = _4043;_4045.y = _3359.y;vec4 _4047 = _4045;_4047.z = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_3475][2].y)).x;highp float _3483 = lightsUniforms.a[_3475][3].y * frameUniforms.bz;_4049 = _4047;_4049.w = _3483;highp vec3 _3399 = normalize(_3384);highp float _3493 = dot(_3384, _3384);float _3523 = _3493 * lightsUniforms.a[_3475][0].w;float _3528 = clamp(1.0 - (_3523 * _3523), 0.0, 1.0);highp vec3 _3499 = vertex_worldPosition.xyz - frameUniforms.j;float _3516 = ((_3528 * _3528) * clamp(frameUniforms.n.x - (dot(_3499, _3499) * frameUniforms.n.y), 0.0, 1.0)) / max(_3493, 9.9999997473787516355514526367188e-05);float _3410 = clamp(dot(_2119, _3399), 0.0, 1.0);float _4097;if ((floatBitsToUint(lightsUniforms.a[_3475][3].z) & 1u) == 1u)highp float _3549 = clamp((dot(-lightsUniforms.a[_3475][1].xyz, _3399) * lightsUniforms.a[_3475][2].z) + lightsUniforms.a[_3475][2].w, 0.0, 1.0);_4097 = _3516 * (_3549 * _3549);_4097 = _3516;if ((floatBitsToUint(lightsUniforms.a[_3475][3].w) & _3189) == 0u)_4103 = _4085;continue;bool _3207 = _3410 <= 0.0;bool _3214;if (!_3207)_3214 = _4097 <= 0.0;_3214 = _3207;if (_3214)vec3 _3573 = normalize(_2126 + _3399);float _3576 = clamp(_3410, 0.0, 1.0);vec3 _3664 = cross(_2119, _3573);float _3670 = clamp(dot(_2119, _3573), 0.0, 1.0) * _2309;float _3677 = _2309 / (dot(_3664, _3664) + (_3670 * _3670));float _3718 = pow(1.0 - clamp(dot(_3399, _3573), 0.0, 1.0), 5.0);_4103 = _4085 + ((((_2272 * 0.3183098733425140380859375) + (((vec3(_3718) + (_2289 * (1.0 - _3718))) * (min((_3677 * _3677) * 0.3183098733425140380859375, 65504.0) * min(0.5 / mix((2.0 * _3576) * _2179, _3576 + _2179, _2309), 65504.0))) * _2328)) * _4049.xyz) * ((_3483 * _4097) * _3576));fragColor = vec4(_4085, 1.0);vec3 _4481;vec4 _4483;float _4592;bool _2675;highp vec3 _2235 = normalize(vertex_worldNormal);highp vec3 _2242 = normalize(frameUniforms.j - vertex_worldPosition.xyz);highp vec2 _2250 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);float _2295 = max(dot(_2235, _2242), 9.9999997473787516355514526367188e-05);vec3 _2288 = reflect(-_2242, _2235);vec4 _4369 = vec4(1.0);_4369.x = materialParams.a.x;vec4 _4371 = _4369;_4371.y = materialParams.a.y;vec4 _4373 = _4371;_4373.z = materialParams.a.z;float _2392 = 1.0 - materialParams.b;vec3 _2393 = _4373.xyz * _2392;vec3 _2410 = (_4373.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _2392);float _2420 = clamp(materialParams.c, 0.08900000154972076416015625, 1.0);float _2430 = _2420 * _2420;vec4 _2464 = textureLod(light_iblDFG, vec2(_2295, _2420), 0.0);vec3 _2449 = vec3(1.0) + (_2410 * ((1.0 / _2464.y) - 1.0));highp float _2598 = _2250.x;vec3 _2611 = mix(_2464.xxx, _2464.yyy, _2410);float _2624 = _2430 * _2430;float _4484;highp vec4 _4485;_2675 = frameUniforms.vz > 0.0;if (_2675)highp vec3 _2698 = vec3(_2598, _2250.y, 0.0);vec4 _2699 = textureLodOffset(light_ssao, _2698, 0.0, ivec2(0, 1));vec4 _2707 = textureLodOffset(light_ssao, _2698, 0.0, ivec2(1));vec4 _2715 = textureLodOffset(light_ssao, _2698, 0.0, ivec2(1, 0));vec4 _2723 = textureLodOffset(light_ssao, _2698, 0.0, ivec2(0));vec4 _4392 = _4483;_4392.x = (_2699.y * 0.996108949184417724609375) + (_2699.z * 0.00389105058275163173675537109375);vec4 _4398 = _4392;_4398.y = (_2707.y * 0.996108949184417724609375) + (_2707.z * 0.00389105058275163173675537109375);vec4 _4404 = _4398;_4404.z = (_2715.y * 0.996108949184417724609375) + (_2715.z * 0.00389105058275163173675537109375);vec4 _4410 = _4404;_4410.w = (_2723.y * 0.996108949184417724609375) + (_2723.z * 0.00389105058275163173675537109375);highp vec2 _2791 = fract((vec3(_2598, _2250.y, _4592).xy * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _2793 = _2791.x;float _2794 = 1.0 - _2793;float _2796 = _2791.y;vec4 _4414 = _4483;_4414.x = _2794 * _2796;vec4 _4418 = _4414;_4418.y = _2793 * _2796;float _2809 = 1.0 - _2796;vec4 _4422 = _4418;_4422.z = _2793 * _2809;vec4 _4426 = _4422;_4426.w = _2794 * _2809;vec4 _2839 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), vertex_worldPosition.xyz) + frameUniforms.a[3].z) - (_4410 * (-frameUniforms.gz))) * frameUniforms.vz;highp vec4 _2847 = max(vec4(6.103515625e-05), vec4(1.0) - (_2839 * _2839)) * _4426;highp vec4 _2861 = _2847 / vec4(((_2847.x + _2847.y) + _2847.z) + _2847.w);_4485 = _2861;_4484 = dot(vec4(_2699.x, _2707.x, _2715.x, _2723.x), _2861);_4485 = _4483;_4484 = textureLod(light_ssao, vec3(_2598, _2250.y, 0.0), 0.0).x;float _2519 = min(1.0, _4484);float _4493;vec3 _4487;highp vec3 _2947 = vec3(_2598, _2250.y, 1.0);vec4 _2948 = textureLodOffset(light_ssao, _2947, 0.0, ivec2(0, 1));vec4 _2955 = textureLodOffset(light_ssao, _2947, 0.0, ivec2(1));vec4 _2962 = textureLodOffset(light_ssao, _2947, 0.0, ivec2(1, 0));vec4 _2969 = textureLodOffset(light_ssao, _2947, 0.0, ivec2(0));vec3 _4448 = _4481;_4448.x = dot(vec4(_2948.x, _2955.x, _2962.x, _2969.x), _4485);vec3 _4450 = _4448;_4450.y = dot(vec4(_2948.y, _2955.y, _2962.y, _2969.y), _4485);vec3 _4452 = _4450;_4452.z = dot(vec4(_2948.z, _2955.z, _2962.z, _2969.z), _4485);_4487 = _4452;_4487 = textureLod(light_ssao, vec3(_2598, _2250.y, 1.0), 0.0).xyz;float _3159;float _3042 = sqrt(1.0 - _2519);float _3046 = exp2((-3.3219280242919921875) * _2624);float _3049 = dot(normalize((_4487 * 2.0) - vec3(1.0)), _2288);float _4489;float _3150 = (((-0.15658269822597503662109375) * _3042) + 1.57079601287841796875) * sqrt(1.0 - _3042);_3159 = 1.0 - _3046;float _3161 = (((-0.15658269822597503662109375) * _3046) + 1.57079601287841796875) * sqrt(_3159);float _3168 = abs(_3049);float _3176 = (((-0.15658269822597503662109375) * _3168) + 1.57079601287841796875) * sqrt(1.0 - _3168);float _4488;if (_3049 >= 0.0)_4488 = _3176;_4488 = 3.1415927410125732421875 - _3176;float _3099;if (min(_3150, _3161) <= (max(_3150, _3161) - _4488))_4489 = 1.0 - max(_3042, _3046);_3099 = _3150 + _3161;if (_3099 <= _4488)_4489 = 0.0;float _3113 = abs(_3150 - _3161);float _3125 = 1.0 - clamp((_4488 - _3113) / max(_3099 - _3113, 9.9999997473787516355514526367188e-05), 0.0, 1.0);_4489 = ((_3125 * _3125) * (((-2.0) * _3125) + 3.0)) * (1.0 - max(_3042, _3046));_4493 = min(1.0, mix(1.0, _4489 / _3159, smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _2430)));_4493 = 1.0;vec3 _4499;_4499 = textureLod(light_iblSpecular, _2235, frameUniforms.fz).xyz;float _3219 = _2235.y;float _3224 = _2235.z;float _3229 = _2235.x;_4499 = max((((((((frameUniforms.dz[0] + (frameUniforms.dz[1] * _3219)) + (frameUniforms.dz[2] * _3224)) + (frameUniforms.dz[3] * _3229)) + (frameUniforms.dz[4] * (_3219 * _3229))) + (frameUniforms.dz[5] * (_3219 * _3224))) + (frameUniforms.dz[6] * (((3.0 * _3224) * _3224) - 1.0))) + (frameUniforms.dz[7] * (_3224 * _3229))) + (frameUniforms.dz[8] * ((_3229 * _3229) - (_3219 * _3219))), vec3(0.0));uint _3300;vec3 _2589 = (((_2611 * textureLod(light_iblSpecular, mix(_2288, _2235, vec3(_2624)), (frameUniforms.fz * _2420) * (2.0 - _2420)).xyz) * (_2449 * _4493)) * frameUniforms.az) + ((((_2393 * _4499) * (vec3(1.0) - _2611)) * _2519) * frameUniforms.az);vec3 _4553;vec3 _4508;float _3356 = dot(frameUniforms.q, _2288);highp vec3 _4507;if (_3356 < frameUniforms.m.x)_4507 = normalize((frameUniforms.q * frameUniforms.m.x) + (normalize(_2288 - (frameUniforms.q * _3356)) * frameUniforms.m.y));_4507 = _2288;_4508 = _4507;_4508 = frameUniforms.q;float _3334 = clamp(dot(_2235, _4508), 0.0, 1.0);_3300 = objectUniforms.e & 255u;if (((frameUniforms.p & 255u) & _3300) == 0u)_4553 = _2589;if (_3334 <= 0.0)vec3 _3404 = normalize(_2242 + _4508);float _3407 = clamp(_3334, 0.0, 1.0);vec3 _3495 = cross(_2235, _3404);float _3501 = clamp(dot(_2235, _3404), 0.0, 1.0) * _2430;float _3508 = _2430 / (dot(_3495, _3495) + (_3501 * _3501));float _3549 = pow(1.0 - clamp(dot(_4508, _3404), 0.0, 1.0), 5.0);_4553 = _2589 + ((((_2393 * 0.3183098733425140380859375) + (((vec3(_3549) + (_2410 * (1.0 - _3549))) * (min((_3508 * _3508) * 0.3183098733425140380859375, 65504.0) * min(0.5 / mix((2.0 * _3407) * _2295, _3407 + _2295, _2430), 65504.0))) * _2449)) * frameUniforms.l.xyz) * (frameUniforms.l.w * _3407));highp uvec2 _3677 = uvec2((vec3(_2598, _2250.y, gl_FragCoord.z).xy * frameUniforms.i.xy) * vec2(frameUniforms.z, frameUniforms.v));uint _3659 = ((_3677.x * frameUniforms.r) + (_3677.y * frameUniforms.x.x)) + (uint(clamp((log2((frameUniforms.w.x * gl_FragCoord.z) + frameUniforms.w.y) * frameUniforms.w.z) + frameUniforms.w.w, 0.0, frameUniforms.w.w - 1.0)) * frameUniforms.x.y);uvec4 _3716 = texelFetch(light_froxels, ivec2(int(_3659 & 63u), int(_3659 >> 6u)), 0);uint _3719 = _3716.x;uint _3591 = _3719 + (_3716.y & 255u);vec3 _4565;vec4 _4566;_4566 = _4483;_4565 = _4553;vec4 _4479;vec3 _4586;for (uint _4564 = _3719; _4564 < _3591; _4566 = _4479, _4565 = _4586, _4564++)highp uvec4 _3863 = froxelRecordUniforms.a[_4564 >> 4u];highp uint _3880 = (_3863[(_4564 >> 2u) & 3u] >> ((_4564 & 3u) * 8u)) & 255u;highp vec2 _3764 = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_3880][2].x));highp vec3 _3789 = lightsUniforms.a[_3880][0].xyz - vertex_worldPosition.xyz;vec4 _4473 = _4566;_4473.x = _3764.x;vec4 _4475 = _4473;_4475.y = _3764.y;vec4 _4477 = _4475;_4477.z = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_3880][2].y)).x;highp float _3888 = lightsUniforms.a[_3880][3].y * frameUniforms.bz;_4479 = _4477;_4479.w = _3888;highp vec3 _3804 = normalize(_3789);highp float _3898 = dot(_3789, _3789);float _3928 = _3898 * lightsUniforms.a[_3880][0].w;float _3933 = clamp(1.0 - (_3928 * _3928), 0.0, 1.0);highp vec3 _3904 = vertex_worldPosition.xyz - frameUniforms.j;float _3921 = ((_3933 * _3933) * clamp(frameUniforms.n.x - (dot(_3904, _3904) * frameUniforms.n.y), 0.0, 1.0)) / max(_3898, 9.9999997473787516355514526367188e-05);float _3815 = clamp(dot(_2235, _3804), 0.0, 1.0);float _4580;if ((floatBitsToUint(lightsUniforms.a[_3880][3].z) & 1u) == 1u)highp float _3954 = clamp((dot(-lightsUniforms.a[_3880][1].xyz, _3804) * lightsUniforms.a[_3880][2].z) + lightsUniforms.a[_3880][2].w, 0.0, 1.0);_4580 = _3921 * (_3954 * _3954);_4580 = _3921;if ((floatBitsToUint(lightsUniforms.a[_3880][3].w) & _3300) == 0u)_4586 = _4565;bool _3612 = _3815 <= 0.0;bool _3619;if (!_3612)_3619 = _4580 <= 0.0;_3619 = _3612;if (_3619)vec3 _3978 = normalize(_2242 + _3804);float _3981 = clamp(_3815, 0.0, 1.0);vec3 _4069 = cross(_2235, _3978);float _4075 = clamp(dot(_2235, _3978), 0.0, 1.0) * _2430;float _4082 = _2430 / (dot(_4069, _4069) + (_4075 * _4075));float _4123 = pow(1.0 - clamp(dot(_3804, _3978), 0.0, 1.0), 5.0);_4586 = _4565 + ((((_2393 * 0.3183098733425140380859375) + (((vec3(_4123) + (_2410 * (1.0 - _4123))) * (min((_4082 * _4082) * 0.3183098733425140380859375, 65504.0) * min(0.5 / mix((2.0 * _3981) * _2295, _3981 + _2295, _2430), 65504.0))) * _2449)) * _4479.xyz) * ((_3888 * _4580) * _3981));fragColor = vec4(_4565, 1.0);out vec4 vertex_lightSpacePosition;vec4 _288 = (objectUniforms.a[0] * mesh_position.x) + ((objectUniforms.a[1] * mesh_position.y) + ((objectUniforms.a[2] * mesh_position.z) + objectUniforms.a[3]));vertex_worldPosition.x = _288.x;vertex_worldPosition.y = _288.y;vertex_worldPosition.z = _288.z;float _310 = clamp(dot(vertex_worldNormal, frameUniforms.q), 0.0, 1.0);vec3 _320 = vertex_worldPosition.xyz + (vertex_worldNormal * (sqrt(1.0 - (_310 * _310)) * frameUniforms.t));vertex_lightSpacePosition = (frameUniforms.g[0][0] * _320.x) + ((frameUniforms.g[0][1] * _320.y) + ((frameUniforms.g[0][2] * _320.z) + frameUniforms.g[0][3]));gl_Position = frameUniforms.e * _288;uniform highp sampler2D light_structure;uniform mediump sampler2DArrayShadow light_shadowMap;in highp vec4 vertex_lightSpacePosition;vec3 _5051;vec4 _5053;float _5175;vec3 _5176;vec3 _4715;bool _3122;highp vec3 _2687 = normalize(vertex_worldNormal);highp vec3 _2694 = normalize(frameUniforms.j - vertex_worldPosition.xyz);highp vec2 _2702 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);float _2747 = max(dot(_2687, _2694), 9.9999997473787516355514526367188e-05);vec3 _2740 = reflect(-_2694, _2687);vec4 _4922 = vec4(1.0);_4922.x = materialParams.a.x;vec4 _4924 = _4922;_4924.y = materialParams.a.y;vec4 _4926 = _4924;_4926.z = materialParams.a.z;float _2839 = 1.0 - materialParams.b;vec3 _2840 = _4926.xyz * _2839;vec3 _2857 = (_4926.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _2839);float _2867 = clamp(materialParams.c, 0.08900000154972076416015625, 1.0);float _2877 = _2867 * _2867;vec4 _2911 = textureLod(light_iblDFG, vec2(_2747, _2867), 0.0);vec3 _2896 = vec3(1.0) + (_2857 * ((1.0 / _2911.y) - 1.0));highp float _3045 = _2702.x;vec3 _3058 = mix(_2911.xxx, _2911.yyy, _2857);float _3071 = _2877 * _2877;float _5054;highp vec4 _5055;_3122 = frameUniforms.vz > 0.0;if (_3122)highp vec3 _3145 = vec3(_3045, _2702.y, 0.0);vec4 _3146 = textureLodOffset(light_ssao, _3145, 0.0, ivec2(0, 1));vec4 _3154 = textureLodOffset(light_ssao, _3145, 0.0, ivec2(1));vec4 _3162 = textureLodOffset(light_ssao, _3145, 0.0, ivec2(1, 0));vec4 _3170 = textureLodOffset(light_ssao, _3145, 0.0, ivec2(0));vec4 _4945 = _5053;_4945.x = (_3146.y * 0.996108949184417724609375) + (_3146.z * 0.00389105058275163173675537109375);vec4 _4951 = _4945;_4951.y = (_3154.y * 0.996108949184417724609375) + (_3154.z * 0.00389105058275163173675537109375);vec4 _4957 = _4951;_4957.z = (_3162.y * 0.996108949184417724609375) + (_3162.z * 0.00389105058275163173675537109375);vec4 _4963 = _4957;_4963.w = (_3170.y * 0.996108949184417724609375) + (_3170.z * 0.00389105058275163173675537109375);highp vec2 _3238 = fract((vec3(_3045, _2702.y, _5175).xy * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _3240 = _3238.x;float _3241 = 1.0 - _3240;float _3243 = _3238.y;vec4 _4967 = _5053;_4967.x = _3241 * _3243;vec4 _4971 = _4967;_4971.y = _3240 * _3243;float _3256 = 1.0 - _3243;vec4 _4975 = _4971;_4975.z = _3240 * _3256;vec4 _4979 = _4975;_4979.w = _3241 * _3256;vec4 _3286 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), vertex_worldPosition.xyz) + frameUniforms.a[3].z) - (_4963 * (-frameUniforms.gz))) * frameUniforms.vz;highp vec4 _3294 = max(vec4(6.103515625e-05), vec4(1.0) - (_3286 * _3286)) * _4979;highp vec4 _3308 = _3294 / vec4(((_3294.x + _3294.y) + _3294.z) + _3294.w);_5055 = _3308;_5054 = dot(vec4(_3146.x, _3154.x, _3162.x, _3170.x), _3308);_5055 = _5053;_5054 = textureLod(light_ssao, vec3(_3045, _2702.y, 0.0), 0.0).x;float _2966 = min(1.0, _5054);float _5063;vec3 _5057;highp vec3 _3394 = vec3(_3045, _2702.y, 1.0);vec4 _3395 = textureLodOffset(light_ssao, _3394, 0.0, ivec2(0, 1));vec4 _3402 = textureLodOffset(light_ssao, _3394, 0.0, ivec2(1));vec4 _3409 = textureLodOffset(light_ssao, _3394, 0.0, ivec2(1, 0));vec4 _3416 = textureLodOffset(light_ssao, _3394, 0.0, ivec2(0));vec3 _5001 = _5051;_5001.x = dot(vec4(_3395.x, _3402.x, _3409.x, _3416.x), _5055);vec3 _5003 = _5001;_5003.y = dot(vec4(_3395.y, _3402.y, _3409.y, _3416.y), _5055);vec3 _5005 = _5003;_5005.z = dot(vec4(_3395.z, _3402.z, _3409.z, _3416.z), _5055);_5057 = _5005;_5057 = textureLod(light_ssao, vec3(_3045, _2702.y, 1.0), 0.0).xyz;float _3606;float _3489 = sqrt(1.0 - _2966);float _3493 = exp2((-3.3219280242919921875) * _3071);float _3496 = dot(normalize((_5057 * 2.0) - vec3(1.0)), _2740);float _5059;float _3597 = (((-0.15658269822597503662109375) * _3489) + 1.57079601287841796875) * sqrt(1.0 - _3489);_3606 = 1.0 - _3493;float _3608 = (((-0.15658269822597503662109375) * _3493) + 1.57079601287841796875) * sqrt(_3606);float _3615 = abs(_3496);float _3623 = (((-0.15658269822597503662109375) * _3615) + 1.57079601287841796875) * sqrt(1.0 - _3615);float _5058;if (_3496 >= 0.0)_5058 = _3623;_5058 = 3.1415927410125732421875 - _3623;float _3546;if (min(_3597, _3608) <= (max(_3597, _3608) - _5058))_5059 = 1.0 - max(_3489, _3493);_3546 = _3597 + _3608;if (_3546 <= _5058)_5059 = 0.0;float _3560 = abs(_3597 - _3608);float _3572 = 1.0 - clamp((_5058 - _3560) / max(_3546 - _3560, 9.9999997473787516355514526367188e-05), 0.0, 1.0);_5059 = ((_3572 * _3572) * (((-2.0) * _3572) + 3.0)) * (1.0 - max(_3489, _3493));_5063 = min(1.0, mix(1.0, _5059 / _3606, smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _2877)));_5063 = 1.0;vec3 _5069;_5069 = textureLod(light_iblSpecular, _2687, frameUniforms.fz).xyz;float _3666 = _2687.y;float _3671 = _2687.z;float _3676 = _2687.x;_5069 = max((((((((frameUniforms.dz[0] + (frameUniforms.dz[1] * _3666)) + (frameUniforms.dz[2] * _3671)) + (frameUniforms.dz[3] * _3676)) + (frameUniforms.dz[4] * (_3666 * _3676))) + (frameUniforms.dz[5] * (_3666 * _3671))) + (frameUniforms.dz[6] * (((3.0 * _3671) * _3671) - 1.0))) + (frameUniforms.dz[7] * (_3671 * _3676))) + (frameUniforms.dz[8] * ((_3676 * _3676) - (_3666 * _3666))), vec3(0.0));vec3 _3036 = (((_3058 * textureLod(light_iblSpecular, mix(_2740, _2687, vec3(_3071)), (frameUniforms.fz * _2867) * (2.0 - _2867)).xyz) * (_2896 * _5063)) * frameUniforms.az) + ((((_2840 * _5069) * (vec3(1.0) - _3058)) * _2966) * frameUniforms.az);vec3 _5169;vec3 _5078;float _3863 = dot(frameUniforms.q, _2740);highp vec3 _5077;if (_3863 < frameUniforms.m.x)_5077 = normalize((frameUniforms.q * frameUniforms.m.x) + (normalize(_2740 - (frameUniforms.q * _3863)) * frameUniforms.m.y));_5077 = _2740;_5078 = _5077;_5078 = frameUniforms.q;float _3841 = clamp(dot(_2687, _5078), 0.0, 1.0);_5169 = _3036;if (_3841 <= 0.0)float _5158;if (_3841 > 0.0)bvec4 _3905 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * vertex_worldPosition.x) + ((frameUniforms.a[1] * vertex_worldPosition.y) + ((frameUniforms.a[2] * vertex_worldPosition.z) + frameUniforms.a[3]))).z));uint _3915 = clamp(uint(dot(vec4(_3905.x ? vec4(1.0).x : vec4(0.0).x, _3905.y ? vec4(1.0).y : vec4(0.0).y, _3905.z ? vec4(1.0).z : vec4(0.0).z, _3905.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);float _5131;if (((frameUniforms.iz & 1u) != 0u) && ((frameUniforms.uz & ((1u << _3915) << 8u)) != 0u))highp vec4 _5121;if (_3915 == 0u)_5121 = vertex_lightSpacePosition;highp float _3985 = clamp(dot(_2687, frameUniforms.q), 0.0, 1.0);highp vec3 _3995 = vertex_worldPosition.xyz + (_2687 * (sqrt(1.0 - (_3985 * _3985)) * frameUniforms.t));_5121 = (frameUniforms.g[_3915][0] * _3995.x) + ((frameUniforms.g[_3915][1] * _3995.y) + ((frameUniforms.g[_3915][2] * _3995.z) + frameUniforms.g[_3915][3]));highp vec3 _4035 = _5121.xyz * (1.0 / _5121.w);highp vec2 _4042 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);highp vec2 _4044 = vec2(1.0) / _4042;highp vec2 _4049 = clamp(_4035.xy, vec2(-1.0), vec2(2.0));highp vec3 _5009 = _5176;_5009.x = _4049.x;highp vec3 _5011 = _5009;_5011.y = _4049.y;highp vec2 _4059 = (_5011.xy * _4042) + vec2(0.5);highp vec2 _4065 = (floor(_4059) - vec2(0.5)) * _4044;highp vec2 _4067 = fract(_4059);highp float _4069 = _4067.x;highp float _4070 = 2.0 * _4069;highp float _4071 = 3.0 - _4070;highp float _4075 = 1.0 + _4070;highp float _4078 = _4067.y;highp float _4079 = 2.0 * _4078;highp float _4080 = 3.0 - _4079;highp float _4084 = 1.0 + _4079;highp vec2 _4117 = vec2(((2.0 - _4069) / _4071) - 1.0, (_4069 / _4075) + 1.0) * _4044.x;highp vec2 _4121 = vec2(((2.0 - _4078) / _4080) - 1.0, (_4078 / _4084) + 1.0) * _4044.y;highp float _4129 = _4117.x;highp float _4131 = _4121.x;float _4195 = float(_3915);float _4197 = clamp(_4035.z, 0.0, 1.0);highp float _4146 = _4117.y;highp float _4165 = _4121.y;_5131 = (((((_4071 * _4080) * texture(light_shadowMap, vec4(vec4(_4065 + vec2(_4129, _4131), _4195, _4197).xyz, _4197))) + ((_4075 * _4080) * texture(light_shadowMap, vec4(vec4(_4065 + vec2(_4146, _4131), _4195, _4197).xyz, _4197)))) + ((_4071 * _4084) * texture(light_shadowMap, vec4(vec4(_4065 + vec2(_4129, _4165), _4195, _4197).xyz, _4197)))) + ((_4075 * _4084) * texture(light_shadowMap, vec4(vec4(_4065 + vec2(_4146, _4165), _4195, _4197).xyz, _4197)))) * 0.0625;_5131 = 1.0;float _5149;if (((frameUniforms.iz & 2u) != 0u) && (_5131 > 0.0))float _5153;if ((objectUniforms.d & 4u) != 0u)uint _4259 = (frameUniforms.iz >> 8u) & 255u;highp vec4 _4367 = frameUniforms.e * vec4(vertex_worldPosition.xyz, 1.0);highp vec4 _4374 = frameUniforms.e * vec4(vertex_worldPosition.xyz + (_5078 * frameUniforms.kz), 1.0);highp vec4 _4380 = _4367 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));highp vec3 _4386 = _4367.xyz * (1.0 / _4367.w);highp vec3 _4393 = _4374.xyz * (1.0 / _4374.w);highp float _4420 = _4386.z;highp vec3 _4423 = vec3((_4386.xy * 0.5) + vec2(0.5), _4420);highp vec3 _4428 = vec3((_4393.xy * 0.5) + vec2(0.5), _4393.z) - _4423;float _4269 = 1.0 / float(_4259);highp float _4277 = abs((_4380.xyz * (1.0 / _4380.w)).z - _4420) * _4269;uint _5132;highp float _5133;highp vec3 _5135;_5133 = (_4269 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _4269;_5132 = 0u;_5135 = _5051;highp vec3 _4302;highp vec3 _5134;float _5147;for (;;)if (_5132 < _4259)_4302 = _4423 + (_4428 * _5133);if (abs(_4277 - (textureLod(light_structure, _4302.xy, 0.0).x - _4302.z)) < _4277)_5147 = 1.0;_5134 = _4302;_5133 += _4269;_5132++;_5135 = _4302;_5147 = 0.0;_5134 = _5135;highp vec2 _4337 = max((abs(_5134.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_5153 = _5147 * clamp(1.0 - dot(_4337, _4337), 0.0, 1.0);_5153 = 0.0;_5149 = _5153;_5149 = 0.0;float _3814 = _5131 * (1.0 - _5149);if (_3814 <= 0.0)_5158 = _3814;_5158 = 1.0;vec3 _4461 = normalize(_2694 + _5078);float _4464 = clamp(_3841, 0.0, 1.0);vec3 _4552 = cross(_2687, _4461);float _4558 = clamp(dot(_2687, _4461), 0.0, 1.0) * _2877;float _4565 = _2877 / (dot(_4552, _4552) + (_4558 * _4558));float _4606 = pow(1.0 - clamp(dot(_5078, _4461), 0.0, 1.0), 5.0);_5169 = _3036 + ((((_2840 * 0.3183098733425140380859375) + (((vec3(_4606) + (_2857 * (1.0 - _4606))) * (min((_4565 * _4565) * 0.3183098733425140380859375, 65504.0) * min(0.5 / mix((2.0 * _4464) * _2747, _4464 + _2747, _2877), 65504.0))) * _2896)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _4464) * _5158));fragColor = vec4(_5169, 1.0);if ((frameUniforms.uz & 16u) != 0u)bvec4 _4648 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * vertex_worldPosition.x) + ((frameUniforms.a[1] * vertex_worldPosition.y) + ((frameUniforms.a[2] * vertex_worldPosition.z) + frameUniforms.a[3]))).z));uint _4658 = clamp(uint(dot(vec4(_4648.x ? vec4(1.0).x : vec4(0.0).x, _4648.y ? vec4(1.0).y : vec4(0.0).y, _4648.z ? vec4(1.0).z : vec4(0.0).z, _4648.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);vec3 _5170;if (_4658 == 0u)_5170 = vec3(0.0, 1.0, 0.0);if (_4658 == 1u)_5170 = vec3(0.0, 0.0, 1.0);if (_4658 == 2u)_5170 = vec3(1.0, 1.0, 0.0);if (_4658 == 3u)_5170 = vec3(1.0, 0.0, 0.0);if (_4658 == 4u)_5170 = vec3(1.0, 0.0, 1.0);if (_4658 == 5u)_5170 = vec3(0.0, 1.0, 1.0);_5170 = _4715;vec4 _2614 = fragColor;vec3 _2616 = _2614.xyz * _5170;fragColor.x = _2616.x;fragColor.y = _2616.y;fragColor.z = _2616.z;struct ShadowDatahighp mat4 lightFromWorldMatrix;highp vec3 direction;float normalBias;highp vec4 lightFromWorldZ;float texelSizeAtOneMeter;float bulbRadiusLs;float nearOverFarMinusNear;};layout(std140) uniform ShadowUniformsShadowData a[14];} shadowUniforms;vec3 _5471;vec4 _5473;float _5596;vec3 _5597;bool _3344;highp vec3 _2909 = normalize(vertex_worldNormal);highp vec3 _2916 = normalize(frameUniforms.j - vertex_worldPosition.xyz);highp vec2 _2924 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);float _2969 = max(dot(_2909, _2916), 9.9999997473787516355514526367188e-05);vec3 _2962 = reflect(-_2916, _2909);vec4 _5316 = vec4(1.0);_5316.x = materialParams.a.x;vec4 _5318 = _5316;_5318.y = materialParams.a.y;vec4 _5320 = _5318;_5320.z = materialParams.a.z;float _3061 = 1.0 - materialParams.b;vec3 _3062 = _5320.xyz * _3061;vec3 _3079 = (_5320.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _3061);float _3089 = clamp(materialParams.c, 0.08900000154972076416015625, 1.0);float _3099 = _3089 * _3089;vec4 _3133 = textureLod(light_iblDFG, vec2(_2969, _3089), 0.0);vec3 _3118 = vec3(1.0) + (_3079 * ((1.0 / _3133.y) - 1.0));highp float _3267 = _2924.x;vec3 _3280 = mix(_3133.xxx, _3133.yyy, _3079);float _3293 = _3099 * _3099;float _5474;highp vec4 _5475;_3344 = frameUniforms.vz > 0.0;if (_3344)highp vec3 _3367 = vec3(_3267, _2924.y, 0.0);vec4 _3368 = textureLodOffset(light_ssao, _3367, 0.0, ivec2(0, 1));vec4 _3376 = textureLodOffset(light_ssao, _3367, 0.0, ivec2(1));vec4 _3384 = textureLodOffset(light_ssao, _3367, 0.0, ivec2(1, 0));vec4 _3392 = textureLodOffset(light_ssao, _3367, 0.0, ivec2(0));vec4 _5339 = _5473;_5339.x = (_3368.y * 0.996108949184417724609375) + (_3368.z * 0.00389105058275163173675537109375);vec4 _5345 = _5339;_5345.y = (_3376.y * 0.996108949184417724609375) + (_3376.z * 0.00389105058275163173675537109375);vec4 _5351 = _5345;_5351.z = (_3384.y * 0.996108949184417724609375) + (_3384.z * 0.00389105058275163173675537109375);vec4 _5357 = _5351;_5357.w = (_3392.y * 0.996108949184417724609375) + (_3392.z * 0.00389105058275163173675537109375);highp vec2 _3460 = fract((vec3(_3267, _2924.y, _5596).xy * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _3462 = _3460.x;float _3463 = 1.0 - _3462;float _3465 = _3460.y;vec4 _5361 = _5473;_5361.x = _3463 * _3465;vec4 _5365 = _5361;_5365.y = _3462 * _3465;float _3478 = 1.0 - _3465;vec4 _5369 = _5365;_5369.z = _3462 * _3478;vec4 _5373 = _5369;_5373.w = _3463 * _3478;vec4 _3508 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), vertex_worldPosition.xyz) + frameUniforms.a[3].z) - (_5357 * (-frameUniforms.gz))) * frameUniforms.vz;highp vec4 _3516 = max(vec4(6.103515625e-05), vec4(1.0) - (_3508 * _3508)) * _5373;highp vec4 _3530 = _3516 / vec4(((_3516.x + _3516.y) + _3516.z) + _3516.w);_5475 = _3530;_5474 = dot(vec4(_3368.x, _3376.x, _3384.x, _3392.x), _3530);_5475 = _5473;_5474 = textureLod(light_ssao, vec3(_3267, _2924.y, 0.0), 0.0).x;float _3188 = min(1.0, _5474);float _5483;vec3 _5477;highp vec3 _3616 = vec3(_3267, _2924.y, 1.0);vec4 _3617 = textureLodOffset(light_ssao, _3616, 0.0, ivec2(0, 1));vec4 _3624 = textureLodOffset(light_ssao, _3616, 0.0, ivec2(1));vec4 _3631 = textureLodOffset(light_ssao, _3616, 0.0, ivec2(1, 0));vec4 _3638 = textureLodOffset(light_ssao, _3616, 0.0, ivec2(0));vec3 _5395 = _5471;_5395.x = dot(vec4(_3617.x, _3624.x, _3631.x, _3638.x), _5475);vec3 _5397 = _5395;_5397.y = dot(vec4(_3617.y, _3624.y, _3631.y, _3638.y), _5475);vec3 _5399 = _5397;_5399.z = dot(vec4(_3617.z, _3624.z, _3631.z, _3638.z), _5475);_5477 = _5399;_5477 = textureLod(light_ssao, vec3(_3267, _2924.y, 1.0), 0.0).xyz;float _3828;float _3711 = sqrt(1.0 - _3188);float _3715 = exp2((-3.3219280242919921875) * _3293);float _3718 = dot(normalize((_5477 * 2.0) - vec3(1.0)), _2962);float _5479;float _3819 = (((-0.15658269822597503662109375) * _3711) + 1.57079601287841796875) * sqrt(1.0 - _3711);_3828 = 1.0 - _3715;float _3830 = (((-0.15658269822597503662109375) * _3715) + 1.57079601287841796875) * sqrt(_3828);float _3837 = abs(_3718);float _3845 = (((-0.15658269822597503662109375) * _3837) + 1.57079601287841796875) * sqrt(1.0 - _3837);float _5478;if (_3718 >= 0.0)_5478 = _3845;_5478 = 3.1415927410125732421875 - _3845;float _3768;if (min(_3819, _3830) <= (max(_3819, _3830) - _5478))_5479 = 1.0 - max(_3711, _3715);_3768 = _3819 + _3830;if (_3768 <= _5478)_5479 = 0.0;float _3782 = abs(_3819 - _3830);float _3794 = 1.0 - clamp((_5478 - _3782) / max(_3768 - _3782, 9.9999997473787516355514526367188e-05), 0.0, 1.0);_5479 = ((_3794 * _3794) * (((-2.0) * _3794) + 3.0)) * (1.0 - max(_3711, _3715));_5483 = min(1.0, mix(1.0, _5479 / _3828, smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _3099)));_5483 = 1.0;vec3 _5489;_5489 = textureLod(light_iblSpecular, _2909, frameUniforms.fz).xyz;float _3888 = _2909.y;float _3893 = _2909.z;float _3898 = _2909.x;_5489 = max((((((((frameUniforms.dz[0] + (frameUniforms.dz[1] * _3888)) + (frameUniforms.dz[2] * _3893)) + (frameUniforms.dz[3] * _3898)) + (frameUniforms.dz[4] * (_3888 * _3898))) + (frameUniforms.dz[5] * (_3888 * _3893))) + (frameUniforms.dz[6] * (((3.0 * _3893) * _3893) - 1.0))) + (frameUniforms.dz[7] * (_3893 * _3898))) + (frameUniforms.dz[8] * ((_3898 * _3898) - (_3888 * _3888))), vec3(0.0));highp uvec2 _4102 = uvec2((vec3(_3267, _2924.y, gl_FragCoord.z).xy * frameUniforms.i.xy) * vec2(frameUniforms.z, frameUniforms.v));uint _4084 = ((_4102.x * frameUniforms.r) + (_4102.y * frameUniforms.x.x)) + (uint(clamp((log2((frameUniforms.w.x * gl_FragCoord.z) + frameUniforms.w.y) * frameUniforms.w.z) + frameUniforms.w.w, 0.0, frameUniforms.w.w - 1.0)) * frameUniforms.x.y);uvec4 _4141 = texelFetch(light_froxels, ivec2(int(_4084 & 63u), int(_4084 >> 6u)), 0);uint _4144 = _4141.x;uint _3978 = _4144 + (_4141.y & 255u);uint _3981 = objectUniforms.e & 255u;vec3 _5505;vec4 _5506;highp vec3 _5536;_5536 = _5471;_5506 = _5473;_5505 = (((_3280 * textureLod(light_iblSpecular, mix(_2962, _2909, vec3(_3293)), (frameUniforms.fz * _3089) * (2.0 - _3089)).xyz) * (_3118 * _5483)) * frameUniforms.az) + ((((_3062 * _5489) * (vec3(1.0) - _3280)) * _3188) * frameUniforms.az);vec4 _5426;vec3 _5570;highp vec3 _5588;for (uint _5504 = _4144; _5504 < _3978; _5536 = _5588, _5506 = _5426, _5505 = _5570, _5504++)highp uvec4 _4288 = froxelRecordUniforms.a[_5504 >> 4u];highp uint _4305 = (_4288[(_5504 >> 2u) & 3u] >> ((_5504 & 3u) * 8u)) & 255u;highp vec2 _4189 = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_4305][2].x));highp uint _4206 = floatBitsToUint(lightsUniforms.a[_4305][3].z);highp uint _4209 = floatBitsToUint(lightsUniforms.a[_4305][3].w);highp vec3 _4214 = lightsUniforms.a[_4305][0].xyz - vertex_worldPosition.xyz;vec4 _5420 = _5506;_5420.x = _4189.x;vec4 _5422 = _5420;_5422.y = _4189.y;vec4 _5424 = _5422;_5424.z = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_4305][2].y)).x;highp float _4313 = lightsUniforms.a[_4305][3].y * frameUniforms.bz;_5426 = _5424;_5426.w = _4313;highp vec3 _4229 = normalize(_4214);highp float _4323 = dot(_4214, _4214);float _4353 = _4323 * lightsUniforms.a[_4305][0].w;float _4358 = clamp(1.0 - (_4353 * _4353), 0.0, 1.0);highp vec3 _4329 = vertex_worldPosition.xyz - frameUniforms.j;float _4346 = ((_4358 * _4358) * clamp(frameUniforms.n.x - (dot(_4329, _4329) * frameUniforms.n.y), 0.0, 1.0)) / max(_4323, 9.9999997473787516355514526367188e-05);float _4240 = clamp(dot(_2909, _4229), 0.0, 1.0);uint _5513;uint _5514;bool _5515;bool _5516;float _5517;if ((_4206 & 1u) == 1u)highp float _4379 = clamp((dot(-lightsUniforms.a[_4305][1].xyz, _4229) * lightsUniforms.a[_4305][2].z) + lightsUniforms.a[_4305][2].w, 0.0, 1.0);_5517 = _4346 * (_4379 * _4379);_5516 = (_4209 & 65536u) != 0u;_5515 = (_4206 & 16u) != 0u;_5514 = (_4206 >> 8u) & 255u;_5513 = (_4206 >> 16u) & 255u;_5517 = _4346;_5516 = false;_5515 = false;_5514 = 0u;_5513 = 0u;if ((_4209 & _3981) == 0u)_5588 = _5536;_5570 = _5505;bool _3999 = _4240 <= 0.0;bool _4006;if (!_3999)_4006 = _5517 <= 0.0;_4006 = _3999;if (_4006)float _5550;highp vec3 _5591;if (_4240 > 0.0)float _5528;if (_5516)highp float _4443 = clamp(dot(_2909, shadowUniforms.a[_5514].direction), 0.0, 1.0);highp vec3 _4453 = vertex_worldPosition.xyz + (_2909 * (sqrt(1.0 - (_4443 * _4443)) * (shadowUniforms.a[_5514].normalBias * dot(shadowUniforms.a[_5514].lightFromWorldZ, vec4(vertex_worldPosition.xyz, 1.0)))));highp vec4 _4470 = (shadowUniforms.a[_5514].lightFromWorldMatrix[0] * _4453.x) + ((shadowUniforms.a[_5514].lightFromWorldMatrix[1] * _4453.y) + ((shadowUniforms.a[_5514].lightFromWorldMatrix[2] * _4453.z) + shadowUniforms.a[_5514].lightFromWorldMatrix[3]));highp vec3 _4493 = _4470.xyz * (1.0 / _4470.w);highp vec2 _4500 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);highp vec2 _4502 = vec2(1.0) / _4500;highp vec2 _4507 = clamp(_4493.xy, vec2(-1.0), vec2(2.0));highp vec3 _5430 = _5597;_5430.x = _4507.x;highp vec3 _5432 = _5430;_5432.y = _4507.y;highp vec2 _4517 = (_5432.xy * _4500) + vec2(0.5);highp vec2 _4523 = (floor(_4517) - vec2(0.5)) * _4502;highp vec2 _4525 = fract(_4517);highp float _4527 = _4525.x;highp float _4528 = 2.0 * _4527;highp float _4529 = 3.0 - _4528;highp float _4533 = 1.0 + _4528;highp float _4536 = _4525.y;highp float _4537 = 2.0 * _4536;highp float _4538 = 3.0 - _4537;highp float _4542 = 1.0 + _4537;highp vec2 _4575 = vec2(((2.0 - _4527) / _4529) - 1.0, (_4527 / _4533) + 1.0) * _4502.x;highp vec2 _4579 = vec2(((2.0 - _4536) / _4538) - 1.0, (_4536 / _4542) + 1.0) * _4502.y;highp float _4587 = _4575.x;highp float _4589 = _4579.x;float _4653 = float(_5513);float _4655 = clamp(_4493.z, 0.0, 1.0);highp float _4604 = _4575.y;highp float _4623 = _4579.y;_5528 = (((((_4529 * _4538) * texture(light_shadowMap, vec4(vec4(_4523 + vec2(_4587, _4589), _4653, _4655).xyz, _4655))) + ((_4533 * _4538) * texture(light_shadowMap, vec4(vec4(_4523 + vec2(_4604, _4589), _4653, _4655).xyz, _4655)))) + ((_4529 * _4542) * texture(light_shadowMap, vec4(vec4(_4523 + vec2(_4587, _4623), _4653, _4655).xyz, _4655)))) + ((_4533 * _4542) * texture(light_shadowMap, vec4(vec4(_4523 + vec2(_4604, _4623), _4653, _4655).xyz, _4655)))) * 0.0625;_5528 = 1.0;float _5548;highp vec3 _5589;if (_5515 && (_5528 > 0.0))float _5549;highp vec3 _5590;uint _4717 = (frameUniforms.iz >> 8u) & 255u;highp vec4 _4825 = frameUniforms.e * vec4(vertex_worldPosition.xyz, 1.0);highp vec4 _4832 = frameUniforms.e * vec4(vertex_worldPosition.xyz + (_4229 * frameUniforms.kz), 1.0);highp vec4 _4838 = _4825 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));highp vec3 _4844 = _4825.xyz * (1.0 / _4825.w);highp vec3 _4851 = _4832.xyz * (1.0 / _4832.w);highp float _4878 = _4844.z;highp vec3 _4881 = vec3((_4844.xy * 0.5) + vec2(0.5), _4878);highp vec3 _4886 = vec3((_4851.xy * 0.5) + vec2(0.5), _4851.z) - _4881;float _4727 = 1.0 / float(_4717);highp float _4735 = abs((_4838.xyz * (1.0 / _4838.w)).z - _4878) * _4727;uint _5529;highp float _5530;highp vec3 _5532;_5530 = (_4727 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _4727;_5529 = 0u;_5532 = _5536;highp vec3 _4760;highp vec3 _5531;float _5544;if (_5529 < _4717)_4760 = _4881 + (_4886 * _5530);if (abs(_4735 - (textureLod(light_structure, _4760.xy, 0.0).x - _4760.z)) < _4735)_5544 = 1.0;_5531 = _4760;_5530 += _4727;_5529++;_5532 = _4760;_5544 = 0.0;_5531 = _5532;highp vec2 _4795 = max((abs(_5531.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_5590 = _5531;_5549 = _5528 * (1.0 - (_5544 * clamp(1.0 - dot(_4795, _4795), 0.0, 1.0)));_5590 = _5536;_5549 = _5528;_5589 = _5590;_5548 = _5549;_5589 = _5536;_5548 = _5528;if (_5548 <= 0.0)_5588 = _5589;_5591 = _5589;_5550 = _5548;_5591 = _5536;_5550 = 1.0;vec3 _4919 = normalize(_2916 + _4229);float _4922 = clamp(_4240, 0.0, 1.0);vec3 _5010 = cross(_2909, _4919);float _5016 = clamp(dot(_2909, _4919), 0.0, 1.0) * _3099;float _5023 = _3099 / (dot(_5010, _5010) + (_5016 * _5016));float _5064 = pow(1.0 - clamp(dot(_4229, _4919), 0.0, 1.0), 5.0);_5588 = _5591;_5570 = _5505 + ((((_3062 * 0.3183098733425140380859375) + (((vec3(_5064) + (_3079 * (1.0 - _5064))) * (min((_5023 * _5023) * 0.3183098733425140380859375, 65504.0) * min(0.5 / mix((2.0 * _4922) * _2969, _4922 + _2969, _3099), 65504.0))) * _3118)) * _5426.xyz) * (((_4313 * _5517) * _4922) * _5550));fragColor = vec4(_5505, 1.0);vec3 _7019;vec4 _7021;float _7251;vec3 _7252;vec3 _6540;bool _3668;highp vec3 _3228 = normalize(vertex_worldNormal);highp vec3 _3235 = normalize(frameUniforms.j - vertex_worldPosition.xyz);highp vec2 _3243 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);float _3288 = max(dot(_3228, _3235), 9.9999997473787516355514526367188e-05);vec3 _3281 = reflect(-_3235, _3228);vec4 _6819 = vec4(1.0);_6819.x = materialParams.a.x;vec4 _6821 = _6819;_6821.y = materialParams.a.y;vec4 _6823 = _6821;_6823.z = materialParams.a.z;float _3385 = 1.0 - materialParams.b;vec3 _3386 = _6823.xyz * _3385;vec3 _3403 = (_6823.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _3385);float _3413 = clamp(materialParams.c, 0.08900000154972076416015625, 1.0);float _3423 = _3413 * _3413;vec4 _3457 = textureLod(light_iblDFG, vec2(_3288, _3413), 0.0);vec3 _3442 = vec3(1.0) + (_3403 * ((1.0 / _3457.y) - 1.0));highp float _3591 = _3243.x;vec3 _3604 = mix(_3457.xxx, _3457.yyy, _3403);float _3617 = _3423 * _3423;float _7022;highp vec4 _7023;_3668 = frameUniforms.vz > 0.0;if (_3668)highp vec3 _3691 = vec3(_3591, _3243.y, 0.0);vec4 _3692 = textureLodOffset(light_ssao, _3691, 0.0, ivec2(0, 1));vec4 _3700 = textureLodOffset(light_ssao, _3691, 0.0, ivec2(1));vec4 _3708 = textureLodOffset(light_ssao, _3691, 0.0, ivec2(1, 0));vec4 _3716 = textureLodOffset(light_ssao, _3691, 0.0, ivec2(0));vec4 _6842 = _7021;_6842.x = (_3692.y * 0.996108949184417724609375) + (_3692.z * 0.00389105058275163173675537109375);vec4 _6848 = _6842;_6848.y = (_3700.y * 0.996108949184417724609375) + (_3700.z * 0.00389105058275163173675537109375);vec4 _6854 = _6848;_6854.z = (_3708.y * 0.996108949184417724609375) + (_3708.z * 0.00389105058275163173675537109375);vec4 _6860 = _6854;_6860.w = (_3716.y * 0.996108949184417724609375) + (_3716.z * 0.00389105058275163173675537109375);highp vec2 _3784 = fract((vec3(_3591, _3243.y, _7251).xy * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _3786 = _3784.x;float _3787 = 1.0 - _3786;float _3789 = _3784.y;vec4 _6864 = _7021;_6864.x = _3787 * _3789;vec4 _6868 = _6864;_6868.y = _3786 * _3789;float _3802 = 1.0 - _3789;vec4 _6872 = _6868;_6872.z = _3786 * _3802;vec4 _6876 = _6872;_6876.w = _3787 * _3802;vec4 _3832 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), vertex_worldPosition.xyz) + frameUniforms.a[3].z) - (_6860 * (-frameUniforms.gz))) * frameUniforms.vz;highp vec4 _3840 = max(vec4(6.103515625e-05), vec4(1.0) - (_3832 * _3832)) * _6876;highp vec4 _3854 = _3840 / vec4(((_3840.x + _3840.y) + _3840.z) + _3840.w);_7023 = _3854;_7022 = dot(vec4(_3692.x, _3700.x, _3708.x, _3716.x), _3854);_7023 = _7021;_7022 = textureLod(light_ssao, vec3(_3591, _3243.y, 0.0), 0.0).x;float _3512 = min(1.0, _7022);float _7031;vec3 _7025;highp vec3 _3940 = vec3(_3591, _3243.y, 1.0);vec4 _3941 = textureLodOffset(light_ssao, _3940, 0.0, ivec2(0, 1));vec4 _3948 = textureLodOffset(light_ssao, _3940, 0.0, ivec2(1));vec4 _3955 = textureLodOffset(light_ssao, _3940, 0.0, ivec2(1, 0));vec4 _3962 = textureLodOffset(light_ssao, _3940, 0.0, ivec2(0));vec3 _6898 = _7019;_6898.x = dot(vec4(_3941.x, _3948.x, _3955.x, _3962.x), _7023);vec3 _6900 = _6898;_6900.y = dot(vec4(_3941.y, _3948.y, _3955.y, _3962.y), _7023);vec3 _6902 = _6900;_6902.z = dot(vec4(_3941.z, _3948.z, _3955.z, _3962.z), _7023);_7025 = _6902;_7025 = textureLod(light_ssao, vec3(_3591, _3243.y, 1.0), 0.0).xyz;float _4152;float _4035 = sqrt(1.0 - _3512);float _4039 = exp2((-3.3219280242919921875) * _3617);float _4042 = dot(normalize((_7025 * 2.0) - vec3(1.0)), _3281);float _7027;float _4143 = (((-0.15658269822597503662109375) * _4035) + 1.57079601287841796875) * sqrt(1.0 - _4035);_4152 = 1.0 - _4039;float _4154 = (((-0.15658269822597503662109375) * _4039) + 1.57079601287841796875) * sqrt(_4152);float _4161 = abs(_4042);float _4169 = (((-0.15658269822597503662109375) * _4161) + 1.57079601287841796875) * sqrt(1.0 - _4161);float _7026;if (_4042 >= 0.0)_7026 = _4169;_7026 = 3.1415927410125732421875 - _4169;float _4092;if (min(_4143, _4154) <= (max(_4143, _4154) - _7026))_7027 = 1.0 - max(_4035, _4039);_4092 = _4143 + _4154;if (_4092 <= _7026)_7027 = 0.0;float _4106 = abs(_4143 - _4154);float _4118 = 1.0 - clamp((_7026 - _4106) / max(_4092 - _4106, 9.9999997473787516355514526367188e-05), 0.0, 1.0);_7027 = ((_4118 * _4118) * (((-2.0) * _4118) + 3.0)) * (1.0 - max(_4035, _4039));_7031 = min(1.0, mix(1.0, _7027 / _4152, smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _3423)));_7031 = 1.0;vec3 _7037;_7037 = textureLod(light_iblSpecular, _3228, frameUniforms.fz).xyz;float _4212 = _3228.y;float _4217 = _3228.z;float _4222 = _3228.x;_7037 = max((((((((frameUniforms.dz[0] + (frameUniforms.dz[1] * _4212)) + (frameUniforms.dz[2] * _4217)) + (frameUniforms.dz[3] * _4222)) + (frameUniforms.dz[4] * (_4212 * _4222))) + (frameUniforms.dz[5] * (_4212 * _4217))) + (frameUniforms.dz[6] * (((3.0 * _4217) * _4217) - 1.0))) + (frameUniforms.dz[7] * (_4217 * _4222))) + (frameUniforms.dz[8] * ((_4222 * _4222) - (_4212 * _4212))), vec3(0.0));uint _4300;vec3 _3582 = (((_3604 * textureLod(light_iblSpecular, mix(_3281, _3228, vec3(_3617)), (frameUniforms.fz * _3413) * (2.0 - _3413)).xyz) * (_3442 * _7031)) * frameUniforms.az) + ((((_3386 * _7037) * (vec3(1.0) - _3604)) * _3512) * frameUniforms.az);vec3 _7129;vec3 _7046;float _4409 = dot(frameUniforms.q, _3281);highp vec3 _7045;if (_4409 < frameUniforms.m.x)_7045 = normalize((frameUniforms.q * frameUniforms.m.x) + (normalize(_3281 - (frameUniforms.q * _4409)) * frameUniforms.m.y));_7045 = _3281;_7046 = _7045;_7046 = frameUniforms.q;float _4387 = clamp(dot(_3228, _7046), 0.0, 1.0);_4300 = objectUniforms.e & 255u;if (((frameUniforms.p & 255u) & _4300) == 0u)_7129 = _3582;if (_4387 <= 0.0)float _7118;if (_4387 > 0.0)bvec4 _4451 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * vertex_worldPosition.x) + ((frameUniforms.a[1] * vertex_worldPosition.y) + ((frameUniforms.a[2] * vertex_worldPosition.z) + frameUniforms.a[3]))).z));uint _4461 = clamp(uint(dot(vec4(_4451.x ? vec4(1.0).x : vec4(0.0).x, _4451.y ? vec4(1.0).y : vec4(0.0).y, _4451.z ? vec4(1.0).z : vec4(0.0).z, _4451.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);float _7091;if (((frameUniforms.iz & 1u) != 0u) && ((frameUniforms.uz & ((1u << _4461) << 8u)) != 0u))highp vec4 _7089;if (_4461 == 0u)_7089 = vertex_lightSpacePosition;highp float _4612 = clamp(dot(_3228, frameUniforms.q), 0.0, 1.0);highp vec3 _4622 = vertex_worldPosition.xyz + (_3228 * (sqrt(1.0 - (_4612 * _4612)) * frameUniforms.t));_7089 = (frameUniforms.g[_4461][0] * _4622.x) + ((frameUniforms.g[_4461][1] * _4622.y) + ((frameUniforms.g[_4461][2] * _4622.z) + frameUniforms.g[_4461][3]));highp vec3 _4662 = _7089.xyz * (1.0 / _7089.w);highp vec2 _4669 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);highp vec2 _4671 = vec2(1.0) / _4669;highp vec2 _4676 = clamp(_4662.xy, vec2(-1.0), vec2(2.0));highp vec3 _6906 = _7252;_6906.x = _4676.x;highp vec3 _6908 = _6906;_6908.y = _4676.y;highp vec2 _4686 = (_6908.xy * _4669) + vec2(0.5);highp vec2 _4692 = (floor(_4686) - vec2(0.5)) * _4671;highp vec2 _4694 = fract(_4686);highp float _4696 = _4694.x;highp float _4697 = 2.0 * _4696;highp float _4698 = 3.0 - _4697;highp float _4702 = 1.0 + _4697;highp float _4705 = _4694.y;highp float _4706 = 2.0 * _4705;highp float _4707 = 3.0 - _4706;highp float _4711 = 1.0 + _4706;highp vec2 _4744 = vec2(((2.0 - _4696) / _4698) - 1.0, (_4696 / _4702) + 1.0) * _4671.x;highp vec2 _4748 = vec2(((2.0 - _4705) / _4707) - 1.0, (_4705 / _4711) + 1.0) * _4671.y;highp float _4756 = _4744.x;highp float _4758 = _4748.x;float _4822 = float(_4461);float _4824 = clamp(_4662.z, 0.0, 1.0);highp float _4773 = _4744.y;highp float _4792 = _4748.y;_7091 = (((((_4698 * _4707) * texture(light_shadowMap, vec4(vec4(_4692 + vec2(_4756, _4758), _4822, _4824).xyz, _4824))) + ((_4702 * _4707) * texture(light_shadowMap, vec4(vec4(_4692 + vec2(_4773, _4758), _4822, _4824).xyz, _4824)))) + ((_4698 * _4711) * texture(light_shadowMap, vec4(vec4(_4692 + vec2(_4756, _4792), _4822, _4824).xyz, _4824)))) + ((_4702 * _4711) * texture(light_shadowMap, vec4(vec4(_4692 + vec2(_4773, _4792), _4822, _4824).xyz, _4824)))) * 0.0625;_7091 = 1.0;float _7109;if (((frameUniforms.iz & 2u) != 0u) && (_7091 > 0.0))float _7113;uint _4886 = (frameUniforms.iz >> 8u) & 255u;highp vec4 _4994 = frameUniforms.e * vec4(vertex_worldPosition.xyz, 1.0);highp vec4 _5001 = frameUniforms.e * vec4(vertex_worldPosition.xyz + (_7046 * frameUniforms.kz), 1.0);highp vec4 _5007 = _4994 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));highp vec3 _5013 = _4994.xyz * (1.0 / _4994.w);highp vec3 _5020 = _5001.xyz * (1.0 / _5001.w);highp float _5047 = _5013.z;highp vec3 _5050 = vec3((_5013.xy * 0.5) + vec2(0.5), _5047);highp vec3 _5055 = vec3((_5020.xy * 0.5) + vec2(0.5), _5020.z) - _5050;float _4896 = 1.0 / float(_4886);highp float _4904 = abs((_5007.xyz * (1.0 / _5007.w)).z - _5047) * _4896;uint _7092;highp float _7093;highp vec3 _7095;_7093 = (_4896 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _4896;_7092 = 0u;_7095 = _7019;highp vec3 _4929;highp vec3 _7094;float _7107;if (_7092 < _4886)_4929 = _5050 + (_5055 * _7093);if (abs(_4904 - (textureLod(light_structure, _4929.xy, 0.0).x - _4929.z)) < _4904)_7107 = 1.0;_7094 = _4929;_7093 += _4896;_7092++;_7095 = _4929;_7107 = 0.0;_7094 = _7095;highp vec2 _4964 = max((abs(_7094.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_7113 = _7107 * clamp(1.0 - dot(_4964, _4964), 0.0, 1.0);_7113 = 0.0;_7109 = _7113;_7109 = 0.0;float _4360 = _7091 * (1.0 - _7109);if (_4360 <= 0.0)_7118 = _4360;_7118 = 1.0;vec3 _5088 = normalize(_3235 + _7046);float _5091 = clamp(_4387, 0.0, 1.0);vec3 _5179 = cross(_3228, _5088);float _5185 = clamp(dot(_3228, _5088), 0.0, 1.0) * _3423;float _5192 = _3423 / (dot(_5179, _5179) + (_5185 * _5185));float _5233 = pow(1.0 - clamp(dot(_7046, _5088), 0.0, 1.0), 5.0);_7129 = _3582 + ((((_3386 * 0.3183098733425140380859375) + (((vec3(_5233) + (_3403 * (1.0 - _5233))) * (min((_5192 * _5192) * 0.3183098733425140380859375, 65504.0) * min(0.5 / mix((2.0 * _5091) * _3288, _5091 + _3288, _3423), 65504.0))) * _3442)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _5091) * _7118));highp uvec2 _5401 = uvec2((vec3(_3591, _3243.y, gl_FragCoord.z).xy * frameUniforms.i.xy) * vec2(frameUniforms.z, frameUniforms.v));uint _5383 = ((_5401.x * frameUniforms.r) + (_5401.y * frameUniforms.x.x)) + (uint(clamp((log2((frameUniforms.w.x * gl_FragCoord.z) + frameUniforms.w.y) * frameUniforms.w.z) + frameUniforms.w.w, 0.0, frameUniforms.w.w - 1.0)) * frameUniforms.x.y);uvec4 _5440 = texelFetch(light_froxels, ivec2(int(_5383 & 63u), int(_5383 >> 6u)), 0);uint _5443 = _5440.x;uint _5277 = _5443 + (_5440.y & 255u);vec3 _7149;vec4 _7151;highp vec3 _7184;_7184 = _7019;_7151 = _7021;_7149 = _7129;vec4 _6973;vec3 _7232;highp vec3 _7244;for (uint _7148 = _5443; _7148 < _5277; _7184 = _7244, _7151 = _6973, _7149 = _7232, _7148++)highp uvec4 _5587 = froxelRecordUniforms.a[_7148 >> 4u];highp uint _5604 = (_5587[(_7148 >> 2u) & 3u] >> ((_7148 & 3u) * 8u)) & 255u;highp vec2 _5488 = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_5604][2].x));highp uint _5505 = floatBitsToUint(lightsUniforms.a[_5604][3].z);highp uint _5508 = floatBitsToUint(lightsUniforms.a[_5604][3].w);highp vec3 _5513 = lightsUniforms.a[_5604][0].xyz - vertex_worldPosition.xyz;vec4 _6967 = _7151;_6967.x = _5488.x;vec4 _6969 = _6967;_6969.y = _5488.y;vec4 _6971 = _6969;_6971.z = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_5604][2].y)).x;highp float _5612 = lightsUniforms.a[_5604][3].y * frameUniforms.bz;_6973 = _6971;_6973.w = _5612;highp vec3 _5528 = normalize(_5513);highp float _5622 = dot(_5513, _5513);float _5652 = _5622 * lightsUniforms.a[_5604][0].w;float _5657 = clamp(1.0 - (_5652 * _5652), 0.0, 1.0);highp vec3 _5628 = vertex_worldPosition.xyz - frameUniforms.j;float _5645 = ((_5657 * _5657) * clamp(frameUniforms.n.x - (dot(_5628, _5628) * frameUniforms.n.y), 0.0, 1.0)) / max(_5622, 9.9999997473787516355514526367188e-05);float _5539 = clamp(dot(_3228, _5528), 0.0, 1.0);uint _7169;uint _7170;bool _7171;bool _7172;float _7173;if ((_5505 & 1u) == 1u)highp float _5678 = clamp((dot(-lightsUniforms.a[_5604][1].xyz, _5528) * lightsUniforms.a[_5604][2].z) + lightsUniforms.a[_5604][2].w, 0.0, 1.0);_7173 = _5645 * (_5678 * _5678);_7172 = (_5508 & 65536u) != 0u;_7171 = (_5505 & 16u) != 0u;_7170 = (_5505 >> 8u) & 255u;_7169 = (_5505 >> 16u) & 255u;_7173 = _5645;_7172 = false;_7171 = false;_7170 = 0u;_7169 = 0u;if ((_5508 & _4300) == 0u)_7244 = _7184;_7232 = _7149;bool _5298 = _5539 <= 0.0;bool _5305;if (!_5298)_5305 = _7173 <= 0.0;_5305 = _5298;if (_5305)float _7210;highp vec3 _7247;if (_5539 > 0.0)float _7176;if (_7172)highp float _5744 = clamp(dot(_3228, shadowUniforms.a[_7170].direction), 0.0, 1.0);highp vec3 _5754 = vertex_worldPosition.xyz + (_3228 * (sqrt(1.0 - (_5744 * _5744)) * (shadowUniforms.a[_7170].normalBias * dot(shadowUniforms.a[_7170].lightFromWorldZ, vec4(vertex_worldPosition.xyz, 1.0)))));highp vec4 _5771 = (shadowUniforms.a[_7170].lightFromWorldMatrix[0] * _5754.x) + ((shadowUniforms.a[_7170].lightFromWorldMatrix[1] * _5754.y) + ((shadowUniforms.a[_7170].lightFromWorldMatrix[2] * _5754.z) + shadowUniforms.a[_7170].lightFromWorldMatrix[3]));highp vec3 _5860 = _5771.xyz * (1.0 / _5771.w);highp vec2 _5867 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);highp vec2 _5869 = vec2(1.0) / _5867;highp vec2 _5874 = clamp(_5860.xy, vec2(-1.0), vec2(2.0));highp vec3 _6977 = _7252;_6977.x = _5874.x;highp vec3 _6979 = _6977;_6979.y = _5874.y;highp vec2 _5884 = (_6979.xy * _5867) + vec2(0.5);highp vec2 _5890 = (floor(_5884) - vec2(0.5)) * _5869;highp vec2 _5892 = fract(_5884);highp float _5894 = _5892.x;highp float _5895 = 2.0 * _5894;highp float _5896 = 3.0 - _5895;highp float _5900 = 1.0 + _5895;highp float _5903 = _5892.y;highp float _5904 = 2.0 * _5903;highp float _5905 = 3.0 - _5904;highp float _5909 = 1.0 + _5904;highp vec2 _5942 = vec2(((2.0 - _5894) / _5896) - 1.0, (_5894 / _5900) + 1.0) * _5869.x;highp vec2 _5946 = vec2(((2.0 - _5903) / _5905) - 1.0, (_5903 / _5909) + 1.0) * _5869.y;highp float _5954 = _5942.x;highp float _5956 = _5946.x;float _6020 = float(_7169);float _6022 = clamp(_5860.z, 0.0, 1.0);highp float _5971 = _5942.y;highp float _5990 = _5946.y;_7176 = (((((_5896 * _5905) * texture(light_shadowMap, vec4(vec4(_5890 + vec2(_5954, _5956), _6020, _6022).xyz, _6022))) + ((_5900 * _5905) * texture(light_shadowMap, vec4(vec4(_5890 + vec2(_5971, _5956), _6020, _6022).xyz, _6022)))) + ((_5896 * _5909) * texture(light_shadowMap, vec4(vec4(_5890 + vec2(_5954, _5990), _6020, _6022).xyz, _6022)))) + ((_5900 * _5909) * texture(light_shadowMap, vec4(vec4(_5890 + vec2(_5971, _5990), _6020, _6022).xyz, _6022)))) * 0.0625;_7176 = 1.0;float _7208;highp vec3 _7245;if (_7171 && (_7176 > 0.0))float _7209;highp vec3 _7246;uint _6084 = (frameUniforms.iz >> 8u) & 255u;highp vec4 _6192 = frameUniforms.e * vec4(vertex_worldPosition.xyz, 1.0);highp vec4 _6199 = frameUniforms.e * vec4(vertex_worldPosition.xyz + (_5528 * frameUniforms.kz), 1.0);highp vec4 _6205 = _6192 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));highp vec3 _6211 = _6192.xyz * (1.0 / _6192.w);highp vec3 _6218 = _6199.xyz * (1.0 / _6199.w);highp float _6245 = _6211.z;highp vec3 _6248 = vec3((_6211.xy * 0.5) + vec2(0.5), _6245);highp vec3 _6253 = vec3((_6218.xy * 0.5) + vec2(0.5), _6218.z) - _6248;float _6094 = 1.0 / float(_6084);highp float _6102 = abs((_6205.xyz * (1.0 / _6205.w)).z - _6245) * _6094;uint _7177;highp float _7178;highp vec3 _7180;_7178 = (_6094 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _6094;_7177 = 0u;_7180 = _7184;highp vec3 _6127;highp vec3 _7179;float _7204;if (_7177 < _6084)_6127 = _6248 + (_6253 * _7178);if (abs(_6102 - (textureLod(light_structure, _6127.xy, 0.0).x - _6127.z)) < _6102)_7204 = 1.0;_7179 = _6127;_7178 += _6094;_7177++;_7180 = _6127;_7204 = 0.0;_7179 = _7180;highp vec2 _6162 = max((abs(_7179.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_7246 = _7179;_7209 = _7176 * (1.0 - (_7204 * clamp(1.0 - dot(_6162, _6162), 0.0, 1.0)));_7246 = _7184;_7209 = _7176;_7245 = _7246;_7208 = _7209;_7245 = _7184;_7208 = _7176;if (_7208 <= 0.0)_7244 = _7245;_7247 = _7245;_7210 = _7208;_7247 = _7184;_7210 = 1.0;vec3 _6286 = normalize(_3235 + _5528);float _6289 = clamp(_5539, 0.0, 1.0);vec3 _6377 = cross(_3228, _6286);float _6383 = clamp(dot(_3228, _6286), 0.0, 1.0) * _3423;float _6390 = _3423 / (dot(_6377, _6377) + (_6383 * _6383));float _6431 = pow(1.0 - clamp(dot(_5528, _6286), 0.0, 1.0), 5.0);_7244 = _7247;_7232 = _7149 + ((((_3386 * 0.3183098733425140380859375) + (((vec3(_6431) + (_3403 * (1.0 - _6431))) * (min((_6390 * _6390) * 0.3183098733425140380859375, 65504.0) * min(0.5 / mix((2.0 * _6289) * _3288, _6289 + _3288, _3423), 65504.0))) * _3442)) * _6973.xyz) * (((_5612 * _7173) * _6289) * _7210));fragColor = vec4(_7149, 1.0);bvec4 _6473 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * vertex_worldPosition.x) + ((frameUniforms.a[1] * vertex_worldPosition.y) + ((frameUniforms.a[2] * vertex_worldPosition.z) + frameUniforms.a[3]))).z));uint _6483 = clamp(uint(dot(vec4(_6473.x ? vec4(1.0).x : vec4(0.0).x, _6473.y ? vec4(1.0).y : vec4(0.0).y, _6473.z ? vec4(1.0).z : vec4(0.0).z, _6473.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);vec3 _7150;if (_6483 == 0u)_7150 = vec3(0.0, 1.0, 0.0);if (_6483 == 1u)_7150 = vec3(0.0, 0.0, 1.0);if (_6483 == 2u)_7150 = vec3(1.0, 1.0, 0.0);if (_6483 == 3u)_7150 = vec3(1.0, 0.0, 0.0);if (_6483 == 4u)_7150 = vec3(1.0, 0.0, 1.0);if (_6483 == 5u)_7150 = vec3(0.0, 1.0, 1.0);_7150 = _6540;vec4 _3177 = fragColor;vec3 _3179 = _3177.xyz * _7150;fragColor.x = _3179.x;fragColor.y = _3179.y;fragColor.z = _3179.z;struct BoneDatamat3x4 transform;uvec4 cof;layout(std140) uniform BonesUniformsBoneData a[256];} bonesUniforms;layout(std140) uniform MorphingUniformsmediump vec4 a[256];} morphingUniforms;uniform highp sampler2DArray morphTargetBuffer_positions;layout(location = 5) in uvec4 mesh_bone_indices;layout(location = 6) in vec4 mesh_bone_weights;mat3 _1158;vec4 _1171;vec4 _1150;if ((objectUniforms.d & 2u) != 0u)vec4 _1149;ivec3 _1170;_1170 = ivec3(gl_VertexID % 2048, gl_VertexID / 2048, 0);_1149 = mesh_position;for (uint _1148 = 0u; _1148 < objectUniforms.c; )ivec3 _1081 = _1170;_1081.z = int(_1148);_1170 = _1081;_1149 += (texelFetch(morphTargetBuffer_positions, _1081, 0) * morphingUniforms.a[_1148].x);_1148++;_1150 = _1149;_1150 = mesh_position;bool _532 = (objectUniforms.d & 1u) != 0u;vec4 _1151;if (_532)mat4x3 _624 = transpose(bonesUniforms.a[mesh_bone_indices.x].transform);mat4x3 _651 = transpose(bonesUniforms.a[mesh_bone_indices.y].transform);mat4x3 _678 = transpose(bonesUniforms.a[mesh_bone_indices.z].transform);mat4x3 _705 = transpose(bonesUniforms.a[mesh_bone_indices.w].transform);vec3 _617 = (((((_624[0] * _1150.x) + ((_624[1] * _1150.y) + ((_624[2] * _1150.z) + _624[3]))) * mesh_bone_weights.x) + (((_651[0] * _1150.x) + ((_651[1] * _1150.y) + ((_651[2] * _1150.z) + _651[3]))) * mesh_bone_weights.y)) + (((_678[0] * _1150.x) + ((_678[1] * _1150.y) + ((_678[2] * _1150.z) + _678[3]))) * mesh_bone_weights.z)) + (((_705[0] * _1150.x) + ((_705[1] * _1150.y) + ((_705[2] * _1150.z) + _705[3]))) * mesh_bone_weights.w);vec4 _1111 = _1171;_1111.x = _617.x;vec4 _1113 = _1111;_1113.y = _617.y;vec4 _1115 = _1113;_1115.z = _617.z;_1151 = _1115;_1151 = _1150;vec4 _740 = (objectUniforms.a[0] * _1151.x) + ((objectUniforms.a[1] * _1151.y) + ((objectUniforms.a[2] * _1151.z) + objectUniforms.a[3]));vec3 _751 = (vec3(0.0, 0.0, 1.0) + ((vec3(2.0, -2.0, -2.0) * mesh_tangents.x) * mesh_tangents.zwx)) + ((vec3(2.0, 2.0, -2.0) * mesh_tangents.y) * mesh_tangents.wzy);vec3 _1169;vec2 _802 = unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.x].cof.y);mat3 _1118 = _1158;_1118[0] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.x].cof.x), _802.x);mat3 _1121 = _1118;_1121[1] = vec3(_802.y, unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.x].cof.z));mat3 _1123 = _1121;_1123[2] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.x].cof.w), (bonesUniforms.a[mesh_bone_indices.x].transform[0].x * bonesUniforms.a[mesh_bone_indices.x].transform[1].y) - (bonesUniforms.a[mesh_bone_indices.x].transform[0].y * bonesUniforms.a[mesh_bone_indices.x].transform[1].x));vec2 _871 = unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.y].cof.y);mat3 _1126 = _1158;_1126[0] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.y].cof.x), _871.x);mat3 _1129 = _1126;_1129[1] = vec3(_871.y, unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.y].cof.z));mat3 _1131 = _1129;_1131[2] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.y].cof.w), (bonesUniforms.a[mesh_bone_indices.y].transform[0].x * bonesUniforms.a[mesh_bone_indices.y].transform[1].y) - (bonesUniforms.a[mesh_bone_indices.y].transform[0].y * bonesUniforms.a[mesh_bone_indices.y].transform[1].x));vec2 _940 = unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.z].cof.y);mat3 _1134 = _1158;_1134[0] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.z].cof.x), _940.x);mat3 _1137 = _1134;_1137[1] = vec3(_940.y, unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.z].cof.z));mat3 _1139 = _1137;_1139[2] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.z].cof.w), (bonesUniforms.a[mesh_bone_indices.z].transform[0].x * bonesUniforms.a[mesh_bone_indices.z].transform[1].y) - (bonesUniforms.a[mesh_bone_indices.z].transform[0].y * bonesUniforms.a[mesh_bone_indices.z].transform[1].x));vec2 _1009 = unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.w].cof.y);mat3 _1142 = _1158;_1142[0] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.w].cof.x), _1009.x);mat3 _1145 = _1142;_1145[1] = vec3(_1009.y, unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.w].cof.z));mat3 _1147 = _1145;_1147[2] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.w].cof.w), (bonesUniforms.a[mesh_bone_indices.w].transform[0].x * bonesUniforms.a[mesh_bone_indices.w].transform[1].y) - (bonesUniforms.a[mesh_bone_indices.w].transform[0].y * bonesUniforms.a[mesh_bone_indices.w].transform[1].x));_1169 = (((normalize(_1123 * _751) * mesh_bone_weights.x) + (normalize(_1131 * _751) * mesh_bone_weights.y)) + (normalize(_1139 * _751) * mesh_bone_weights.z)) + (normalize(_1147 * _751) * mesh_bone_weights.w);_1169 = _751;vertex_worldPosition.x = _740.x;vertex_worldPosition.y = _740.y;vertex_worldPosition.z = _740.z;vertex_worldNormal = objectUniforms.b * _1169;gl_Position = frameUniforms.e * _740;mat3 _1248;vec4 _1261;vec4 _1240;vec4 _1239;ivec3 _1260;_1260 = ivec3(gl_VertexID % 2048, gl_VertexID / 2048, 0);_1239 = mesh_position;for (uint _1238 = 0u; _1238 < objectUniforms.c; )ivec3 _1171 = _1260;_1171.z = int(_1238);_1260 = _1171;_1239 += (texelFetch(morphTargetBuffer_positions, _1171, 0) * morphingUniforms.a[_1238].x);_1238++;_1240 = _1239;_1240 = mesh_position;bool _585 = (objectUniforms.d & 1u) != 0u;vec4 _1241;if (_585)mat4x3 _677 = transpose(bonesUniforms.a[mesh_bone_indices.x].transform);mat4x3 _704 = transpose(bonesUniforms.a[mesh_bone_indices.y].transform);mat4x3 _731 = transpose(bonesUniforms.a[mesh_bone_indices.z].transform);mat4x3 _758 = transpose(bonesUniforms.a[mesh_bone_indices.w].transform);vec3 _670 = (((((_677[0] * _1240.x) + ((_677[1] * _1240.y) + ((_677[2] * _1240.z) + _677[3]))) * mesh_bone_weights.x) + (((_704[0] * _1240.x) + ((_704[1] * _1240.y) + ((_704[2] * _1240.z) + _704[3]))) * mesh_bone_weights.y)) + (((_731[0] * _1240.x) + ((_731[1] * _1240.y) + ((_731[2] * _1240.z) + _731[3]))) * mesh_bone_weights.z)) + (((_758[0] * _1240.x) + ((_758[1] * _1240.y) + ((_758[2] * _1240.z) + _758[3]))) * mesh_bone_weights.w);vec4 _1201 = _1261;_1201.x = _670.x;vec4 _1203 = _1201;_1203.y = _670.y;vec4 _1205 = _1203;_1205.z = _670.z;_1241 = _1205;_1241 = _1240;vec4 _793 = (objectUniforms.a[0] * _1241.x) + ((objectUniforms.a[1] * _1241.y) + ((objectUniforms.a[2] * _1241.z) + objectUniforms.a[3]));vec3 _804 = (vec3(0.0, 0.0, 1.0) + ((vec3(2.0, -2.0, -2.0) * mesh_tangents.x) * mesh_tangents.zwx)) + ((vec3(2.0, 2.0, -2.0) * mesh_tangents.y) * mesh_tangents.wzy);vec3 _1259;vec2 _855 = unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.x].cof.y);mat3 _1208 = _1248;_1208[0] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.x].cof.x), _855.x);mat3 _1211 = _1208;_1211[1] = vec3(_855.y, unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.x].cof.z));mat3 _1213 = _1211;_1213[2] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.x].cof.w), (bonesUniforms.a[mesh_bone_indices.x].transform[0].x * bonesUniforms.a[mesh_bone_indices.x].transform[1].y) - (bonesUniforms.a[mesh_bone_indices.x].transform[0].y * bonesUniforms.a[mesh_bone_indices.x].transform[1].x));vec2 _924 = unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.y].cof.y);mat3 _1216 = _1248;_1216[0] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.y].cof.x), _924.x);mat3 _1219 = _1216;_1219[1] = vec3(_924.y, unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.y].cof.z));mat3 _1221 = _1219;_1221[2] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.y].cof.w), (bonesUniforms.a[mesh_bone_indices.y].transform[0].x * bonesUniforms.a[mesh_bone_indices.y].transform[1].y) - (bonesUniforms.a[mesh_bone_indices.y].transform[0].y * bonesUniforms.a[mesh_bone_indices.y].transform[1].x));vec2 _993 = unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.z].cof.y);mat3 _1224 = _1248;_1224[0] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.z].cof.x), _993.x);mat3 _1227 = _1224;_1227[1] = vec3(_993.y, unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.z].cof.z));mat3 _1229 = _1227;_1229[2] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.z].cof.w), (bonesUniforms.a[mesh_bone_indices.z].transform[0].x * bonesUniforms.a[mesh_bone_indices.z].transform[1].y) - (bonesUniforms.a[mesh_bone_indices.z].transform[0].y * bonesUniforms.a[mesh_bone_indices.z].transform[1].x));vec2 _1062 = unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.w].cof.y);mat3 _1232 = _1248;_1232[0] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.w].cof.x), _1062.x);mat3 _1235 = _1232;_1235[1] = vec3(_1062.y, unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.w].cof.z));mat3 _1237 = _1235;_1237[2] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.w].cof.w), (bonesUniforms.a[mesh_bone_indices.w].transform[0].x * bonesUniforms.a[mesh_bone_indices.w].transform[1].y) - (bonesUniforms.a[mesh_bone_indices.w].transform[0].y * bonesUniforms.a[mesh_bone_indices.w].transform[1].x));_1259 = (((normalize(_1213 * _804) * mesh_bone_weights.x) + (normalize(_1221 * _804) * mesh_bone_weights.y)) + (normalize(_1229 * _804) * mesh_bone_weights.z)) + (normalize(_1237 * _804) * mesh_bone_weights.w);_1259 = _804;vertex_worldPosition.x = _793.x;vertex_worldPosition.y = _793.y;vertex_worldPosition.z = _793.z;vertex_worldNormal = objectUniforms.b * _1259;float _1123 = clamp(dot(vertex_worldNormal, frameUniforms.q), 0.0, 1.0);vec3 _1133 = vertex_worldPosition.xyz + (vertex_worldNormal * (sqrt(1.0 - (_1123 * _1123)) * frameUniforms.t));vertex_lightSpacePosition = (frameUniforms.g[0][0] * _1133.x) + ((frameUniforms.g[0][1] * _1133.y) + ((frameUniforms.g[0][2] * _1133.z) + frameUniforms.g[0][3]));gl_Position = frameUniforms.e * _793;gl_Position = frameUniforms.e * ((objectUniforms.a[0] * mesh_position.x) + ((objectUniforms.a[1] * mesh_position.y) + ((objectUniforms.a[2] * mesh_position.z) + objectUniforms.a[3])));vec4 _624;vec4 _621;vec4 _620;ivec3 _623;_623 = ivec3(gl_VertexID % 2048, gl_VertexID / 2048, 0);_620 = mesh_position;for (uint _619 = 0u; _619 < objectUniforms.c; )ivec3 _584 = _623;_584.z = int(_619);_623 = _584;_620 += (texelFetch(morphTargetBuffer_positions, _584, 0) * morphingUniforms.a[_619].x);_619++;_621 = _620;_621 = mesh_position;vec4 _622;if ((objectUniforms.d & 1u) != 0u)mat4x3 _454 = transpose(bonesUniforms.a[mesh_bone_indices.x].transform);mat4x3 _481 = transpose(bonesUniforms.a[mesh_bone_indices.y].transform);mat4x3 _508 = transpose(bonesUniforms.a[mesh_bone_indices.z].transform);mat4x3 _535 = transpose(bonesUniforms.a[mesh_bone_indices.w].transform);vec3 _447 = (((((_454[0] * _621.x) + ((_454[1] * _621.y) + ((_454[2] * _621.z) + _454[3]))) * mesh_bone_weights.x) + (((_481[0] * _621.x) + ((_481[1] * _621.y) + ((_481[2] * _621.z) + _481[3]))) * mesh_bone_weights.y)) + (((_508[0] * _621.x) + ((_508[1] * _621.y) + ((_508[2] * _621.z) + _508[3]))) * mesh_bone_weights.z)) + (((_535[0] * _621.x) + ((_535[1] * _621.y) + ((_535[2] * _621.z) + _535[3]))) * mesh_bone_weights.w);vec4 _614 = _624;_614.x = _447.x;vec4 _616 = _614;_616.y = _447.y;vec4 _618 = _616;_618.z = _447.z;_622 = _618;_622 = _621;gl_Position = frameUniforms.e * ((objectUniforms.a[0] * _622.x) + ((objectUniforms.a[1] * _622.y) + ((objectUniforms.a[2] * _622.z) + objectUniforms.a[3])));vec3 _2987;vec4 _2989;float _3020;bool _1987;highp vec3 _1557 = normalize(vertex_worldNormal);highp vec3 _1564 = normalize(frameUniforms.j - vertex_worldPosition.xyz);highp vec2 _1572 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);vec3 _1610 = reflect(-_1564, _1557);vec4 _2896 = vec4(1.0);_2896.x = materialParams.a.x;vec4 _2898 = _2896;_2898.y = materialParams.a.y;vec4 _2900 = _2898;_2900.z = materialParams.a.z;float _1704 = 1.0 - materialParams.b;vec3 _1722 = (_2900.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _1704);float _1732 = clamp(materialParams.c, 0.08900000154972076416015625, 1.0);float _1742 = _1732 * _1732;vec4 _1776 = textureLod(light_iblDFG, vec2(max(dot(_1557, _1564), 9.9999997473787516355514526367188e-05), _1732), 0.0);highp float _1910 = _1572.x;vec3 _1923 = mix(_1776.xxx, _1776.yyy, _1722);float _1936 = _1742 * _1742;float _2990;highp vec4 _2991;_1987 = frameUniforms.vz > 0.0;if (_1987)highp vec3 _2010 = vec3(_1910, _1572.y, 0.0);vec4 _2011 = textureLodOffset(light_ssao, _2010, 0.0, ivec2(0, 1));vec4 _2019 = textureLodOffset(light_ssao, _2010, 0.0, ivec2(1));vec4 _2027 = textureLodOffset(light_ssao, _2010, 0.0, ivec2(1, 0));vec4 _2035 = textureLodOffset(light_ssao, _2010, 0.0, ivec2(0));vec4 _2919 = _2989;_2919.x = (_2011.y * 0.996108949184417724609375) + (_2011.z * 0.00389105058275163173675537109375);vec4 _2925 = _2919;_2925.y = (_2019.y * 0.996108949184417724609375) + (_2019.z * 0.00389105058275163173675537109375);vec4 _2931 = _2925;_2931.z = (_2027.y * 0.996108949184417724609375) + (_2027.z * 0.00389105058275163173675537109375);vec4 _2937 = _2931;_2937.w = (_2035.y * 0.996108949184417724609375) + (_2035.z * 0.00389105058275163173675537109375);highp vec2 _2103 = fract((vec3(_1910, _1572.y, _3020).xy * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _2105 = _2103.x;float _2106 = 1.0 - _2105;float _2108 = _2103.y;vec4 _2941 = _2989;_2941.x = _2106 * _2108;vec4 _2945 = _2941;_2945.y = _2105 * _2108;float _2121 = 1.0 - _2108;vec4 _2949 = _2945;_2949.z = _2105 * _2121;vec4 _2953 = _2949;_2953.w = _2106 * _2121;vec4 _2151 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), vertex_worldPosition.xyz) + frameUniforms.a[3].z) - (_2937 * (-frameUniforms.gz))) * frameUniforms.vz;highp vec4 _2159 = max(vec4(6.103515625e-05), vec4(1.0) - (_2151 * _2151)) * _2953;highp vec4 _2173 = _2159 / vec4(((_2159.x + _2159.y) + _2159.z) + _2159.w);_2991 = _2173;_2990 = dot(vec4(_2011.x, _2019.x, _2027.x, _2035.x), _2173);_2991 = _2989;_2990 = textureLod(light_ssao, vec3(_1910, _1572.y, 0.0), 0.0).x;float _1831 = min(1.0, _2990);float _2999;vec3 _2993;highp vec3 _2259 = vec3(_1910, _1572.y, 1.0);vec4 _2260 = textureLodOffset(light_ssao, _2259, 0.0, ivec2(0, 1));vec4 _2267 = textureLodOffset(light_ssao, _2259, 0.0, ivec2(1));vec4 _2274 = textureLodOffset(light_ssao, _2259, 0.0, ivec2(1, 0));vec4 _2281 = textureLodOffset(light_ssao, _2259, 0.0, ivec2(0));vec3 _2975 = _2987;_2975.x = dot(vec4(_2260.x, _2267.x, _2274.x, _2281.x), _2991);vec3 _2977 = _2975;_2977.y = dot(vec4(_2260.y, _2267.y, _2274.y, _2281.y), _2991);vec3 _2979 = _2977;_2979.z = dot(vec4(_2260.z, _2267.z, _2274.z, _2281.z), _2991);_2993 = _2979;_2993 = textureLod(light_ssao, vec3(_1910, _1572.y, 1.0), 0.0).xyz;float _2471;float _2354 = sqrt(1.0 - _1831);float _2358 = exp2((-3.3219280242919921875) * _1936);float _2361 = dot(normalize((_2993 * 2.0) - vec3(1.0)), _1610);float _2995;float _2462 = (((-0.15658269822597503662109375) * _2354) + 1.57079601287841796875) * sqrt(1.0 - _2354);_2471 = 1.0 - _2358;float _2473 = (((-0.15658269822597503662109375) * _2358) + 1.57079601287841796875) * sqrt(_2471);float _2480 = abs(_2361);float _2488 = (((-0.15658269822597503662109375) * _2480) + 1.57079601287841796875) * sqrt(1.0 - _2480);float _2994;if (_2361 >= 0.0)_2994 = _2488;_2994 = 3.1415927410125732421875 - _2488;float _2411;if (min(_2462, _2473) <= (max(_2462, _2473) - _2994))_2995 = 1.0 - max(_2354, _2358);_2411 = _2462 + _2473;if (_2411 <= _2994)_2995 = 0.0;float _2425 = abs(_2462 - _2473);float _2437 = 1.0 - clamp((_2994 - _2425) / max(_2411 - _2425, 9.9999997473787516355514526367188e-05), 0.0, 1.0);_2995 = ((_2437 * _2437) * (((-2.0) * _2437) + 3.0)) * (1.0 - max(_2354, _2358));_2999 = min(1.0, mix(1.0, _2995 / _2471, smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _1742)));_2999 = 1.0;vec3 _3005;_3005 = textureLod(light_iblSpecular, _1557, frameUniforms.fz).xyz;float _2531 = _1557.y;float _2536 = _1557.z;float _2541 = _1557.x;_3005 = max((((((((frameUniforms.dz[0] + (frameUniforms.dz[1] * _2531)) + (frameUniforms.dz[2] * _2536)) + (frameUniforms.dz[3] * _2541)) + (frameUniforms.dz[4] * (_2531 * _2541))) + (frameUniforms.dz[5] * (_2531 * _2536))) + (frameUniforms.dz[6] * (((3.0 * _2536) * _2536) - 1.0))) + (frameUniforms.dz[7] * (_2536 * _2541))) + (frameUniforms.dz[8] * ((_2541 * _2541) - (_2531 * _2531))), vec3(0.0));fragColor = vec4((((_1923 * textureLod(light_iblSpecular, mix(_1610, _1557, vec3(_1936)), (frameUniforms.fz * _1732) * (2.0 - _1732)).xyz) * ((vec3(1.0) + (_1722 * ((1.0 / _1776.y) - 1.0))) * _2999)) * frameUniforms.az) + (((((_2900.xyz * _1704) * _3005) * (vec3(1.0) - _1923)) * _1831) * frameUniforms.az), 1.0);highp vec3 _1503 = vertex_worldPosition.xyz - frameUniforms.j;vec4 _3017;if (frameUniforms.qz > 0.0)float _2637 = length(_1503);float _2640 = max(0.001000000047497451305389404296875, _1503.y);float _2650 = frameUniforms.qz * ((1.0 - exp((-frameUniforms.oz) * _2640)) / _2640);float _2666 = min(max(1.0 - exp2(-(_2650 * max(_2637 - frameUniforms.lz, 0.0))), 0.0), frameUniforms.mz);vec3 _3013;if (frameUniforms.tz > 0.0)_3013 = frameUniforms.pz * (textureLod(light_iblSpecular, _1503, frameUniforms.fz).xyz * frameUniforms.az);_3013 = frameUniforms.pz;vec3 _2688 = _3013 * _2666;vec3 _3016;if (frameUniforms.sz > 0.0)_3016 = _2688 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_1503, frameUniforms.q) / _2637, 0.0), frameUniforms.sz) * max(1.0 - exp2(-(_2650 * max(_2637 - frameUniforms.rz, 0.0))), 0.0)));_3016 = _2688;vec3 _2736 = (fragColor.xyz * (1.0 - _2666)) + _3016;vec4 _2982 = fragColor;_2982.x = _2736.x;vec4 _2984 = _2982;_2984.y = _2736.y;vec4 _2986 = _2984;_2986.z = _2736.z;_3017 = _2986;_3017 = fragColor;fragColor = _3017;vec3 _3686;vec4 _3688;float _3766;bool _2374;highp vec3 _1939 = normalize(vertex_worldNormal);highp vec3 _1946 = normalize(frameUniforms.j - vertex_worldPosition.xyz);highp vec2 _1954 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);float _1999 = max(dot(_1939, _1946), 9.9999997473787516355514526367188e-05);vec3 _1992 = reflect(-_1946, _1939);vec4 _3595 = vec4(1.0);_3595.x = materialParams.a.x;vec4 _3597 = _3595;_3597.y = materialParams.a.y;vec4 _3599 = _3597;_3599.z = materialParams.a.z;float _2091 = 1.0 - materialParams.b;vec3 _2092 = _3599.xyz * _2091;vec3 _2109 = (_3599.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _2091);float _2119 = clamp(materialParams.c, 0.08900000154972076416015625, 1.0);float _2129 = _2119 * _2119;vec4 _2163 = textureLod(light_iblDFG, vec2(_1999, _2119), 0.0);vec3 _2148 = vec3(1.0) + (_2109 * ((1.0 / _2163.y) - 1.0));highp float _2297 = _1954.x;vec3 _2310 = mix(_2163.xxx, _2163.yyy, _2109);float _2323 = _2129 * _2129;float _3689;highp vec4 _3690;_2374 = frameUniforms.vz > 0.0;if (_2374)highp vec3 _2397 = vec3(_2297, _1954.y, 0.0);vec4 _2398 = textureLodOffset(light_ssao, _2397, 0.0, ivec2(0, 1));vec4 _2406 = textureLodOffset(light_ssao, _2397, 0.0, ivec2(1));vec4 _2414 = textureLodOffset(light_ssao, _2397, 0.0, ivec2(1, 0));vec4 _2422 = textureLodOffset(light_ssao, _2397, 0.0, ivec2(0));vec4 _3618 = _3688;_3618.x = (_2398.y * 0.996108949184417724609375) + (_2398.z * 0.00389105058275163173675537109375);vec4 _3624 = _3618;_3624.y = (_2406.y * 0.996108949184417724609375) + (_2406.z * 0.00389105058275163173675537109375);vec4 _3630 = _3624;_3630.z = (_2414.y * 0.996108949184417724609375) + (_2414.z * 0.00389105058275163173675537109375);vec4 _3636 = _3630;_3636.w = (_2422.y * 0.996108949184417724609375) + (_2422.z * 0.00389105058275163173675537109375);highp vec2 _2490 = fract((vec3(_2297, _1954.y, _3766).xy * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _2492 = _2490.x;float _2493 = 1.0 - _2492;float _2495 = _2490.y;vec4 _3640 = _3688;_3640.x = _2493 * _2495;vec4 _3644 = _3640;_3644.y = _2492 * _2495;float _2508 = 1.0 - _2495;vec4 _3648 = _3644;_3648.z = _2492 * _2508;vec4 _3652 = _3648;_3652.w = _2493 * _2508;vec4 _2538 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), vertex_worldPosition.xyz) + frameUniforms.a[3].z) - (_3636 * (-frameUniforms.gz))) * frameUniforms.vz;highp vec4 _2546 = max(vec4(6.103515625e-05), vec4(1.0) - (_2538 * _2538)) * _3652;highp vec4 _2560 = _2546 / vec4(((_2546.x + _2546.y) + _2546.z) + _2546.w);_3690 = _2560;_3689 = dot(vec4(_2398.x, _2406.x, _2414.x, _2422.x), _2560);_3690 = _3688;_3689 = textureLod(light_ssao, vec3(_2297, _1954.y, 0.0), 0.0).x;float _2218 = min(1.0, _3689);float _3698;vec3 _3692;highp vec3 _2646 = vec3(_2297, _1954.y, 1.0);vec4 _2647 = textureLodOffset(light_ssao, _2646, 0.0, ivec2(0, 1));vec4 _2654 = textureLodOffset(light_ssao, _2646, 0.0, ivec2(1));vec4 _2661 = textureLodOffset(light_ssao, _2646, 0.0, ivec2(1, 0));vec4 _2668 = textureLodOffset(light_ssao, _2646, 0.0, ivec2(0));vec3 _3674 = _3686;_3674.x = dot(vec4(_2647.x, _2654.x, _2661.x, _2668.x), _3690);vec3 _3676 = _3674;_3676.y = dot(vec4(_2647.y, _2654.y, _2661.y, _2668.y), _3690);vec3 _3678 = _3676;_3678.z = dot(vec4(_2647.z, _2654.z, _2661.z, _2668.z), _3690);_3692 = _3678;_3692 = textureLod(light_ssao, vec3(_2297, _1954.y, 1.0), 0.0).xyz;float _2858;float _2741 = sqrt(1.0 - _2218);float _2745 = exp2((-3.3219280242919921875) * _2323);float _2748 = dot(normalize((_3692 * 2.0) - vec3(1.0)), _1992);float _3694;float _2849 = (((-0.15658269822597503662109375) * _2741) + 1.57079601287841796875) * sqrt(1.0 - _2741);_2858 = 1.0 - _2745;float _2860 = (((-0.15658269822597503662109375) * _2745) + 1.57079601287841796875) * sqrt(_2858);float _2867 = abs(_2748);float _2875 = (((-0.15658269822597503662109375) * _2867) + 1.57079601287841796875) * sqrt(1.0 - _2867);float _3693;if (_2748 >= 0.0)_3693 = _2875;_3693 = 3.1415927410125732421875 - _2875;float _2798;if (min(_2849, _2860) <= (max(_2849, _2860) - _3693))_3694 = 1.0 - max(_2741, _2745);_2798 = _2849 + _2860;if (_2798 <= _3693)_3694 = 0.0;float _2812 = abs(_2849 - _2860);float _2824 = 1.0 - clamp((_3693 - _2812) / max(_2798 - _2812, 9.9999997473787516355514526367188e-05), 0.0, 1.0);_3694 = ((_2824 * _2824) * (((-2.0) * _2824) + 3.0)) * (1.0 - max(_2741, _2745));_3698 = min(1.0, mix(1.0, _3694 / _2858, smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _2129)));_3698 = 1.0;vec3 _3704;_3704 = textureLod(light_iblSpecular, _1939, frameUniforms.fz).xyz;float _2918 = _1939.y;float _2923 = _1939.z;float _2928 = _1939.x;_3704 = max((((((((frameUniforms.dz[0] + (frameUniforms.dz[1] * _2918)) + (frameUniforms.dz[2] * _2923)) + (frameUniforms.dz[3] * _2928)) + (frameUniforms.dz[4] * (_2918 * _2928))) + (frameUniforms.dz[5] * (_2918 * _2923))) + (frameUniforms.dz[6] * (((3.0 * _2923) * _2923) - 1.0))) + (frameUniforms.dz[7] * (_2923 * _2928))) + (frameUniforms.dz[8] * ((_2928 * _2928) - (_2918 * _2918))), vec3(0.0));vec4 _3022;vec3 _3025;vec3 _2288 = (((_2310 * textureLod(light_iblSpecular, mix(_1992, _1939, vec3(_2323)), (frameUniforms.fz * _2119) * (2.0 - _2119)).xyz) * (_2148 * _3698)) * frameUniforms.az) + ((((_2092 * _3704) * (vec3(1.0) - _2310)) * _2218) * frameUniforms.az);vec3 _3758;_3022 = frameUniforms.l;_3025 = frameUniforms.q;vec3 _3713;float _3055 = dot(_3025, _1992);highp vec3 _3712;if (_3055 < frameUniforms.m.x)_3712 = normalize((_3025 * frameUniforms.m.x) + (normalize(_1992 - (_3025 * _3055)) * frameUniforms.m.y));_3712 = _1992;_3713 = _3712;_3713 = _3025;float _3033 = clamp(dot(_1939, _3713), 0.0, 1.0);_3758 = _2288;if (_3033 <= 0.0)vec3 _3103 = normalize(_1946 + _3713);float _3106 = clamp(_3033, 0.0, 1.0);vec3 _3194 = cross(_1939, _3103);float _3200 = clamp(dot(_1939, _3103), 0.0, 1.0) * _2129;float _3207 = _2129 / (dot(_3194, _3194) + (_3200 * _3200));float _3248 = pow(1.0 - clamp(dot(_3713, _3103), 0.0, 1.0), 5.0);_3758 = _2288 + ((((_2092 * 0.3183098733425140380859375) + (((vec3(_3248) + (_2109 * (1.0 - _3248))) * (min((_3207 * _3207) * 0.3183098733425140380859375, 65504.0) * min(0.5 / mix((2.0 * _3106) * _1999, _3106 + _1999, _2129), 65504.0))) * _2148)) * _3022.xyz) * (_3022.w * _3106));fragColor = vec4(_3758, 1.0);highp vec3 _1881 = vertex_worldPosition.xyz - frameUniforms.j;vec4 _3763;float _3308 = length(_1881);float _3311 = max(0.001000000047497451305389404296875, _1881.y);float _3321 = frameUniforms.qz * ((1.0 - exp((-frameUniforms.oz) * _3311)) / _3311);float _3337 = min(max(1.0 - exp2(-(_3321 * max(_3308 - frameUniforms.lz, 0.0))), 0.0), frameUniforms.mz);vec3 _3759;_3759 = frameUniforms.pz * (textureLod(light_iblSpecular, _1881, frameUniforms.fz).xyz * frameUniforms.az);_3759 = frameUniforms.pz;vec3 _3359 = _3759 * _3337;vec3 _3762;_3762 = _3359 + ((_3022.xyz * frameUniforms.l.w) * (pow(max(dot(_1881, _3025) / _3308, 0.0), frameUniforms.sz) * max(1.0 - exp2(-(_3321 * max(_3308 - frameUniforms.rz, 0.0))), 0.0)));_3762 = _3359;vec3 _3407 = (fragColor.xyz * (1.0 - _3337)) + _3762;vec4 _3681 = fragColor;_3681.x = _3407.x;vec4 _3683 = _3681;_3683.y = _3407.y;vec4 _3685 = _3683;_3685.z = _3407.z;_3763 = _3685;_3763 = fragColor;fragColor = _3763;vec3 _4356;vec4 _4358;float _4419;bool _2712;highp vec3 _2277 = normalize(vertex_worldNormal);highp vec3 _2284 = normalize(frameUniforms.j - vertex_worldPosition.xyz);highp vec2 _2292 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);float _2337 = max(dot(_2277, _2284), 9.9999997473787516355514526367188e-05);vec3 _2330 = reflect(-_2284, _2277);vec4 _4237 = vec4(1.0);_4237.x = materialParams.a.x;vec4 _4239 = _4237;_4239.y = materialParams.a.y;vec4 _4241 = _4239;_4241.z = materialParams.a.z;float _2429 = 1.0 - materialParams.b;vec3 _2430 = _4241.xyz * _2429;vec3 _2447 = (_4241.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _2429);float _2457 = clamp(materialParams.c, 0.08900000154972076416015625, 1.0);float _2467 = _2457 * _2457;vec4 _2501 = textureLod(light_iblDFG, vec2(_2337, _2457), 0.0);vec3 _2486 = vec3(1.0) + (_2447 * ((1.0 / _2501.y) - 1.0));highp float _2635 = _2292.x;vec3 _2648 = mix(_2501.xxx, _2501.yyy, _2447);float _2661 = _2467 * _2467;float _4359;highp vec4 _4360;_2712 = frameUniforms.vz > 0.0;if (_2712)highp vec3 _2735 = vec3(_2635, _2292.y, 0.0);vec4 _2736 = textureLodOffset(light_ssao, _2735, 0.0, ivec2(0, 1));vec4 _2744 = textureLodOffset(light_ssao, _2735, 0.0, ivec2(1));vec4 _2752 = textureLodOffset(light_ssao, _2735, 0.0, ivec2(1, 0));vec4 _2760 = textureLodOffset(light_ssao, _2735, 0.0, ivec2(0));vec4 _4260 = _4358;_4260.x = (_2736.y * 0.996108949184417724609375) + (_2736.z * 0.00389105058275163173675537109375);vec4 _4266 = _4260;_4266.y = (_2744.y * 0.996108949184417724609375) + (_2744.z * 0.00389105058275163173675537109375);vec4 _4272 = _4266;_4272.z = (_2752.y * 0.996108949184417724609375) + (_2752.z * 0.00389105058275163173675537109375);vec4 _4278 = _4272;_4278.w = (_2760.y * 0.996108949184417724609375) + (_2760.z * 0.00389105058275163173675537109375);highp vec2 _2828 = fract((vec3(_2635, _2292.y, _4419).xy * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _2830 = _2828.x;float _2831 = 1.0 - _2830;float _2833 = _2828.y;vec4 _4282 = _4358;_4282.x = _2831 * _2833;vec4 _4286 = _4282;_4286.y = _2830 * _2833;float _2846 = 1.0 - _2833;vec4 _4290 = _4286;_4290.z = _2830 * _2846;vec4 _4294 = _4290;_4294.w = _2831 * _2846;vec4 _2876 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), vertex_worldPosition.xyz) + frameUniforms.a[3].z) - (_4278 * (-frameUniforms.gz))) * frameUniforms.vz;highp vec4 _2884 = max(vec4(6.103515625e-05), vec4(1.0) - (_2876 * _2876)) * _4294;highp vec4 _2898 = _2884 / vec4(((_2884.x + _2884.y) + _2884.z) + _2884.w);_4360 = _2898;_4359 = dot(vec4(_2736.x, _2744.x, _2752.x, _2760.x), _2898);_4360 = _4358;_4359 = textureLod(light_ssao, vec3(_2635, _2292.y, 0.0), 0.0).x;float _2556 = min(1.0, _4359);float _4368;vec3 _4362;highp vec3 _2984 = vec3(_2635, _2292.y, 1.0);vec4 _2985 = textureLodOffset(light_ssao, _2984, 0.0, ivec2(0, 1));vec4 _2992 = textureLodOffset(light_ssao, _2984, 0.0, ivec2(1));vec4 _2999 = textureLodOffset(light_ssao, _2984, 0.0, ivec2(1, 0));vec4 _3006 = textureLodOffset(light_ssao, _2984, 0.0, ivec2(0));vec3 _4316 = _4356;_4316.x = dot(vec4(_2985.x, _2992.x, _2999.x, _3006.x), _4360);vec3 _4318 = _4316;_4318.y = dot(vec4(_2985.y, _2992.y, _2999.y, _3006.y), _4360);vec3 _4320 = _4318;_4320.z = dot(vec4(_2985.z, _2992.z, _2999.z, _3006.z), _4360);_4362 = _4320;_4362 = textureLod(light_ssao, vec3(_2635, _2292.y, 1.0), 0.0).xyz;float _3196;float _3079 = sqrt(1.0 - _2556);float _3083 = exp2((-3.3219280242919921875) * _2661);float _3086 = dot(normalize((_4362 * 2.0) - vec3(1.0)), _2330);float _4364;float _3187 = (((-0.15658269822597503662109375) * _3079) + 1.57079601287841796875) * sqrt(1.0 - _3079);_3196 = 1.0 - _3083;float _3198 = (((-0.15658269822597503662109375) * _3083) + 1.57079601287841796875) * sqrt(_3196);float _3205 = abs(_3086);float _3213 = (((-0.15658269822597503662109375) * _3205) + 1.57079601287841796875) * sqrt(1.0 - _3205);float _4363;if (_3086 >= 0.0)_4363 = _3213;_4363 = 3.1415927410125732421875 - _3213;float _3136;if (min(_3187, _3198) <= (max(_3187, _3198) - _4363))_4364 = 1.0 - max(_3079, _3083);_3136 = _3187 + _3198;if (_3136 <= _4363)_4364 = 0.0;float _3150 = abs(_3187 - _3198);float _3162 = 1.0 - clamp((_4363 - _3150) / max(_3136 - _3150, 9.9999997473787516355514526367188e-05), 0.0, 1.0);_4364 = ((_3162 * _3162) * (((-2.0) * _3162) + 3.0)) * (1.0 - max(_3079, _3083));_4368 = min(1.0, mix(1.0, _4364 / _3196, smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _2467)));_4368 = 1.0;vec3 _4374;_4374 = textureLod(light_iblSpecular, _2277, frameUniforms.fz).xyz;float _3256 = _2277.y;float _3261 = _2277.z;float _3266 = _2277.x;_4374 = max((((((((frameUniforms.dz[0] + (frameUniforms.dz[1] * _3256)) + (frameUniforms.dz[2] * _3261)) + (frameUniforms.dz[3] * _3266)) + (frameUniforms.dz[4] * (_3256 * _3266))) + (frameUniforms.dz[5] * (_3256 * _3261))) + (frameUniforms.dz[6] * (((3.0 * _3261) * _3261) - 1.0))) + (frameUniforms.dz[7] * (_3261 * _3266))) + (frameUniforms.dz[8] * ((_3266 * _3266) - (_3256 * _3256))), vec3(0.0));highp uvec2 _3430 = uvec2((vec3(_2635, _2292.y, gl_FragCoord.z).xy * frameUniforms.i.xy) * vec2(frameUniforms.z, frameUniforms.v));uint _3412 = ((_3430.x * frameUniforms.r) + (_3430.y * frameUniforms.x.x)) + (uint(clamp((log2((frameUniforms.w.x * gl_FragCoord.z) + frameUniforms.w.y) * frameUniforms.w.z) + frameUniforms.w.w, 0.0, frameUniforms.w.w - 1.0)) * frameUniforms.x.y);uvec4 _3469 = texelFetch(light_froxels, ivec2(int(_3412 & 63u), int(_3412 >> 6u)), 0);uint _3472 = _3469.x;uint _3344 = _3472 + (_3469.y & 255u);uint _3347 = objectUniforms.e & 255u;vec3 _4390;vec4 _4396;_4396 = _4358;_4390 = (((_2648 * textureLod(light_iblSpecular, mix(_2330, _2277, vec3(_2661)), (frameUniforms.fz * _2457) * (2.0 - _2457)).xyz) * (_2486 * _4368)) * frameUniforms.az) + ((((_2430 * _4374) * (vec3(1.0) - _2648)) * _2556) * frameUniforms.az);vec4 _4347;vec3 _4413;for (uint _4389 = _3472; _4389 < _3344; _4396 = _4347, _4390 = _4413, _4389++)highp uvec4 _3616 = froxelRecordUniforms.a[_4389 >> 4u];highp uint _3633 = (_3616[(_4389 >> 2u) & 3u] >> ((_4389 & 3u) * 8u)) & 255u;highp vec2 _3517 = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_3633][2].x));highp vec3 _3542 = lightsUniforms.a[_3633][0].xyz - vertex_worldPosition.xyz;vec4 _4341 = _4396;_4341.x = _3517.x;vec4 _4343 = _4341;_4343.y = _3517.y;vec4 _4345 = _4343;_4345.z = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_3633][2].y)).x;highp float _3641 = lightsUniforms.a[_3633][3].y * frameUniforms.bz;_4347 = _4345;_4347.w = _3641;highp vec3 _3557 = normalize(_3542);highp float _3651 = dot(_3542, _3542);float _3681 = _3651 * lightsUniforms.a[_3633][0].w;float _3686 = clamp(1.0 - (_3681 * _3681), 0.0, 1.0);highp vec3 _3657 = vertex_worldPosition.xyz - frameUniforms.j;float _3674 = ((_3686 * _3686) * clamp(frameUniforms.n.x - (dot(_3657, _3657) * frameUniforms.n.y), 0.0, 1.0)) / max(_3651, 9.9999997473787516355514526367188e-05);float _3568 = clamp(dot(_2277, _3557), 0.0, 1.0);float _4407;if ((floatBitsToUint(lightsUniforms.a[_3633][3].z) & 1u) == 1u)highp float _3707 = clamp((dot(-lightsUniforms.a[_3633][1].xyz, _3557) * lightsUniforms.a[_3633][2].z) + lightsUniforms.a[_3633][2].w, 0.0, 1.0);_4407 = _3674 * (_3707 * _3707);_4407 = _3674;if ((floatBitsToUint(lightsUniforms.a[_3633][3].w) & _3347) == 0u)_4413 = _4390;bool _3365 = _3568 <= 0.0;bool _3372;if (!_3365)_3372 = _4407 <= 0.0;_3372 = _3365;if (_3372)vec3 _3731 = normalize(_2284 + _3557);float _3734 = clamp(_3568, 0.0, 1.0);vec3 _3822 = cross(_2277, _3731);float _3828 = clamp(dot(_2277, _3731), 0.0, 1.0) * _2467;float _3835 = _2467 / (dot(_3822, _3822) + (_3828 * _3828));float _3876 = pow(1.0 - clamp(dot(_3557, _3731), 0.0, 1.0), 5.0);_4413 = _4390 + ((((_2430 * 0.3183098733425140380859375) + (((vec3(_3876) + (_2447 * (1.0 - _3876))) * (min((_3835 * _3835) * 0.3183098733425140380859375, 65504.0) * min(0.5 / mix((2.0 * _3734) * _2337, _3734 + _2337, _2467), 65504.0))) * _2486)) * _4347.xyz) * ((_3641 * _4407) * _3734));fragColor = vec4(_4390, 1.0);highp vec3 _2244 = vertex_worldPosition.xyz - frameUniforms.j;vec4 _4395;float _3936 = length(_2244);float _3939 = max(0.001000000047497451305389404296875, _2244.y);float _3949 = frameUniforms.qz * ((1.0 - exp((-frameUniforms.oz) * _3939)) / _3939);float _3965 = min(max(1.0 - exp2(-(_3949 * max(_3936 - frameUniforms.lz, 0.0))), 0.0), frameUniforms.mz);vec3 _4391;_4391 = frameUniforms.pz * (textureLod(light_iblSpecular, _2244, frameUniforms.fz).xyz * frameUniforms.az);_4391 = frameUniforms.pz;vec3 _3987 = _4391 * _3965;vec3 _4394;_4394 = _3987 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_2244, frameUniforms.q) / _3936, 0.0), frameUniforms.sz) * max(1.0 - exp2(-(_3949 * max(_3936 - frameUniforms.rz, 0.0))), 0.0)));_4394 = _3987;vec3 _4035 = (fragColor.xyz * (1.0 - _3965)) + _4394;vec4 _4351 = fragColor;_4351.x = _4035.x;vec4 _4353 = _4351;_4353.y = _4035.y;vec4 _4355 = _4353;_4355.z = _4035.z;_4395 = _4355;_4395 = fragColor;fragColor = _4395;vec3 _4784;vec4 _4786;float _4900;bool _2831;highp vec3 _2391 = normalize(vertex_worldNormal);highp vec3 _2398 = normalize(frameUniforms.j - vertex_worldPosition.xyz);highp vec2 _2406 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);float _2451 = max(dot(_2391, _2398), 9.9999997473787516355514526367188e-05);vec3 _2444 = reflect(-_2398, _2391);vec4 _4665 = vec4(1.0);_4665.x = materialParams.a.x;vec4 _4667 = _4665;_4667.y = materialParams.a.y;vec4 _4669 = _4667;_4669.z = materialParams.a.z;float _2548 = 1.0 - materialParams.b;vec3 _2549 = _4669.xyz * _2548;vec3 _2566 = (_4669.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _2548);float _2576 = clamp(materialParams.c, 0.08900000154972076416015625, 1.0);float _2586 = _2576 * _2576;vec4 _2620 = textureLod(light_iblDFG, vec2(_2451, _2576), 0.0);vec3 _2605 = vec3(1.0) + (_2566 * ((1.0 / _2620.y) - 1.0));highp float _2754 = _2406.x;vec3 _2767 = mix(_2620.xxx, _2620.yyy, _2566);float _2780 = _2586 * _2586;float _4787;highp vec4 _4788;_2831 = frameUniforms.vz > 0.0;if (_2831)highp vec3 _2854 = vec3(_2754, _2406.y, 0.0);vec4 _2855 = textureLodOffset(light_ssao, _2854, 0.0, ivec2(0, 1));vec4 _2863 = textureLodOffset(light_ssao, _2854, 0.0, ivec2(1));vec4 _2871 = textureLodOffset(light_ssao, _2854, 0.0, ivec2(1, 0));vec4 _2879 = textureLodOffset(light_ssao, _2854, 0.0, ivec2(0));vec4 _4688 = _4786;_4688.x = (_2855.y * 0.996108949184417724609375) + (_2855.z * 0.00389105058275163173675537109375);vec4 _4694 = _4688;_4694.y = (_2863.y * 0.996108949184417724609375) + (_2863.z * 0.00389105058275163173675537109375);vec4 _4700 = _4694;_4700.z = (_2871.y * 0.996108949184417724609375) + (_2871.z * 0.00389105058275163173675537109375);vec4 _4706 = _4700;_4706.w = (_2879.y * 0.996108949184417724609375) + (_2879.z * 0.00389105058275163173675537109375);highp vec2 _2947 = fract((vec3(_2754, _2406.y, _4900).xy * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _2949 = _2947.x;float _2950 = 1.0 - _2949;float _2952 = _2947.y;vec4 _4710 = _4786;_4710.x = _2950 * _2952;vec4 _4714 = _4710;_4714.y = _2949 * _2952;float _2965 = 1.0 - _2952;vec4 _4718 = _4714;_4718.z = _2949 * _2965;vec4 _4722 = _4718;_4722.w = _2950 * _2965;vec4 _2995 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), vertex_worldPosition.xyz) + frameUniforms.a[3].z) - (_4706 * (-frameUniforms.gz))) * frameUniforms.vz;highp vec4 _3003 = max(vec4(6.103515625e-05), vec4(1.0) - (_2995 * _2995)) * _4722;highp vec4 _3017 = _3003 / vec4(((_3003.x + _3003.y) + _3003.z) + _3003.w);_4788 = _3017;_4787 = dot(vec4(_2855.x, _2863.x, _2871.x, _2879.x), _3017);_4788 = _4786;_4787 = textureLod(light_ssao, vec3(_2754, _2406.y, 0.0), 0.0).x;float _2675 = min(1.0, _4787);float _4796;vec3 _4790;highp vec3 _3103 = vec3(_2754, _2406.y, 1.0);vec4 _3104 = textureLodOffset(light_ssao, _3103, 0.0, ivec2(0, 1));vec4 _3111 = textureLodOffset(light_ssao, _3103, 0.0, ivec2(1));vec4 _3118 = textureLodOffset(light_ssao, _3103, 0.0, ivec2(1, 0));vec4 _3125 = textureLodOffset(light_ssao, _3103, 0.0, ivec2(0));vec3 _4744 = _4784;_4744.x = dot(vec4(_3104.x, _3111.x, _3118.x, _3125.x), _4788);vec3 _4746 = _4744;_4746.y = dot(vec4(_3104.y, _3111.y, _3118.y, _3125.y), _4788);vec3 _4748 = _4746;_4748.z = dot(vec4(_3104.z, _3111.z, _3118.z, _3125.z), _4788);_4790 = _4748;_4790 = textureLod(light_ssao, vec3(_2754, _2406.y, 1.0), 0.0).xyz;float _3315;float _3198 = sqrt(1.0 - _2675);float _3202 = exp2((-3.3219280242919921875) * _2780);float _3205 = dot(normalize((_4790 * 2.0) - vec3(1.0)), _2444);float _4792;float _3306 = (((-0.15658269822597503662109375) * _3198) + 1.57079601287841796875) * sqrt(1.0 - _3198);_3315 = 1.0 - _3202;float _3317 = (((-0.15658269822597503662109375) * _3202) + 1.57079601287841796875) * sqrt(_3315);float _3324 = abs(_3205);float _3332 = (((-0.15658269822597503662109375) * _3324) + 1.57079601287841796875) * sqrt(1.0 - _3324);float _4791;if (_3205 >= 0.0)_4791 = _3332;_4791 = 3.1415927410125732421875 - _3332;float _3255;if (min(_3306, _3317) <= (max(_3306, _3317) - _4791))_4792 = 1.0 - max(_3198, _3202);_3255 = _3306 + _3317;if (_3255 <= _4791)_4792 = 0.0;float _3269 = abs(_3306 - _3317);float _3281 = 1.0 - clamp((_4791 - _3269) / max(_3255 - _3269, 9.9999997473787516355514526367188e-05), 0.0, 1.0);_4792 = ((_3281 * _3281) * (((-2.0) * _3281) + 3.0)) * (1.0 - max(_3198, _3202));_4796 = min(1.0, mix(1.0, _4792 / _3315, smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _2586)));_4796 = 1.0;vec3 _4802;_4802 = textureLod(light_iblSpecular, _2391, frameUniforms.fz).xyz;float _3375 = _2391.y;float _3380 = _2391.z;float _3385 = _2391.x;_4802 = max((((((((frameUniforms.dz[0] + (frameUniforms.dz[1] * _3375)) + (frameUniforms.dz[2] * _3380)) + (frameUniforms.dz[3] * _3385)) + (frameUniforms.dz[4] * (_3375 * _3385))) + (frameUniforms.dz[5] * (_3375 * _3380))) + (frameUniforms.dz[6] * (((3.0 * _3380) * _3380) - 1.0))) + (frameUniforms.dz[7] * (_3380 * _3385))) + (frameUniforms.dz[8] * ((_3385 * _3385) - (_3375 * _3375))), vec3(0.0));uint _3456;vec4 _3479;vec3 _3482;vec3 _2745 = (((_2767 * textureLod(light_iblSpecular, mix(_2444, _2391, vec3(_2780)), (frameUniforms.fz * _2576) * (2.0 - _2576)).xyz) * (_2605 * _4796)) * frameUniforms.az) + ((((_2549 * _4802) * (vec3(1.0) - _2767)) * _2675) * frameUniforms.az);vec3 _4856;_3479 = frameUniforms.l;_3482 = frameUniforms.q;vec3 _4811;float _3512 = dot(_3482, _2444);highp vec3 _4810;if (_3512 < frameUniforms.m.x)_4810 = normalize((_3482 * frameUniforms.m.x) + (normalize(_2444 - (_3482 * _3512)) * frameUniforms.m.y));_4810 = _2444;_4811 = _4810;_4811 = _3482;float _3490 = clamp(dot(_2391, _4811), 0.0, 1.0);_3456 = objectUniforms.e & 255u;if (((frameUniforms.p & 255u) & _3456) == 0u)_4856 = _2745;if (_3490 <= 0.0)vec3 _3560 = normalize(_2398 + _4811);float _3563 = clamp(_3490, 0.0, 1.0);vec3 _3651 = cross(_2391, _3560);float _3657 = clamp(dot(_2391, _3560), 0.0, 1.0) * _2586;float _3664 = _2586 / (dot(_3651, _3651) + (_3657 * _3657));float _3705 = pow(1.0 - clamp(dot(_4811, _3560), 0.0, 1.0), 5.0);_4856 = _2745 + ((((_2549 * 0.3183098733425140380859375) + (((vec3(_3705) + (_2566 * (1.0 - _3705))) * (min((_3664 * _3664) * 0.3183098733425140380859375, 65504.0) * min(0.5 / mix((2.0 * _3563) * _2451, _3563 + _2451, _2586), 65504.0))) * _2605)) * _3479.xyz) * (_3479.w * _3563));highp uvec2 _3833 = uvec2((vec3(_2754, _2406.y, gl_FragCoord.z).xy * frameUniforms.i.xy) * vec2(frameUniforms.z, frameUniforms.v));uint _3815 = ((_3833.x * frameUniforms.r) + (_3833.y * frameUniforms.x.x)) + (uint(clamp((log2((frameUniforms.w.x * gl_FragCoord.z) + frameUniforms.w.y) * frameUniforms.w.z) + frameUniforms.w.w, 0.0, frameUniforms.w.w - 1.0)) * frameUniforms.x.y);uvec4 _3872 = texelFetch(light_froxels, ivec2(int(_3815 & 63u), int(_3815 >> 6u)), 0);uint _3875 = _3872.x;uint _3747 = _3875 + (_3872.y & 255u);vec3 _4868;vec4 _4874;_4874 = _4786;_4868 = _4856;vec4 _4775;vec3 _4894;for (uint _4867 = _3875; _4867 < _3747; _4874 = _4775, _4868 = _4894, _4867++)highp uvec4 _4019 = froxelRecordUniforms.a[_4867 >> 4u];highp uint _4036 = (_4019[(_4867 >> 2u) & 3u] >> ((_4867 & 3u) * 8u)) & 255u;highp vec2 _3920 = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_4036][2].x));highp vec3 _3945 = lightsUniforms.a[_4036][0].xyz - vertex_worldPosition.xyz;vec4 _4769 = _4874;_4769.x = _3920.x;vec4 _4771 = _4769;_4771.y = _3920.y;vec4 _4773 = _4771;_4773.z = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_4036][2].y)).x;highp float _4044 = lightsUniforms.a[_4036][3].y * frameUniforms.bz;_4775 = _4773;_4775.w = _4044;highp vec3 _3960 = normalize(_3945);highp float _4054 = dot(_3945, _3945);float _4084 = _4054 * lightsUniforms.a[_4036][0].w;float _4089 = clamp(1.0 - (_4084 * _4084), 0.0, 1.0);highp vec3 _4060 = vertex_worldPosition.xyz - frameUniforms.j;float _4077 = ((_4089 * _4089) * clamp(frameUniforms.n.x - (dot(_4060, _4060) * frameUniforms.n.y), 0.0, 1.0)) / max(_4054, 9.9999997473787516355514526367188e-05);float _3971 = clamp(dot(_2391, _3960), 0.0, 1.0);float _4888;if ((floatBitsToUint(lightsUniforms.a[_4036][3].z) & 1u) == 1u)highp float _4110 = clamp((dot(-lightsUniforms.a[_4036][1].xyz, _3960) * lightsUniforms.a[_4036][2].z) + lightsUniforms.a[_4036][2].w, 0.0, 1.0);_4888 = _4077 * (_4110 * _4110);_4888 = _4077;if ((floatBitsToUint(lightsUniforms.a[_4036][3].w) & _3456) == 0u)_4894 = _4868;bool _3768 = _3971 <= 0.0;bool _3775;if (!_3768)_3775 = _4888 <= 0.0;_3775 = _3768;if (_3775)vec3 _4134 = normalize(_2398 + _3960);float _4137 = clamp(_3971, 0.0, 1.0);vec3 _4225 = cross(_2391, _4134);float _4231 = clamp(dot(_2391, _4134), 0.0, 1.0) * _2586;float _4238 = _2586 / (dot(_4225, _4225) + (_4231 * _4231));float _4279 = pow(1.0 - clamp(dot(_3960, _4134), 0.0, 1.0), 5.0);_4894 = _4868 + ((((_2549 * 0.3183098733425140380859375) + (((vec3(_4279) + (_2566 * (1.0 - _4279))) * (min((_4238 * _4238) * 0.3183098733425140380859375, 65504.0) * min(0.5 / mix((2.0 * _4137) * _2451, _4137 + _2451, _2586), 65504.0))) * _2605)) * _4775.xyz) * ((_4044 * _4888) * _4137));fragColor = vec4(_4868, 1.0);highp vec3 _2350 = vertex_worldPosition.xyz - frameUniforms.j;vec4 _4873;float _4339 = length(_2350);float _4342 = max(0.001000000047497451305389404296875, _2350.y);float _4352 = frameUniforms.qz * ((1.0 - exp((-frameUniforms.oz) * _4342)) / _4342);float _4368 = min(max(1.0 - exp2(-(_4352 * max(_4339 - frameUniforms.lz, 0.0))), 0.0), frameUniforms.mz);vec3 _4869;_4869 = frameUniforms.pz * (textureLod(light_iblSpecular, _2350, frameUniforms.fz).xyz * frameUniforms.az);_4869 = frameUniforms.pz;vec3 _4390 = _4869 * _4368;vec3 _4872;_4872 = _4390 + ((_3479.xyz * frameUniforms.l.w) * (pow(max(dot(_2350, _3482) / _4339, 0.0), frameUniforms.sz) * max(1.0 - exp2(-(_4352 * max(_4339 - frameUniforms.rz, 0.0))), 0.0)));_4872 = _4390;vec3 _4438 = (fragColor.xyz * (1.0 - _4368)) + _4872;vec4 _4779 = fragColor;_4779.x = _4438.x;vec4 _4781 = _4779;_4781.y = _4438.y;vec4 _4783 = _4781;_4783.z = _4438.z;_4873 = _4783;_4873 = fragColor;fragColor = _4873;vec3 _5360;vec4 _5362;float _5489;vec3 _5490;vec3 _4877;bool _3284;highp vec3 _2849 = normalize(vertex_worldNormal);highp vec3 _2856 = normalize(frameUniforms.j - vertex_worldPosition.xyz);highp vec2 _2864 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);float _2909 = max(dot(_2849, _2856), 9.9999997473787516355514526367188e-05);vec3 _2902 = reflect(-_2856, _2849);vec4 _5224 = vec4(1.0);_5224.x = materialParams.a.x;vec4 _5226 = _5224;_5226.y = materialParams.a.y;vec4 _5228 = _5226;_5228.z = materialParams.a.z;float _3001 = 1.0 - materialParams.b;vec3 _3002 = _5228.xyz * _3001;vec3 _3019 = (_5228.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _3001);float _3029 = clamp(materialParams.c, 0.08900000154972076416015625, 1.0);float _3039 = _3029 * _3029;vec4 _3073 = textureLod(light_iblDFG, vec2(_2909, _3029), 0.0);vec3 _3058 = vec3(1.0) + (_3019 * ((1.0 / _3073.y) - 1.0));highp float _3207 = _2864.x;vec3 _3220 = mix(_3073.xxx, _3073.yyy, _3019);float _3233 = _3039 * _3039;float _5363;highp vec4 _5364;_3284 = frameUniforms.vz > 0.0;if (_3284)highp vec3 _3307 = vec3(_3207, _2864.y, 0.0);vec4 _3308 = textureLodOffset(light_ssao, _3307, 0.0, ivec2(0, 1));vec4 _3316 = textureLodOffset(light_ssao, _3307, 0.0, ivec2(1));vec4 _3324 = textureLodOffset(light_ssao, _3307, 0.0, ivec2(1, 0));vec4 _3332 = textureLodOffset(light_ssao, _3307, 0.0, ivec2(0));vec4 _5247 = _5362;_5247.x = (_3308.y * 0.996108949184417724609375) + (_3308.z * 0.00389105058275163173675537109375);vec4 _5253 = _5247;_5253.y = (_3316.y * 0.996108949184417724609375) + (_3316.z * 0.00389105058275163173675537109375);vec4 _5259 = _5253;_5259.z = (_3324.y * 0.996108949184417724609375) + (_3324.z * 0.00389105058275163173675537109375);vec4 _5265 = _5259;_5265.w = (_3332.y * 0.996108949184417724609375) + (_3332.z * 0.00389105058275163173675537109375);highp vec2 _3400 = fract((vec3(_3207, _2864.y, _5489).xy * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _3402 = _3400.x;float _3403 = 1.0 - _3402;float _3405 = _3400.y;vec4 _5269 = _5362;_5269.x = _3403 * _3405;vec4 _5273 = _5269;_5273.y = _3402 * _3405;float _3418 = 1.0 - _3405;vec4 _5277 = _5273;_5277.z = _3402 * _3418;vec4 _5281 = _5277;_5281.w = _3403 * _3418;vec4 _3448 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), vertex_worldPosition.xyz) + frameUniforms.a[3].z) - (_5265 * (-frameUniforms.gz))) * frameUniforms.vz;highp vec4 _3456 = max(vec4(6.103515625e-05), vec4(1.0) - (_3448 * _3448)) * _5281;highp vec4 _3470 = _3456 / vec4(((_3456.x + _3456.y) + _3456.z) + _3456.w);_5364 = _3470;_5363 = dot(vec4(_3308.x, _3316.x, _3324.x, _3332.x), _3470);_5364 = _5362;_5363 = textureLod(light_ssao, vec3(_3207, _2864.y, 0.0), 0.0).x;float _3128 = min(1.0, _5363);float _5372;vec3 _5366;highp vec3 _3556 = vec3(_3207, _2864.y, 1.0);vec4 _3557 = textureLodOffset(light_ssao, _3556, 0.0, ivec2(0, 1));vec4 _3564 = textureLodOffset(light_ssao, _3556, 0.0, ivec2(1));vec4 _3571 = textureLodOffset(light_ssao, _3556, 0.0, ivec2(1, 0));vec4 _3578 = textureLodOffset(light_ssao, _3556, 0.0, ivec2(0));vec3 _5303 = _5360;_5303.x = dot(vec4(_3557.x, _3564.x, _3571.x, _3578.x), _5364);vec3 _5305 = _5303;_5305.y = dot(vec4(_3557.y, _3564.y, _3571.y, _3578.y), _5364);vec3 _5307 = _5305;_5307.z = dot(vec4(_3557.z, _3564.z, _3571.z, _3578.z), _5364);_5366 = _5307;_5366 = textureLod(light_ssao, vec3(_3207, _2864.y, 1.0), 0.0).xyz;float _3651 = sqrt(1.0 - _3128);float _3655 = exp2((-3.3219280242919921875) * _3233);float _3658 = dot(normalize((_5366 * 2.0) - vec3(1.0)), _2902);float _5368;float _3759 = (((-0.15658269822597503662109375) * _3651) + 1.57079601287841796875) * sqrt(1.0 - _3651);_3768 = 1.0 - _3655;float _3770 = (((-0.15658269822597503662109375) * _3655) + 1.57079601287841796875) * sqrt(_3768);float _3777 = abs(_3658);float _3785 = (((-0.15658269822597503662109375) * _3777) + 1.57079601287841796875) * sqrt(1.0 - _3777);float _5367;if (_3658 >= 0.0)_5367 = _3785;_5367 = 3.1415927410125732421875 - _3785;float _3708;if (min(_3759, _3770) <= (max(_3759, _3770) - _5367))_5368 = 1.0 - max(_3651, _3655);_3708 = _3759 + _3770;if (_3708 <= _5367)_5368 = 0.0;float _3722 = abs(_3759 - _3770);float _3734 = 1.0 - clamp((_5367 - _3722) / max(_3708 - _3722, 9.9999997473787516355514526367188e-05), 0.0, 1.0);_5368 = ((_3734 * _3734) * (((-2.0) * _3734) + 3.0)) * (1.0 - max(_3651, _3655));_5372 = min(1.0, mix(1.0, _5368 / _3768, smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _3039)));_5372 = 1.0;vec3 _5378;_5378 = textureLod(light_iblSpecular, _2849, frameUniforms.fz).xyz;float _3828 = _2849.y;float _3833 = _2849.z;float _3838 = _2849.x;_5378 = max((((((((frameUniforms.dz[0] + (frameUniforms.dz[1] * _3828)) + (frameUniforms.dz[2] * _3833)) + (frameUniforms.dz[3] * _3838)) + (frameUniforms.dz[4] * (_3828 * _3838))) + (frameUniforms.dz[5] * (_3828 * _3833))) + (frameUniforms.dz[6] * (((3.0 * _3833) * _3833) - 1.0))) + (frameUniforms.dz[7] * (_3833 * _3838))) + (frameUniforms.dz[8] * ((_3838 * _3838) - (_3828 * _3828))), vec3(0.0));vec4 _3992;vec3 _3995;vec3 _3198 = (((_3220 * textureLod(light_iblSpecular, mix(_2902, _2849, vec3(_3233)), (frameUniforms.fz * _3029) * (2.0 - _3029)).xyz) * (_3058 * _5372)) * frameUniforms.az) + ((((_3002 * _5378) * (vec3(1.0) - _3220)) * _3128) * frameUniforms.az);vec3 _5478;_3992 = frameUniforms.l;_3995 = frameUniforms.q;vec3 _5387;float _4025 = dot(_3995, _2902);highp vec3 _5386;if (_4025 < frameUniforms.m.x)_5386 = normalize((_3995 * frameUniforms.m.x) + (normalize(_2902 - (_3995 * _4025)) * frameUniforms.m.y));_5386 = _2902;_5387 = _5386;_5387 = _3995;float _4003 = clamp(dot(_2849, _5387), 0.0, 1.0);_5478 = _3198;if (_4003 <= 0.0)float _5467;if (_4003 > 0.0)bvec4 _4067 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * vertex_worldPosition.x) + ((frameUniforms.a[1] * vertex_worldPosition.y) + ((frameUniforms.a[2] * vertex_worldPosition.z) + frameUniforms.a[3]))).z));uint _4077 = clamp(uint(dot(vec4(_4067.x ? vec4(1.0).x : vec4(0.0).x, _4067.y ? vec4(1.0).y : vec4(0.0).y, _4067.z ? vec4(1.0).z : vec4(0.0).z, _4067.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);float _5440;if (((frameUniforms.iz & 1u) != 0u) && ((frameUniforms.uz & ((1u << _4077) << 8u)) != 0u))highp vec4 _5430;if (_4077 == 0u)_5430 = vertex_lightSpacePosition;highp float _4147 = clamp(dot(_2849, _3995), 0.0, 1.0);highp vec3 _4157 = vertex_worldPosition.xyz + (_2849 * (sqrt(1.0 - (_4147 * _4147)) * frameUniforms.t));_5430 = (frameUniforms.g[_4077][0] * _4157.x) + ((frameUniforms.g[_4077][1] * _4157.y) + ((frameUniforms.g[_4077][2] * _4157.z) + frameUniforms.g[_4077][3]));highp vec3 _4197 = _5430.xyz * (1.0 / _5430.w);highp vec2 _4204 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);highp vec2 _4206 = vec2(1.0) / _4204;highp vec2 _4211 = clamp(_4197.xy, vec2(-1.0), vec2(2.0));highp vec3 _5311 = _5490;_5311.x = _4211.x;highp vec3 _5313 = _5311;_5313.y = _4211.y;highp vec2 _4221 = (_5313.xy * _4204) + vec2(0.5);highp vec2 _4227 = (floor(_4221) - vec2(0.5)) * _4206;highp vec2 _4229 = fract(_4221);highp float _4231 = _4229.x;highp float _4232 = 2.0 * _4231;highp float _4233 = 3.0 - _4232;highp float _4237 = 1.0 + _4232;highp float _4240 = _4229.y;highp float _4241 = 2.0 * _4240;highp float _4242 = 3.0 - _4241;highp float _4246 = 1.0 + _4241;highp vec2 _4279 = vec2(((2.0 - _4231) / _4233) - 1.0, (_4231 / _4237) + 1.0) * _4206.x;highp vec2 _4283 = vec2(((2.0 - _4240) / _4242) - 1.0, (_4240 / _4246) + 1.0) * _4206.y;highp float _4291 = _4279.x;highp float _4293 = _4283.x;float _4357 = float(_4077);float _4359 = clamp(_4197.z, 0.0, 1.0);highp float _4308 = _4279.y;highp float _4327 = _4283.y;_5440 = (((((_4233 * _4242) * texture(light_shadowMap, vec4(vec4(_4227 + vec2(_4291, _4293), _4357, _4359).xyz, _4359))) + ((_4237 * _4242) * texture(light_shadowMap, vec4(vec4(_4227 + vec2(_4308, _4293), _4357, _4359).xyz, _4359)))) + ((_4233 * _4246) * texture(light_shadowMap, vec4(vec4(_4227 + vec2(_4291, _4327), _4357, _4359).xyz, _4359)))) + ((_4237 * _4246) * texture(light_shadowMap, vec4(vec4(_4227 + vec2(_4308, _4327), _4357, _4359).xyz, _4359)))) * 0.0625;_5440 = 1.0;float _5458;if (((frameUniforms.iz & 2u) != 0u) && (_5440 > 0.0))float _5462;uint _4421 = (frameUniforms.iz >> 8u) & 255u;highp vec4 _4529 = frameUniforms.e * vec4(vertex_worldPosition.xyz, 1.0);highp vec4 _4536 = frameUniforms.e * vec4(vertex_worldPosition.xyz + (_5387 * frameUniforms.kz), 1.0);highp vec4 _4542 = _4529 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));highp vec3 _4548 = _4529.xyz * (1.0 / _4529.w);highp vec3 _4555 = _4536.xyz * (1.0 / _4536.w);highp float _4582 = _4548.z;highp vec3 _4585 = vec3((_4548.xy * 0.5) + vec2(0.5), _4582);highp vec3 _4590 = vec3((_4555.xy * 0.5) + vec2(0.5), _4555.z) - _4585;float _4431 = 1.0 / float(_4421);highp float _4439 = abs((_4542.xyz * (1.0 / _4542.w)).z - _4582) * _4431;uint _5441;highp float _5442;highp vec3 _5444;_5442 = (_4431 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _4431;_5441 = 0u;_5444 = _5360;highp vec3 _4464;highp vec3 _5443;float _5456;if (_5441 < _4421)_4464 = _4585 + (_4590 * _5442);if (abs(_4439 - (textureLod(light_structure, _4464.xy, 0.0).x - _4464.z)) < _4439)_5456 = 1.0;_5443 = _4464;_5442 += _4431;_5441++;_5444 = _4464;_5456 = 0.0;_5443 = _5444;highp vec2 _4499 = max((abs(_5443.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_5462 = _5456 * clamp(1.0 - dot(_4499, _4499), 0.0, 1.0);_5462 = 0.0;_5458 = _5462;_5458 = 0.0;float _3976 = _5440 * (1.0 - _5458);if (_3976 <= 0.0)_5467 = _3976;_5467 = 1.0;vec3 _4623 = normalize(_2856 + _5387);float _4626 = clamp(_4003, 0.0, 1.0);vec3 _4714 = cross(_2849, _4623);float _4720 = clamp(dot(_2849, _4623), 0.0, 1.0) * _3039;float _4727 = _3039 / (dot(_4714, _4714) + (_4720 * _4720));float _4768 = pow(1.0 - clamp(dot(_5387, _4623), 0.0, 1.0), 5.0);_5478 = _3198 + ((((_3002 * 0.3183098733425140380859375) + (((vec3(_4768) + (_3019 * (1.0 - _4768))) * (min((_4727 * _4727) * 0.3183098733425140380859375, 65504.0) * min(0.5 / mix((2.0 * _4626) * _2909, _4626 + _2909, _3039), 65504.0))) * _3058)) * _3992.xyz) * ((_3992.w * _4626) * _5467));fragColor = vec4(_5478, 1.0);bvec4 _4810 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * vertex_worldPosition.x) + ((frameUniforms.a[1] * vertex_worldPosition.y) + ((frameUniforms.a[2] * vertex_worldPosition.z) + frameUniforms.a[3]))).z));uint _4820 = clamp(uint(dot(vec4(_4810.x ? vec4(1.0).x : vec4(0.0).x, _4810.y ? vec4(1.0).y : vec4(0.0).y, _4810.z ? vec4(1.0).z : vec4(0.0).z, _4810.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);vec3 _5479;if (_4820 == 0u)_5479 = vec3(0.0, 1.0, 0.0);if (_4820 == 1u)_5479 = vec3(0.0, 0.0, 1.0);if (_4820 == 2u)_5479 = vec3(1.0, 1.0, 0.0);if (_4820 == 3u)_5479 = vec3(1.0, 0.0, 0.0);if (_4820 == 4u)_5479 = vec3(1.0, 0.0, 1.0);if (_4820 == 5u)_5479 = vec3(0.0, 1.0, 1.0);_5479 = _4877;vec4 _2767 = fragColor;vec3 _2769 = _2767.xyz * _5479;fragColor.x = _2769.x;fragColor.y = _2769.y;fragColor.z = _2769.z;highp vec3 _2780 = vertex_worldPosition.xyz - frameUniforms.j;vec4 _5484;float _4912 = length(_2780);float _4915 = max(0.001000000047497451305389404296875, _2780.y);float _4925 = frameUniforms.qz * ((1.0 - exp((-frameUniforms.oz) * _4915)) / _4915);float _4941 = min(max(1.0 - exp2(-(_4925 * max(_4912 - frameUniforms.lz, 0.0))), 0.0), frameUniforms.mz);vec3 _5480;_5480 = frameUniforms.pz * (textureLod(light_iblSpecular, _2780, frameUniforms.fz).xyz * frameUniforms.az);_5480 = frameUniforms.pz;vec3 _4963 = _5480 * _4941;vec3 _5483;_5483 = _4963 + ((_3992.xyz * frameUniforms.l.w) * (pow(max(dot(_2780, _3995) / _4912, 0.0), frameUniforms.sz) * max(1.0 - exp2(-(_4925 * max(_4912 - frameUniforms.rz, 0.0))), 0.0)));_5483 = _4963;vec3 _5011 = (fragColor.xyz * (1.0 - _4941)) + _5483;vec4 _5355 = fragColor;_5355.x = _5011.x;vec4 _5357 = _5355;_5357.y = _5011.y;vec4 _5359 = _5357;_5359.z = _5011.z;_5484 = _5359;_5484 = fragColor;fragColor = _5484;vec3 _5776;vec4 _5778;float _5906;vec3 _5907;bool _3502;highp vec3 _3067 = normalize(vertex_worldNormal);highp vec3 _3074 = normalize(frameUniforms.j - vertex_worldPosition.xyz);highp vec2 _3082 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);float _3127 = max(dot(_3067, _3074), 9.9999997473787516355514526367188e-05);vec3 _3120 = reflect(-_3074, _3067);vec4 _5614 = vec4(1.0);_5614.x = materialParams.a.x;vec4 _5616 = _5614;_5616.y = materialParams.a.y;vec4 _5618 = _5616;_5618.z = materialParams.a.z;float _3219 = 1.0 - materialParams.b;vec3 _3220 = _5618.xyz * _3219;vec3 _3237 = (_5618.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _3219);float _3247 = clamp(materialParams.c, 0.08900000154972076416015625, 1.0);float _3257 = _3247 * _3247;vec4 _3291 = textureLod(light_iblDFG, vec2(_3127, _3247), 0.0);vec3 _3276 = vec3(1.0) + (_3237 * ((1.0 / _3291.y) - 1.0));highp float _3425 = _3082.x;vec3 _3438 = mix(_3291.xxx, _3291.yyy, _3237);float _3451 = _3257 * _3257;float _5779;highp vec4 _5780;_3502 = frameUniforms.vz > 0.0;if (_3502)highp vec3 _3525 = vec3(_3425, _3082.y, 0.0);vec4 _3526 = textureLodOffset(light_ssao, _3525, 0.0, ivec2(0, 1));vec4 _3534 = textureLodOffset(light_ssao, _3525, 0.0, ivec2(1));vec4 _3542 = textureLodOffset(light_ssao, _3525, 0.0, ivec2(1, 0));vec4 _3550 = textureLodOffset(light_ssao, _3525, 0.0, ivec2(0));vec4 _5637 = _5778;_5637.x = (_3526.y * 0.996108949184417724609375) + (_3526.z * 0.00389105058275163173675537109375);vec4 _5643 = _5637;_5643.y = (_3534.y * 0.996108949184417724609375) + (_3534.z * 0.00389105058275163173675537109375);vec4 _5649 = _5643;_5649.z = (_3542.y * 0.996108949184417724609375) + (_3542.z * 0.00389105058275163173675537109375);vec4 _5655 = _5649;_5655.w = (_3550.y * 0.996108949184417724609375) + (_3550.z * 0.00389105058275163173675537109375);highp vec2 _3618 = fract((vec3(_3425, _3082.y, _5906).xy * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _3620 = _3618.x;float _3621 = 1.0 - _3620;float _3623 = _3618.y;vec4 _5659 = _5778;_5659.x = _3621 * _3623;vec4 _5663 = _5659;_5663.y = _3620 * _3623;float _3636 = 1.0 - _3623;vec4 _5667 = _5663;_5667.z = _3620 * _3636;vec4 _5671 = _5667;_5671.w = _3621 * _3636;vec4 _3666 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), vertex_worldPosition.xyz) + frameUniforms.a[3].z) - (_5655 * (-frameUniforms.gz))) * frameUniforms.vz;highp vec4 _3674 = max(vec4(6.103515625e-05), vec4(1.0) - (_3666 * _3666)) * _5671;highp vec4 _3688 = _3674 / vec4(((_3674.x + _3674.y) + _3674.z) + _3674.w);_5780 = _3688;_5779 = dot(vec4(_3526.x, _3534.x, _3542.x, _3550.x), _3688);_5780 = _5778;_5779 = textureLod(light_ssao, vec3(_3425, _3082.y, 0.0), 0.0).x;float _3346 = min(1.0, _5779);float _5788;vec3 _5782;highp vec3 _3774 = vec3(_3425, _3082.y, 1.0);vec4 _3775 = textureLodOffset(light_ssao, _3774, 0.0, ivec2(0, 1));vec4 _3782 = textureLodOffset(light_ssao, _3774, 0.0, ivec2(1));vec4 _3789 = textureLodOffset(light_ssao, _3774, 0.0, ivec2(1, 0));vec4 _3796 = textureLodOffset(light_ssao, _3774, 0.0, ivec2(0));vec3 _5693 = _5776;_5693.x = dot(vec4(_3775.x, _3782.x, _3789.x, _3796.x), _5780);vec3 _5695 = _5693;_5695.y = dot(vec4(_3775.y, _3782.y, _3789.y, _3796.y), _5780);vec3 _5697 = _5695;_5697.z = dot(vec4(_3775.z, _3782.z, _3789.z, _3796.z), _5780);_5782 = _5697;_5782 = textureLod(light_ssao, vec3(_3425, _3082.y, 1.0), 0.0).xyz;float _3986;float _3869 = sqrt(1.0 - _3346);float _3873 = exp2((-3.3219280242919921875) * _3451);float _3876 = dot(normalize((_5782 * 2.0) - vec3(1.0)), _3120);float _5784;float _3977 = (((-0.15658269822597503662109375) * _3869) + 1.57079601287841796875) * sqrt(1.0 - _3869);_3986 = 1.0 - _3873;float _3988 = (((-0.15658269822597503662109375) * _3873) + 1.57079601287841796875) * sqrt(_3986);float _3995 = abs(_3876);float _4003 = (((-0.15658269822597503662109375) * _3995) + 1.57079601287841796875) * sqrt(1.0 - _3995);float _5783;if (_3876 >= 0.0)_5783 = _4003;_5783 = 3.1415927410125732421875 - _4003;float _3926;if (min(_3977, _3988) <= (max(_3977, _3988) - _5783))_5784 = 1.0 - max(_3869, _3873);_3926 = _3977 + _3988;if (_3926 <= _5783)_5784 = 0.0;float _3940 = abs(_3977 - _3988);float _3952 = 1.0 - clamp((_5783 - _3940) / max(_3926 - _3940, 9.9999997473787516355514526367188e-05), 0.0, 1.0);_5784 = ((_3952 * _3952) * (((-2.0) * _3952) + 3.0)) * (1.0 - max(_3869, _3873));_5788 = min(1.0, mix(1.0, _5784 / _3986, smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _3257)));_5788 = 1.0;vec3 _5794;_5794 = textureLod(light_iblSpecular, _3067, frameUniforms.fz).xyz;float _4046 = _3067.y;float _4051 = _3067.z;float _4056 = _3067.x;_5794 = max((((((((frameUniforms.dz[0] + (frameUniforms.dz[1] * _4046)) + (frameUniforms.dz[2] * _4051)) + (frameUniforms.dz[3] * _4056)) + (frameUniforms.dz[4] * (_4046 * _4056))) + (frameUniforms.dz[5] * (_4046 * _4051))) + (frameUniforms.dz[6] * (((3.0 * _4051) * _4051) - 1.0))) + (frameUniforms.dz[7] * (_4051 * _4056))) + (frameUniforms.dz[8] * ((_4056 * _4056) - (_4046 * _4046))), vec3(0.0));highp uvec2 _4260 = uvec2((vec3(_3425, _3082.y, gl_FragCoord.z).xy * frameUniforms.i.xy) * vec2(frameUniforms.z, frameUniforms.v));uint _4242 = ((_4260.x * frameUniforms.r) + (_4260.y * frameUniforms.x.x)) + (uint(clamp((log2((frameUniforms.w.x * gl_FragCoord.z) + frameUniforms.w.y) * frameUniforms.w.z) + frameUniforms.w.w, 0.0, frameUniforms.w.w - 1.0)) * frameUniforms.x.y);uvec4 _4299 = texelFetch(light_froxels, ivec2(int(_4242 & 63u), int(_4242 >> 6u)), 0);uint _4302 = _4299.x;uint _4136 = _4302 + (_4299.y & 255u);uint _4139 = objectUniforms.e & 255u;vec3 _5810;vec4 _5816;highp vec3 _5846;_5846 = _5776;_5816 = _5778;_5810 = (((_3438 * textureLod(light_iblSpecular, mix(_3120, _3067, vec3(_3451)), (frameUniforms.fz * _3247) * (2.0 - _3247)).xyz) * (_3276 * _5788)) * frameUniforms.az) + ((((_3220 * _5794) * (vec3(1.0) - _3438)) * _3346) * frameUniforms.az);vec4 _5724;vec3 _5880;highp vec3 _5898;for (uint _5809 = _4302; _5809 < _4136; _5846 = _5898, _5816 = _5724, _5810 = _5880, _5809++)highp uvec4 _4446 = froxelRecordUniforms.a[_5809 >> 4u];highp uint _4463 = (_4446[(_5809 >> 2u) & 3u] >> ((_5809 & 3u) * 8u)) & 255u;highp vec2 _4347 = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_4463][2].x));highp uint _4364 = floatBitsToUint(lightsUniforms.a[_4463][3].z);highp uint _4367 = floatBitsToUint(lightsUniforms.a[_4463][3].w);highp vec3 _4372 = lightsUniforms.a[_4463][0].xyz - vertex_worldPosition.xyz;vec4 _5718 = _5816;_5718.x = _4347.x;vec4 _5720 = _5718;_5720.y = _4347.y;vec4 _5722 = _5720;_5722.z = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_4463][2].y)).x;highp float _4471 = lightsUniforms.a[_4463][3].y * frameUniforms.bz;_5724 = _5722;_5724.w = _4471;highp vec3 _4387 = normalize(_4372);highp float _4481 = dot(_4372, _4372);float _4511 = _4481 * lightsUniforms.a[_4463][0].w;float _4516 = clamp(1.0 - (_4511 * _4511), 0.0, 1.0);highp vec3 _4487 = vertex_worldPosition.xyz - frameUniforms.j;float _4504 = ((_4516 * _4516) * clamp(frameUniforms.n.x - (dot(_4487, _4487) * frameUniforms.n.y), 0.0, 1.0)) / max(_4481, 9.9999997473787516355514526367188e-05);float _4398 = clamp(dot(_3067, _4387), 0.0, 1.0);uint _5823;uint _5824;bool _5825;bool _5826;float _5827;if ((_4364 & 1u) == 1u)highp float _4537 = clamp((dot(-lightsUniforms.a[_4463][1].xyz, _4387) * lightsUniforms.a[_4463][2].z) + lightsUniforms.a[_4463][2].w, 0.0, 1.0);_5827 = _4504 * (_4537 * _4537);_5826 = (_4367 & 65536u) != 0u;_5825 = (_4364 & 16u) != 0u;_5824 = (_4364 >> 8u) & 255u;_5823 = (_4364 >> 16u) & 255u;_5827 = _4504;_5826 = false;_5825 = false;_5824 = 0u;_5823 = 0u;if ((_4367 & _4139) == 0u)_5898 = _5846;_5880 = _5810;bool _4157 = _4398 <= 0.0;bool _4164;if (!_4157)_4164 = _5827 <= 0.0;_4164 = _4157;if (_4164)float _5860;highp vec3 _5901;if (_4398 > 0.0)float _5838;if (_5826)highp float _4601 = clamp(dot(_3067, shadowUniforms.a[_5824].direction), 0.0, 1.0);highp vec3 _4611 = vertex_worldPosition.xyz + (_3067 * (sqrt(1.0 - (_4601 * _4601)) * (shadowUniforms.a[_5824].normalBias * dot(shadowUniforms.a[_5824].lightFromWorldZ, vec4(vertex_worldPosition.xyz, 1.0)))));highp vec4 _4628 = (shadowUniforms.a[_5824].lightFromWorldMatrix[0] * _4611.x) + ((shadowUniforms.a[_5824].lightFromWorldMatrix[1] * _4611.y) + ((shadowUniforms.a[_5824].lightFromWorldMatrix[2] * _4611.z) + shadowUniforms.a[_5824].lightFromWorldMatrix[3]));highp vec3 _4651 = _4628.xyz * (1.0 / _4628.w);highp vec2 _4658 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);highp vec2 _4660 = vec2(1.0) / _4658;highp vec2 _4665 = clamp(_4651.xy, vec2(-1.0), vec2(2.0));highp vec3 _5728 = _5907;_5728.x = _4665.x;highp vec3 _5730 = _5728;_5730.y = _4665.y;highp vec2 _4675 = (_5730.xy * _4658) + vec2(0.5);highp vec2 _4681 = (floor(_4675) - vec2(0.5)) * _4660;highp vec2 _4683 = fract(_4675);highp float _4685 = _4683.x;highp float _4686 = 2.0 * _4685;highp float _4687 = 3.0 - _4686;highp float _4691 = 1.0 + _4686;highp float _4694 = _4683.y;highp float _4695 = 2.0 * _4694;highp float _4696 = 3.0 - _4695;highp float _4700 = 1.0 + _4695;highp vec2 _4733 = vec2(((2.0 - _4685) / _4687) - 1.0, (_4685 / _4691) + 1.0) * _4660.x;highp vec2 _4737 = vec2(((2.0 - _4694) / _4696) - 1.0, (_4694 / _4700) + 1.0) * _4660.y;highp float _4745 = _4733.x;highp float _4747 = _4737.x;float _4811 = float(_5823);float _4813 = clamp(_4651.z, 0.0, 1.0);highp float _4762 = _4733.y;highp float _4781 = _4737.y;_5838 = (((((_4687 * _4696) * texture(light_shadowMap, vec4(vec4(_4681 + vec2(_4745, _4747), _4811, _4813).xyz, _4813))) + ((_4691 * _4696) * texture(light_shadowMap, vec4(vec4(_4681 + vec2(_4762, _4747), _4811, _4813).xyz, _4813)))) + ((_4687 * _4700) * texture(light_shadowMap, vec4(vec4(_4681 + vec2(_4745, _4781), _4811, _4813).xyz, _4813)))) + ((_4691 * _4700) * texture(light_shadowMap, vec4(vec4(_4681 + vec2(_4762, _4781), _4811, _4813).xyz, _4813)))) * 0.0625;_5838 = 1.0;float _5858;highp vec3 _5899;if (_5825 && (_5838 > 0.0))float _5859;highp vec3 _5900;uint _4875 = (frameUniforms.iz >> 8u) & 255u;highp vec4 _4983 = frameUniforms.e * vec4(vertex_worldPosition.xyz, 1.0);highp vec4 _4990 = frameUniforms.e * vec4(vertex_worldPosition.xyz + (_4387 * frameUniforms.kz), 1.0);highp vec4 _4996 = _4983 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));highp vec3 _5002 = _4983.xyz * (1.0 / _4983.w);highp vec3 _5009 = _4990.xyz * (1.0 / _4990.w);highp float _5036 = _5002.z;highp vec3 _5039 = vec3((_5002.xy * 0.5) + vec2(0.5), _5036);highp vec3 _5044 = vec3((_5009.xy * 0.5) + vec2(0.5), _5009.z) - _5039;float _4885 = 1.0 / float(_4875);highp float _4893 = abs((_4996.xyz * (1.0 / _4996.w)).z - _5036) * _4885;uint _5839;highp float _5840;highp vec3 _5842;_5840 = (_4885 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _4885;_5839 = 0u;_5842 = _5846;highp vec3 _4918;highp vec3 _5841;float _5854;if (_5839 < _4875)_4918 = _5039 + (_5044 * _5840);if (abs(_4893 - (textureLod(light_structure, _4918.xy, 0.0).x - _4918.z)) < _4893)_5854 = 1.0;_5841 = _4918;_5840 += _4885;_5839++;_5842 = _4918;_5854 = 0.0;_5841 = _5842;highp vec2 _4953 = max((abs(_5841.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_5900 = _5841;_5859 = _5838 * (1.0 - (_5854 * clamp(1.0 - dot(_4953, _4953), 0.0, 1.0)));_5900 = _5846;_5859 = _5838;_5899 = _5900;_5858 = _5859;_5899 = _5846;_5858 = _5838;if (_5858 <= 0.0)_5898 = _5899;_5901 = _5899;_5860 = _5858;_5901 = _5846;_5860 = 1.0;vec3 _5077 = normalize(_3074 + _4387);float _5080 = clamp(_4398, 0.0, 1.0);vec3 _5168 = cross(_3067, _5077);float _5174 = clamp(dot(_3067, _5077), 0.0, 1.0) * _3257;float _5181 = _3257 / (dot(_5168, _5168) + (_5174 * _5174));float _5222 = pow(1.0 - clamp(dot(_4387, _5077), 0.0, 1.0), 5.0);_5898 = _5901;_5880 = _5810 + ((((_3220 * 0.3183098733425140380859375) + (((vec3(_5222) + (_3237 * (1.0 - _5222))) * (min((_5181 * _5181) * 0.3183098733425140380859375, 65504.0) * min(0.5 / mix((2.0 * _5080) * _3127, _5080 + _3127, _3257), 65504.0))) * _3276)) * _5724.xyz) * (((_4471 * _5827) * _5080) * _5860));fragColor = vec4(_5810, 1.0);highp vec3 _3038 = vertex_worldPosition.xyz - frameUniforms.j;vec4 _5815;float _5282 = length(_3038);float _5285 = max(0.001000000047497451305389404296875, _3038.y);float _5295 = frameUniforms.qz * ((1.0 - exp((-frameUniforms.oz) * _5285)) / _5285);float _5311 = min(max(1.0 - exp2(-(_5295 * max(_5282 - frameUniforms.lz, 0.0))), 0.0), frameUniforms.mz);vec3 _5811;_5811 = frameUniforms.pz * (textureLod(light_iblSpecular, _3038, frameUniforms.fz).xyz * frameUniforms.az);_5811 = frameUniforms.pz;vec3 _5333 = _5811 * _5311;vec3 _5814;_5814 = _5333 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_3038, frameUniforms.q) / _5282, 0.0), frameUniforms.sz) * max(1.0 - exp2(-(_5295 * max(_5282 - frameUniforms.rz, 0.0))), 0.0)));_5814 = _5333;vec3 _5381 = (fragColor.xyz * (1.0 - _5311)) + _5814;vec4 _5771 = fragColor;_5771.x = _5381.x;vec4 _5773 = _5771;_5773.y = _5381.y;vec4 _5775 = _5773;_5775.z = _5381.z;_5815 = _5775;_5815 = fragColor;fragColor = _5815;vec3 _7322;vec4 _7324;float _7559;vec3 _7560;vec3 _6696;bool _3824;highp vec3 _3384 = normalize(vertex_worldNormal);highp vec3 _3391 = normalize(frameUniforms.j - vertex_worldPosition.xyz);highp vec2 _3399 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);float _3444 = max(dot(_3384, _3391), 9.9999997473787516355514526367188e-05);vec3 _3437 = reflect(-_3391, _3384);vec4 _7115 = vec4(1.0);_7115.x = materialParams.a.x;vec4 _7117 = _7115;_7117.y = materialParams.a.y;vec4 _7119 = _7117;_7119.z = materialParams.a.z;float _3541 = 1.0 - materialParams.b;vec3 _3542 = _7119.xyz * _3541;vec3 _3559 = (_7119.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _3541);float _3569 = clamp(materialParams.c, 0.08900000154972076416015625, 1.0);float _3579 = _3569 * _3569;vec4 _3613 = textureLod(light_iblDFG, vec2(_3444, _3569), 0.0);vec3 _3598 = vec3(1.0) + (_3559 * ((1.0 / _3613.y) - 1.0));highp float _3747 = _3399.x;vec3 _3760 = mix(_3613.xxx, _3613.yyy, _3559);float _3773 = _3579 * _3579;float _7325;highp vec4 _7326;_3824 = frameUniforms.vz > 0.0;if (_3824)highp vec3 _3847 = vec3(_3747, _3399.y, 0.0);vec4 _3848 = textureLodOffset(light_ssao, _3847, 0.0, ivec2(0, 1));vec4 _3856 = textureLodOffset(light_ssao, _3847, 0.0, ivec2(1));vec4 _3864 = textureLodOffset(light_ssao, _3847, 0.0, ivec2(1, 0));vec4 _3872 = textureLodOffset(light_ssao, _3847, 0.0, ivec2(0));vec4 _7138 = _7324;_7138.x = (_3848.y * 0.996108949184417724609375) + (_3848.z * 0.00389105058275163173675537109375);vec4 _7144 = _7138;_7144.y = (_3856.y * 0.996108949184417724609375) + (_3856.z * 0.00389105058275163173675537109375);vec4 _7150 = _7144;_7150.z = (_3864.y * 0.996108949184417724609375) + (_3864.z * 0.00389105058275163173675537109375);vec4 _7156 = _7150;_7156.w = (_3872.y * 0.996108949184417724609375) + (_3872.z * 0.00389105058275163173675537109375);highp vec2 _3940 = fract((vec3(_3747, _3399.y, _7559).xy * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _3942 = _3940.x;float _3943 = 1.0 - _3942;float _3945 = _3940.y;vec4 _7160 = _7324;_7160.x = _3943 * _3945;vec4 _7164 = _7160;_7164.y = _3942 * _3945;float _3958 = 1.0 - _3945;vec4 _7168 = _7164;_7168.z = _3942 * _3958;vec4 _7172 = _7168;_7172.w = _3943 * _3958;vec4 _3988 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), vertex_worldPosition.xyz) + frameUniforms.a[3].z) - (_7156 * (-frameUniforms.gz))) * frameUniforms.vz;highp vec4 _3996 = max(vec4(6.103515625e-05), vec4(1.0) - (_3988 * _3988)) * _7172;highp vec4 _4010 = _3996 / vec4(((_3996.x + _3996.y) + _3996.z) + _3996.w);_7326 = _4010;_7325 = dot(vec4(_3848.x, _3856.x, _3864.x, _3872.x), _4010);_7326 = _7324;_7325 = textureLod(light_ssao, vec3(_3747, _3399.y, 0.0), 0.0).x;float _3668 = min(1.0, _7325);float _7334;vec3 _7328;highp vec3 _4096 = vec3(_3747, _3399.y, 1.0);vec4 _4097 = textureLodOffset(light_ssao, _4096, 0.0, ivec2(0, 1));vec4 _4104 = textureLodOffset(light_ssao, _4096, 0.0, ivec2(1));vec4 _4111 = textureLodOffset(light_ssao, _4096, 0.0, ivec2(1, 0));vec4 _4118 = textureLodOffset(light_ssao, _4096, 0.0, ivec2(0));vec3 _7194 = _7322;_7194.x = dot(vec4(_4097.x, _4104.x, _4111.x, _4118.x), _7326);vec3 _7196 = _7194;_7196.y = dot(vec4(_4097.y, _4104.y, _4111.y, _4118.y), _7326);vec3 _7198 = _7196;_7198.z = dot(vec4(_4097.z, _4104.z, _4111.z, _4118.z), _7326);_7328 = _7198;_7328 = textureLod(light_ssao, vec3(_3747, _3399.y, 1.0), 0.0).xyz;float _4308;float _4191 = sqrt(1.0 - _3668);float _4195 = exp2((-3.3219280242919921875) * _3773);float _4198 = dot(normalize((_7328 * 2.0) - vec3(1.0)), _3437);float _7330;float _4299 = (((-0.15658269822597503662109375) * _4191) + 1.57079601287841796875) * sqrt(1.0 - _4191);_4308 = 1.0 - _4195;float _4310 = (((-0.15658269822597503662109375) * _4195) + 1.57079601287841796875) * sqrt(_4308);float _4317 = abs(_4198);float _4325 = (((-0.15658269822597503662109375) * _4317) + 1.57079601287841796875) * sqrt(1.0 - _4317);float _7329;if (_4198 >= 0.0)_7329 = _4325;_7329 = 3.1415927410125732421875 - _4325;float _4248;if (min(_4299, _4310) <= (max(_4299, _4310) - _7329))_7330 = 1.0 - max(_4191, _4195);_4248 = _4299 + _4310;if (_4248 <= _7329)_7330 = 0.0;float _4262 = abs(_4299 - _4310);float _4274 = 1.0 - clamp((_7329 - _4262) / max(_4248 - _4262, 9.9999997473787516355514526367188e-05), 0.0, 1.0);_7330 = ((_4274 * _4274) * (((-2.0) * _4274) + 3.0)) * (1.0 - max(_4191, _4195));_7334 = min(1.0, mix(1.0, _7330 / _4308, smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _3579)));_7334 = 1.0;vec3 _7340;_7340 = textureLod(light_iblSpecular, _3384, frameUniforms.fz).xyz;float _4368 = _3384.y;float _4373 = _3384.z;float _4378 = _3384.x;_7340 = max((((((((frameUniforms.dz[0] + (frameUniforms.dz[1] * _4368)) + (frameUniforms.dz[2] * _4373)) + (frameUniforms.dz[3] * _4378)) + (frameUniforms.dz[4] * (_4368 * _4378))) + (frameUniforms.dz[5] * (_4368 * _4373))) + (frameUniforms.dz[6] * (((3.0 * _4373) * _4373) - 1.0))) + (frameUniforms.dz[7] * (_4373 * _4378))) + (frameUniforms.dz[8] * ((_4378 * _4378) - (_4368 * _4368))), vec3(0.0));uint _4456;vec4 _4532;vec3 _4535;vec3 _3738 = (((_3760 * textureLod(light_iblSpecular, mix(_3437, _3384, vec3(_3773)), (frameUniforms.fz * _3569) * (2.0 - _3569)).xyz) * (_3598 * _7334)) * frameUniforms.az) + ((((_3542 * _7340) * (vec3(1.0) - _3760)) * _3668) * frameUniforms.az);vec3 _7432;_4532 = frameUniforms.l;_4535 = frameUniforms.q;vec3 _7349;float _4565 = dot(_4535, _3437);highp vec3 _7348;if (_4565 < frameUniforms.m.x)_7348 = normalize((_4535 * frameUniforms.m.x) + (normalize(_3437 - (_4535 * _4565)) * frameUniforms.m.y));_7348 = _3437;_7349 = _7348;_7349 = _4535;float _4543 = clamp(dot(_3384, _7349), 0.0, 1.0);_4456 = objectUniforms.e & 255u;if (((frameUniforms.p & 255u) & _4456) == 0u)_7432 = _3738;if (_4543 <= 0.0)float _7421;if (_4543 > 0.0)bvec4 _4607 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * vertex_worldPosition.x) + ((frameUniforms.a[1] * vertex_worldPosition.y) + ((frameUniforms.a[2] * vertex_worldPosition.z) + frameUniforms.a[3]))).z));uint _4617 = clamp(uint(dot(vec4(_4607.x ? vec4(1.0).x : vec4(0.0).x, _4607.y ? vec4(1.0).y : vec4(0.0).y, _4607.z ? vec4(1.0).z : vec4(0.0).z, _4607.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);float _7394;if (((frameUniforms.iz & 1u) != 0u) && ((frameUniforms.uz & ((1u << _4617) << 8u)) != 0u))highp vec4 _7392;if (_4617 == 0u)_7392 = vertex_lightSpacePosition;highp float _4768 = clamp(dot(_3384, _4535), 0.0, 1.0);highp vec3 _4778 = vertex_worldPosition.xyz + (_3384 * (sqrt(1.0 - (_4768 * _4768)) * frameUniforms.t));_7392 = (frameUniforms.g[_4617][0] * _4778.x) + ((frameUniforms.g[_4617][1] * _4778.y) + ((frameUniforms.g[_4617][2] * _4778.z) + frameUniforms.g[_4617][3]));highp vec3 _4818 = _7392.xyz * (1.0 / _7392.w);highp vec2 _4825 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);highp vec2 _4827 = vec2(1.0) / _4825;highp vec2 _4832 = clamp(_4818.xy, vec2(-1.0), vec2(2.0));highp vec3 _7202 = _7560;_7202.x = _4832.x;highp vec3 _7204 = _7202;_7204.y = _4832.y;highp vec2 _4842 = (_7204.xy * _4825) + vec2(0.5);highp vec2 _4848 = (floor(_4842) - vec2(0.5)) * _4827;highp vec2 _4850 = fract(_4842);highp float _4852 = _4850.x;highp float _4853 = 2.0 * _4852;highp float _4854 = 3.0 - _4853;highp float _4858 = 1.0 + _4853;highp float _4861 = _4850.y;highp float _4862 = 2.0 * _4861;highp float _4863 = 3.0 - _4862;highp float _4867 = 1.0 + _4862;highp vec2 _4900 = vec2(((2.0 - _4852) / _4854) - 1.0, (_4852 / _4858) + 1.0) * _4827.x;highp vec2 _4904 = vec2(((2.0 - _4861) / _4863) - 1.0, (_4861 / _4867) + 1.0) * _4827.y;highp float _4912 = _4900.x;highp float _4914 = _4904.x;float _4978 = float(_4617);float _4980 = clamp(_4818.z, 0.0, 1.0);highp float _4929 = _4900.y;highp float _4948 = _4904.y;_7394 = (((((_4854 * _4863) * texture(light_shadowMap, vec4(vec4(_4848 + vec2(_4912, _4914), _4978, _4980).xyz, _4980))) + ((_4858 * _4863) * texture(light_shadowMap, vec4(vec4(_4848 + vec2(_4929, _4914), _4978, _4980).xyz, _4980)))) + ((_4854 * _4867) * texture(light_shadowMap, vec4(vec4(_4848 + vec2(_4912, _4948), _4978, _4980).xyz, _4980)))) + ((_4858 * _4867) * texture(light_shadowMap, vec4(vec4(_4848 + vec2(_4929, _4948), _4978, _4980).xyz, _4980)))) * 0.0625;_7394 = 1.0;float _7412;if (((frameUniforms.iz & 2u) != 0u) && (_7394 > 0.0))float _7416;uint _5042 = (frameUniforms.iz >> 8u) & 255u;highp vec4 _5150 = frameUniforms.e * vec4(vertex_worldPosition.xyz, 1.0);highp vec4 _5157 = frameUniforms.e * vec4(vertex_worldPosition.xyz + (_7349 * frameUniforms.kz), 1.0);highp vec4 _5163 = _5150 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));highp vec3 _5169 = _5150.xyz * (1.0 / _5150.w);highp vec3 _5176 = _5157.xyz * (1.0 / _5157.w);highp float _5203 = _5169.z;highp vec3 _5206 = vec3((_5169.xy * 0.5) + vec2(0.5), _5203);highp vec3 _5211 = vec3((_5176.xy * 0.5) + vec2(0.5), _5176.z) - _5206;float _5052 = 1.0 / float(_5042);highp float _5060 = abs((_5163.xyz * (1.0 / _5163.w)).z - _5203) * _5052;uint _7395;highp float _7396;highp vec3 _7398;_7396 = (_5052 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _5052;_7395 = 0u;_7398 = _7322;highp vec3 _5085;highp vec3 _7397;float _7410;if (_7395 < _5042)_5085 = _5206 + (_5211 * _7396);if (abs(_5060 - (textureLod(light_structure, _5085.xy, 0.0).x - _5085.z)) < _5060)_7410 = 1.0;_7397 = _5085;_7396 += _5052;_7395++;_7398 = _5085;_7410 = 0.0;_7397 = _7398;highp vec2 _5120 = max((abs(_7397.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_7416 = _7410 * clamp(1.0 - dot(_5120, _5120), 0.0, 1.0);_7416 = 0.0;_7412 = _7416;_7412 = 0.0;float _4516 = _7394 * (1.0 - _7412);if (_4516 <= 0.0)_7421 = _4516;_7421 = 1.0;vec3 _5244 = normalize(_3391 + _7349);float _5247 = clamp(_4543, 0.0, 1.0);vec3 _5335 = cross(_3384, _5244);float _5341 = clamp(dot(_3384, _5244), 0.0, 1.0) * _3579;float _5348 = _3579 / (dot(_5335, _5335) + (_5341 * _5341));float _5389 = pow(1.0 - clamp(dot(_7349, _5244), 0.0, 1.0), 5.0);_7432 = _3738 + ((((_3542 * 0.3183098733425140380859375) + (((vec3(_5389) + (_3559 * (1.0 - _5389))) * (min((_5348 * _5348) * 0.3183098733425140380859375, 65504.0) * min(0.5 / mix((2.0 * _5247) * _3444, _5247 + _3444, _3579), 65504.0))) * _3598)) * _4532.xyz) * ((_4532.w * _5247) * _7421));highp uvec2 _5557 = uvec2((vec3(_3747, _3399.y, gl_FragCoord.z).xy * frameUniforms.i.xy) * vec2(frameUniforms.z, frameUniforms.v));uint _5539 = ((_5557.x * frameUniforms.r) + (_5557.y * frameUniforms.x.x)) + (uint(clamp((log2((frameUniforms.w.x * gl_FragCoord.z) + frameUniforms.w.y) * frameUniforms.w.z) + frameUniforms.w.w, 0.0, frameUniforms.w.w - 1.0)) * frameUniforms.x.y);uvec4 _5596 = texelFetch(light_froxels, ivec2(int(_5539 & 63u), int(_5539 >> 6u)), 0);uint _5599 = _5596.x;uint _5433 = _5599 + (_5596.y & 255u);vec3 _7452;vec4 _7459;highp vec3 _7492;_7492 = _7322;_7459 = _7324;_7452 = _7432;vec4 _7269;vec3 _7540;highp vec3 _7552;for (uint _7451 = _5599; _7451 < _5433; _7492 = _7552, _7459 = _7269, _7452 = _7540, _7451++)highp uvec4 _5743 = froxelRecordUniforms.a[_7451 >> 4u];highp uint _5760 = (_5743[(_7451 >> 2u) & 3u] >> ((_7451 & 3u) * 8u)) & 255u;highp vec2 _5644 = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_5760][2].x));highp uint _5661 = floatBitsToUint(lightsUniforms.a[_5760][3].z);highp uint _5664 = floatBitsToUint(lightsUniforms.a[_5760][3].w);highp vec3 _5669 = lightsUniforms.a[_5760][0].xyz - vertex_worldPosition.xyz;vec4 _7263 = _7459;_7263.x = _5644.x;vec4 _7265 = _7263;_7265.y = _5644.y;vec4 _7267 = _7265;_7267.z = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_5760][2].y)).x;highp float _5768 = lightsUniforms.a[_5760][3].y * frameUniforms.bz;_7269 = _7267;_7269.w = _5768;highp vec3 _5684 = normalize(_5669);highp float _5778 = dot(_5669, _5669);float _5808 = _5778 * lightsUniforms.a[_5760][0].w;float _5813 = clamp(1.0 - (_5808 * _5808), 0.0, 1.0);highp vec3 _5784 = vertex_worldPosition.xyz - frameUniforms.j;float _5801 = ((_5813 * _5813) * clamp(frameUniforms.n.x - (dot(_5784, _5784) * frameUniforms.n.y), 0.0, 1.0)) / max(_5778, 9.9999997473787516355514526367188e-05);float _5695 = clamp(dot(_3384, _5684), 0.0, 1.0);uint _7477;uint _7478;bool _7479;bool _7480;float _7481;if ((_5661 & 1u) == 1u)highp float _5834 = clamp((dot(-lightsUniforms.a[_5760][1].xyz, _5684) * lightsUniforms.a[_5760][2].z) + lightsUniforms.a[_5760][2].w, 0.0, 1.0);_7481 = _5801 * (_5834 * _5834);_7480 = (_5664 & 65536u) != 0u;_7479 = (_5661 & 16u) != 0u;_7478 = (_5661 >> 8u) & 255u;_7477 = (_5661 >> 16u) & 255u;_7481 = _5801;_7480 = false;_7479 = false;_7478 = 0u;_7477 = 0u;if ((_5664 & _4456) == 0u)_7552 = _7492;_7540 = _7452;bool _5454 = _5695 <= 0.0;bool _5461;if (!_5454)_5461 = _7481 <= 0.0;_5461 = _5454;if (_5461)float _7518;highp vec3 _7555;if (_5695 > 0.0)float _7484;if (_7480)highp float _5900 = clamp(dot(_3384, shadowUniforms.a[_7478].direction), 0.0, 1.0);highp vec3 _5910 = vertex_worldPosition.xyz + (_3384 * (sqrt(1.0 - (_5900 * _5900)) * (shadowUniforms.a[_7478].normalBias * dot(shadowUniforms.a[_7478].lightFromWorldZ, vec4(vertex_worldPosition.xyz, 1.0)))));highp vec4 _5927 = (shadowUniforms.a[_7478].lightFromWorldMatrix[0] * _5910.x) + ((shadowUniforms.a[_7478].lightFromWorldMatrix[1] * _5910.y) + ((shadowUniforms.a[_7478].lightFromWorldMatrix[2] * _5910.z) + shadowUniforms.a[_7478].lightFromWorldMatrix[3]));highp vec3 _6016 = _5927.xyz * (1.0 / _5927.w);highp vec2 _6023 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);highp vec2 _6025 = vec2(1.0) / _6023;highp vec2 _6030 = clamp(_6016.xy, vec2(-1.0), vec2(2.0));highp vec3 _7273 = _7560;_7273.x = _6030.x;highp vec3 _7275 = _7273;_7275.y = _6030.y;highp vec2 _6040 = (_7275.xy * _6023) + vec2(0.5);highp vec2 _6046 = (floor(_6040) - vec2(0.5)) * _6025;highp vec2 _6048 = fract(_6040);highp float _6050 = _6048.x;highp float _6051 = 2.0 * _6050;highp float _6052 = 3.0 - _6051;highp float _6056 = 1.0 + _6051;highp float _6059 = _6048.y;highp float _6060 = 2.0 * _6059;highp float _6061 = 3.0 - _6060;highp float _6065 = 1.0 + _6060;highp vec2 _6098 = vec2(((2.0 - _6050) / _6052) - 1.0, (_6050 / _6056) + 1.0) * _6025.x;highp vec2 _6102 = vec2(((2.0 - _6059) / _6061) - 1.0, (_6059 / _6065) + 1.0) * _6025.y;highp float _6110 = _6098.x;highp float _6112 = _6102.x;float _6176 = float(_7477);float _6178 = clamp(_6016.z, 0.0, 1.0);highp float _6127 = _6098.y;highp float _6146 = _6102.y;_7484 = (((((_6052 * _6061) * texture(light_shadowMap, vec4(vec4(_6046 + vec2(_6110, _6112), _6176, _6178).xyz, _6178))) + ((_6056 * _6061) * texture(light_shadowMap, vec4(vec4(_6046 + vec2(_6127, _6112), _6176, _6178).xyz, _6178)))) + ((_6052 * _6065) * texture(light_shadowMap, vec4(vec4(_6046 + vec2(_6110, _6146), _6176, _6178).xyz, _6178)))) + ((_6056 * _6065) * texture(light_shadowMap, vec4(vec4(_6046 + vec2(_6127, _6146), _6176, _6178).xyz, _6178)))) * 0.0625;_7484 = 1.0;float _7516;highp vec3 _7553;if (_7479 && (_7484 > 0.0))float _7517;highp vec3 _7554;uint _6240 = (frameUniforms.iz >> 8u) & 255u;highp vec4 _6348 = frameUniforms.e * vec4(vertex_worldPosition.xyz, 1.0);highp vec4 _6355 = frameUniforms.e * vec4(vertex_worldPosition.xyz + (_5684 * frameUniforms.kz), 1.0);highp vec4 _6361 = _6348 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));highp vec3 _6367 = _6348.xyz * (1.0 / _6348.w);highp vec3 _6374 = _6355.xyz * (1.0 / _6355.w);highp float _6401 = _6367.z;highp vec3 _6404 = vec3((_6367.xy * 0.5) + vec2(0.5), _6401);highp vec3 _6409 = vec3((_6374.xy * 0.5) + vec2(0.5), _6374.z) - _6404;float _6250 = 1.0 / float(_6240);highp float _6258 = abs((_6361.xyz * (1.0 / _6361.w)).z - _6401) * _6250;uint _7485;highp float _7486;highp vec3 _7488;_7486 = (_6250 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _6250;_7485 = 0u;_7488 = _7492;highp vec3 _6283;highp vec3 _7487;float _7512;if (_7485 < _6240)_6283 = _6404 + (_6409 * _7486);if (abs(_6258 - (textureLod(light_structure, _6283.xy, 0.0).x - _6283.z)) < _6258)_7512 = 1.0;_7487 = _6283;_7486 += _6250;_7485++;_7488 = _6283;_7512 = 0.0;_7487 = _7488;highp vec2 _6318 = max((abs(_7487.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_7554 = _7487;_7517 = _7484 * (1.0 - (_7512 * clamp(1.0 - dot(_6318, _6318), 0.0, 1.0)));_7554 = _7492;_7517 = _7484;_7553 = _7554;_7516 = _7517;_7553 = _7492;_7516 = _7484;if (_7516 <= 0.0)_7552 = _7553;_7555 = _7553;_7518 = _7516;_7555 = _7492;_7518 = 1.0;vec3 _6442 = normalize(_3391 + _5684);float _6445 = clamp(_5695, 0.0, 1.0);vec3 _6533 = cross(_3384, _6442);float _6539 = clamp(dot(_3384, _6442), 0.0, 1.0) * _3579;float _6546 = _3579 / (dot(_6533, _6533) + (_6539 * _6539));float _6587 = pow(1.0 - clamp(dot(_5684, _6442), 0.0, 1.0), 5.0);_7552 = _7555;_7540 = _7452 + ((((_3542 * 0.3183098733425140380859375) + (((vec3(_6587) + (_3559 * (1.0 - _6587))) * (min((_6546 * _6546) * 0.3183098733425140380859375, 65504.0) * min(0.5 / mix((2.0 * _6445) * _3444, _6445 + _3444, _3579), 65504.0))) * _3598)) * _7269.xyz) * (((_5768 * _7481) * _6445) * _7518));fragColor = vec4(_7452, 1.0);bvec4 _6629 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * vertex_worldPosition.x) + ((frameUniforms.a[1] * vertex_worldPosition.y) + ((frameUniforms.a[2] * vertex_worldPosition.z) + frameUniforms.a[3]))).z));uint _6639 = clamp(uint(dot(vec4(_6629.x ? vec4(1.0).x : vec4(0.0).x, _6629.y ? vec4(1.0).y : vec4(0.0).y, _6629.z ? vec4(1.0).z : vec4(0.0).z, _6629.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);vec3 _7453;if (_6639 == 0u)_7453 = vec3(0.0, 1.0, 0.0);if (_6639 == 1u)_7453 = vec3(0.0, 0.0, 1.0);if (_6639 == 2u)_7453 = vec3(1.0, 1.0, 0.0);if (_6639 == 3u)_7453 = vec3(1.0, 0.0, 0.0);if (_6639 == 4u)_7453 = vec3(1.0, 0.0, 1.0);if (_6639 == 5u)_7453 = vec3(0.0, 1.0, 1.0);_7453 = _6696;vec4 _3324 = fragColor;vec3 _3326 = _3324.xyz * _7453;fragColor.x = _3326.x;fragColor.y = _3326.y;fragColor.z = _3326.z;highp vec3 _3337 = vertex_worldPosition.xyz - frameUniforms.j;vec4 _7458;float _6731 = length(_3337);float _6734 = max(0.001000000047497451305389404296875, _3337.y);float _6744 = frameUniforms.qz * ((1.0 - exp((-frameUniforms.oz) * _6734)) / _6734);float _6760 = min(max(1.0 - exp2(-(_6744 * max(_6731 - frameUniforms.lz, 0.0))), 0.0), frameUniforms.mz);vec3 _7454;_7454 = frameUniforms.pz * (textureLod(light_iblSpecular, _3337, frameUniforms.fz).xyz * frameUniforms.az);_7454 = frameUniforms.pz;vec3 _6782 = _7454 * _6760;vec3 _7457;_7457 = _6782 + ((_4532.xyz * frameUniforms.l.w) * (pow(max(dot(_3337, _4535) / _6731, 0.0), frameUniforms.sz) * max(1.0 - exp2(-(_6744 * max(_6731 - frameUniforms.rz, 0.0))), 0.0)));_7457 = _6782;vec3 _6830 = (fragColor.xyz * (1.0 - _6760)) + _7457;vec4 _7317 = fragColor;_7317.x = _6830.x;vec4 _7319 = _7317;_7319.y = _6830.y;vec4 _7321 = _7319;_7321.z = _6830.z;_7458 = _7321;_7458 = fragColor;fragColor = _7458;layout(location = 0) out highp uvec2 outPicking;outPicking.x = objectUniforms.f;outPicking.y = floatBitsToUint(vertex_position.z / vertex_position.w);fragColor = vec4(0.0);const vec2 _695[64] = vec2[](vec2(0.5117490291595458984375, 0.54768598079681396484375), vec2(0.58929002285003662109375, 0.2572239935398101806640625), vec2(0.16501800715923309326171875, 0.57662999629974365234375), vec2(0.4076919853687286376953125, 0.7422850131988525390625), vec2(0.707011997699737548828125, 0.646522998809814453125), vec2(0.3146300017833709716796875, 0.466825008392333984375), vec2(0.80125701427459716796875, 0.4851860105991363525390625), vec2(0.41813600063323974609375, 0.14651699364185333251953125), vec2(0.579888999462127685546875, 0.03682839870452880859375), vec2(0.79800999164581298828125, 0.14011399447917938232421875), vec2(-0.041318498551845550537109375, 0.371455013751983642578125), vec2(-0.0529108010232448577880859375, 0.6273519992828369140625), vec2(0.082137502729892730712890625, 0.882071018218994140625), vec2(0.1730799973011016845703125, 0.301207005977630615234375), vec2(-0.12045200169086456298828125, 0.86721599102020263671875), vec2(0.3710959851741790771484375, 0.916454017162322998046875), vec2(-0.1783809959888458251953125, 0.1461009979248046875), vec2(-0.2764889895915985107421875, 0.550525009632110595703125), vec2(0.1254200041294097900390625, 0.126643002033233642578125), vec2(-0.2966539859771728515625, 0.286879003047943115234375), vec2(0.2617439925670623779296875, -0.0060497499071061611175537109375), vec2(-0.213416993618011474609375, 0.715776026248931884765625), vec2(0.4256840050220489501953125, -0.15321099758148193359375), vec2(-0.4800539910793304443359375, 0.3213570117950439453125), vec2(-0.071787796914577484130859375, -0.02505669929087162017822265625), vec2(-0.328774988651275634765625, -0.16966600716114044189453125), vec2(-0.3949230015277862548828125, 0.1308020055294036865234375), vec2(-0.55368101596832275390625, -0.17677700519561767578125), vec2(-0.7226150035858154296875, 0.120615996420383453369140625), vec2(-0.693064987659454345703125, 0.309017002582550048828125), vec2(0.603192985057830810546875, 0.791471004486083984375), vec2(-0.075494103133678436279296875, -0.297987997531890869140625), vec2(0.109302997589111328125, -0.1564719974994659423828125), vec2(0.2606050074100494384765625, -0.280111014842987060546875), vec2(0.129730999469757080078125, -0.4879539906978607177734375), vec2(-0.53731501102447509765625, 0.520493984222412109375), vec2(-0.42757999897003173828125, 0.800607025623321533203125), vec2(0.77309000492095947265625, -0.0728102028369903564453125), vec2(0.9087769985198974609375, 0.3283559978008270263671875), vec2(0.985341012477874755859375, 0.07591579854488372802734375), vec2(0.947535991668701171875, -0.118369996547698974609375), vec2(-0.103315003216266632080078125, -0.61074697971343994140625), vec2(0.3371709883213043212890625, -0.58399999141693115234375), vec2(0.2109189927577972412109375, -0.72005498409271240234375), vec2(0.418940007686614990234375, -0.3676899969577789306640625), vec2(-0.25422799587249755859375, -0.49368000030517578125), vec2(-0.428561985492706298828125, -0.404036998748779296875), vec2(-0.831731975078582763671875, -0.18961499631404876708984375), vec2(-0.9226419925689697265625, 0.088802598416805267333984375), vec2(-0.86591398715972900390625, 0.427794992923736572265625), vec2(0.706116974353790283203125, -0.3116619884967803955078125), vec2(0.545464992523193359375, -0.5209419727325439453125), vec2(-0.695738017559051513671875, 0.66449201107025146484375), vec2(0.389420986175537109375, -0.899007022380828857421875), vec2(0.488420009613037109375, -0.708054006099700927734375), vec2(0.7602980136871337890625, -0.62734997272491455078125), vec2(-0.3907879889011383056640625, -0.707387983798980712890625), vec2(-0.59104597568511962890625, -0.686721026897430419921875), vec2(-0.769903004169464111328125, -0.4137749969959259033203125), vec2(-0.60445702075958251953125, -0.50257098674774169921875), vec2(-0.557233989238739013671875, 0.0045136199332773685455322265625), vec2(0.14757199585437774658203125, -0.92435300350189208984375), vec2(-0.066248796880245208740234375, -0.8920810222625732421875), vec2(0.863831996917724609375, -0.407205998897552490234375));uniform highp sampler2DArray light_shadowMap;vec3 _6166;vec4 _6168;float _6364;vec4 _6365;vec3 _5816;bool _3664;highp vec3 _3229 = normalize(vertex_worldNormal);highp vec3 _3236 = normalize(frameUniforms.j - vertex_worldPosition.xyz);highp vec2 _3244 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);float _3289 = max(dot(_3229, _3236), 9.9999997473787516355514526367188e-05);vec3 _3282 = reflect(-_3236, _3229);vec4 _6024 = vec4(1.0);_6024.x = materialParams.a.x;vec4 _6026 = _6024;_6026.y = materialParams.a.y;vec4 _6028 = _6026;_6028.z = materialParams.a.z;float _3381 = 1.0 - materialParams.b;vec3 _3382 = _6028.xyz * _3381;vec3 _3399 = (_6028.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _3381);float _3409 = clamp(materialParams.c, 0.08900000154972076416015625, 1.0);float _3419 = _3409 * _3409;vec4 _3453 = textureLod(light_iblDFG, vec2(_3289, _3409), 0.0);vec3 _3438 = vec3(1.0) + (_3399 * ((1.0 / _3453.y) - 1.0));highp float _3587 = _3244.x;vec3 _3600 = mix(_3453.xxx, _3453.yyy, _3399);float _3613 = _3419 * _3419;float _6169;highp vec4 _6170;_3664 = frameUniforms.vz > 0.0;if (_3664)highp vec3 _3687 = vec3(_3587, _3244.y, 0.0);vec4 _3688 = textureLodOffset(light_ssao, _3687, 0.0, ivec2(0, 1));vec4 _3696 = textureLodOffset(light_ssao, _3687, 0.0, ivec2(1));vec4 _3704 = textureLodOffset(light_ssao, _3687, 0.0, ivec2(1, 0));vec4 _3712 = textureLodOffset(light_ssao, _3687, 0.0, ivec2(0));vec4 _6047 = _6168;_6047.x = (_3688.y * 0.996108949184417724609375) + (_3688.z * 0.00389105058275163173675537109375);vec4 _6053 = _6047;_6053.y = (_3696.y * 0.996108949184417724609375) + (_3696.z * 0.00389105058275163173675537109375);vec4 _6059 = _6053;_6059.z = (_3704.y * 0.996108949184417724609375) + (_3704.z * 0.00389105058275163173675537109375);vec4 _6065 = _6059;_6065.w = (_3712.y * 0.996108949184417724609375) + (_3712.z * 0.00389105058275163173675537109375);highp vec2 _3780 = fract((vec3(_3587, _3244.y, _6364).xy * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _3782 = _3780.x;float _3783 = 1.0 - _3782;float _3785 = _3780.y;vec4 _6069 = _6168;_6069.x = _3783 * _3785;vec4 _6073 = _6069;_6073.y = _3782 * _3785;float _3798 = 1.0 - _3785;vec4 _6077 = _6073;_6077.z = _3782 * _3798;vec4 _6081 = _6077;_6081.w = _3783 * _3798;vec4 _3828 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), vertex_worldPosition.xyz) + frameUniforms.a[3].z) - (_6065 * (-frameUniforms.gz))) * frameUniforms.vz;highp vec4 _3836 = max(vec4(6.103515625e-05), vec4(1.0) - (_3828 * _3828)) * _6081;highp vec4 _3850 = _3836 / vec4(((_3836.x + _3836.y) + _3836.z) + _3836.w);_6170 = _3850;_6169 = dot(vec4(_3688.x, _3696.x, _3704.x, _3712.x), _3850);_6170 = _6168;_6169 = textureLod(light_ssao, vec3(_3587, _3244.y, 0.0), 0.0).x;float _3508 = min(1.0, _6169);float _6178;vec3 _6172;highp vec3 _3936 = vec3(_3587, _3244.y, 1.0);vec4 _3937 = textureLodOffset(light_ssao, _3936, 0.0, ivec2(0, 1));vec4 _3944 = textureLodOffset(light_ssao, _3936, 0.0, ivec2(1));vec4 _3951 = textureLodOffset(light_ssao, _3936, 0.0, ivec2(1, 0));vec4 _3958 = textureLodOffset(light_ssao, _3936, 0.0, ivec2(0));vec3 _6103 = _6166;_6103.x = dot(vec4(_3937.x, _3944.x, _3951.x, _3958.x), _6170);vec3 _6105 = _6103;_6105.y = dot(vec4(_3937.y, _3944.y, _3951.y, _3958.y), _6170);vec3 _6107 = _6105;_6107.z = dot(vec4(_3937.z, _3944.z, _3951.z, _3958.z), _6170);_6172 = _6107;_6172 = textureLod(light_ssao, vec3(_3587, _3244.y, 1.0), 0.0).xyz;float _4148;float _4031 = sqrt(1.0 - _3508);float _4035 = exp2((-3.3219280242919921875) * _3613);float _4038 = dot(normalize((_6172 * 2.0) - vec3(1.0)), _3282);float _6174;float _4139 = (((-0.15658269822597503662109375) * _4031) + 1.57079601287841796875) * sqrt(1.0 - _4031);_4148 = 1.0 - _4035;float _4150 = (((-0.15658269822597503662109375) * _4035) + 1.57079601287841796875) * sqrt(_4148);float _4157 = abs(_4038);float _4165 = (((-0.15658269822597503662109375) * _4157) + 1.57079601287841796875) * sqrt(1.0 - _4157);float _6173;if (_4038 >= 0.0)_6173 = _4165;_6173 = 3.1415927410125732421875 - _4165;float _4088;if (min(_4139, _4150) <= (max(_4139, _4150) - _6173))_6174 = 1.0 - max(_4031, _4035);_4088 = _4139 + _4150;if (_4088 <= _6173)_6174 = 0.0;float _4102 = abs(_4139 - _4150);float _4114 = 1.0 - clamp((_6173 - _4102) / max(_4088 - _4102, 9.9999997473787516355514526367188e-05), 0.0, 1.0);_6174 = ((_4114 * _4114) * (((-2.0) * _4114) + 3.0)) * (1.0 - max(_4031, _4035));_6178 = min(1.0, mix(1.0, _6174 / _4148, smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _3419)));_6178 = 1.0;vec3 _6184;_6184 = textureLod(light_iblSpecular, _3229, frameUniforms.fz).xyz;float _4208 = _3229.y;float _4213 = _3229.z;float _4218 = _3229.x;_6184 = max((((((((frameUniforms.dz[0] + (frameUniforms.dz[1] * _4208)) + (frameUniforms.dz[2] * _4213)) + (frameUniforms.dz[3] * _4218)) + (frameUniforms.dz[4] * (_4208 * _4218))) + (frameUniforms.dz[5] * (_4208 * _4213))) + (frameUniforms.dz[6] * (((3.0 * _4213) * _4213) - 1.0))) + (frameUniforms.dz[7] * (_4213 * _4218))) + (frameUniforms.dz[8] * ((_4218 * _4218) - (_4208 * _4208))), vec3(0.0));vec3 _3578 = (((_3600 * textureLod(light_iblSpecular, mix(_3282, _3229, vec3(_3613)), (frameUniforms.fz * _3409) * (2.0 - _3409)).xyz) * (_3438 * _6178)) * frameUniforms.az) + ((((_3382 * _6184) * (vec3(1.0) - _3600)) * _3508) * frameUniforms.az);vec3 _6354;vec3 _6193;float _4405 = dot(frameUniforms.q, _3282);highp vec3 _6192;if (_4405 < frameUniforms.m.x)_6192 = normalize((frameUniforms.q * frameUniforms.m.x) + (normalize(_3282 - (frameUniforms.q * _4405)) * frameUniforms.m.y));_6192 = _3282;_6193 = _6192;_6193 = frameUniforms.q;float _4383 = clamp(dot(_3229, _6193), 0.0, 1.0);_6354 = _3578;if (_4383 <= 0.0)float _6333;if (_4383 > 0.0)bvec4 _4447 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * vertex_worldPosition.x) + ((frameUniforms.a[1] * vertex_worldPosition.y) + ((frameUniforms.a[2] * vertex_worldPosition.z) + frameUniforms.a[3]))).z));uint _4457 = clamp(uint(dot(vec4(_4447.x ? vec4(1.0).x : vec4(0.0).x, _4447.y ? vec4(1.0).y : vec4(0.0).y, _4447.z ? vec4(1.0).z : vec4(0.0).z, _4447.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);float _6286;if (((frameUniforms.iz & 1u) != 0u) && ((frameUniforms.uz & ((1u << _4457) << 8u)) != 0u))float _6285;highp vec4 _6236;if (_4457 == 0u)_6236 = vertex_lightSpacePosition;_6236 = (frameUniforms.g[_4457][0] * vertex_worldPosition.x) + ((frameUniforms.g[_4457][1] * vertex_worldPosition.y) + ((frameUniforms.g[_4457][2] * vertex_worldPosition.z) + frameUniforms.g[_4457][3]));if (frameUniforms.ezz == 1u)vec4 _4596 = texture(light_shadowMap, vec3(_6236.xy * (1.0 / _6236.w), float(_4457)));highp float _4606 = exp(frameUniforms.bzz * ((_6236.z * 2.0) - 1.0));highp float _4618 = frameUniforms.czz * _4606;highp float _4632 = _4596.x;highp float _4637 = max(_4596.y - (_4632 * _4632), _4618 * _4618);highp float _4639 = _4606 - _4632;_6285 = (_4606 <= _4632) ? 1.0 : clamp(((_4637 / (_4637 + (_4639 * _4639))) - frameUniforms.dzz) / (1.0 - frameUniforms.dzz), 0.0, 1.0);if (frameUniforms.ezz == 2u)float _6284;highp vec3 _4688 = _6236.xyz * (1.0 / _6236.w);highp vec3 _4744 = dFdx(_4688);highp vec3 _4745 = dFdy(_4688);highp vec2 _4764 = inverse(transpose(mat2(vec2(_4744.xy), vec2(_4745.xy)))) * vec2(_4744.z, _4745.z);float _4790 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _4792 = cos(_4790);float _4794 = sin(_4790);mat2 _4807 = mat2(vec2(_4792, _4794), vec2(-_4794, _4792));highp vec2 _4704 = _4688.xy;highp float _4706 = _4688.z;highp vec2 _4709 = (vec2(1.0) / vec2(vec3(textureSize(light_shadowMap, 0)).xy)) * frameUniforms.s;float _6280;float _6281;_6281 = 0.0;_6280 = 0.0;for (uint _6279 = 0u; _6279 < 12u; )highp vec2 _4833 = _4807 * (_695[_6279] * _4709);vec4 _4841 = textureLod(light_shadowMap, vec3(_4704 + _4833, float(_4457)), 0.0);float _4842 = _4841.x;float _4849 = step(dot(_4764, _4833), _4842 - _4706);_6281 += (_4842 * _4849);_6280 += _4849;_6279++;if (_6281 == 0.0)_6284 = 1.0;float _4722 = _6281 / _6280;float _4894 = (_6280 * 0.16666667163372039794921875) - 1.0;float _4896 = sign(_4894);float _4900 = 1.0 - (_4896 * _4894);_6284 = 1.0 - mix((0.5 * (_4896 - (((_4900 * _4900) * _4900) * _4896))) + 0.5, _6280 * 0.083333335816860198974609375, clamp(((_4722 - _4706) / (1.0 - _4722)) * frameUniforms.u, 0.0, 1.0));_6285 = _6284;if (frameUniforms.ezz == 3u)float _6277;highp vec2 _4942 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);highp vec2 _4944 = vec2(1.0) / _4942;highp vec3 _4948 = _6236.xyz * (1.0 / _6236.w);highp vec3 _5001 = dFdx(_4948);highp vec3 _5002 = dFdy(_4948);highp vec2 _5021 = inverse(transpose(mat2(vec2(_5001.xy), vec2(_5002.xy)))) * vec2(_5001.z, _5002.z);float _5047 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _5049 = cos(_5047);float _5051 = sin(_5047);mat2 _5064 = mat2(vec2(_5049, _5051), vec2(-_5051, _5049));highp vec2 _4956 = _4948.xy;highp float _4958 = _4948.z;highp vec2 _4961 = _4944 * frameUniforms.s;float _6258;float _6259;_6259 = 0.0;_6258 = 0.0;for (uint _6257 = 0u; _6257 < 16u; )highp vec2 _5090 = _5064 * (_695[_6257] * _4961);vec4 _5098 = textureLod(light_shadowMap, vec3(_4956 + _5090, float(_4457)), 0.0);float _5099 = _5098.x;float _5106 = step(dot(_5021, _5090), _5099 - _4958);_6259 += (_5099 * _5106);_6258 += _5106;_6257++;if (_6259 == 0.0)_6277 = 1.0;float _4974 = _6259 / _6258;highp vec2 _4987 = _4944 * (frameUniforms.s * (((_4974 - _4958) / (1.0 - _4974)) * frameUniforms.u));float _6262;_6262 = 0.0;for (uint _6261 = 0u; _6261 < 16u; )highp vec2 _5166 = _5064 * (_695[_6261] * _4987);highp vec2 _5171 = ((_4956 + _5166) * _4942) - vec2(0.5);highp vec2 _5173 = fract(_5171);highp ivec3 _5180 = ivec3(ivec2(_5171), int(_4457));vec4 _6128 = _6365;_6128.x = texelFetchOffset(light_shadowMap, _5180, 0, ivec2(0, 1)).x;vec4 _6130 = _6128;_6130.y = texelFetchOffset(light_shadowMap, _5180, 0, ivec2(1)).x;vec4 _6132 = _6130;_6132.z = texelFetchOffset(light_shadowMap, _5180, 0, ivec2(1, 0)).x;vec4 _6134 = _6132;_6134.w = texelFetchOffset(light_shadowMap, _5180, 0, ivec2(0)).x;vec4 _5226 = step(vec4(dot(_5021, _5166)), _6134 - vec4(_4958));highp float _5232 = _5173.x;_6262 += mix(mix(_5226.w, _5226.z, _5232), mix(_5226.x, _5226.y, _5232), _5173.y);_6261++;_6277 = 1.0 - (_6262 * 0.0625);_6285 = _6277;if (frameUniforms.ezz == 0u)highp vec3 _5267 = _6236.xyz * (1.0 / _6236.w);highp vec2 _5280 = (_5267.xy * vec2(vec3(textureSize(light_shadowMap, 0)).xy)) - vec2(0.5);highp ivec3 _5286 = ivec3(ivec2(_5280), int(_4457));vec4 _6143 = _6365;_6143.x = texelFetchOffset(light_shadowMap, _5286, 0, ivec2(0, 1)).x;vec4 _6145 = _6143;_6145.y = texelFetchOffset(light_shadowMap, _5286, 0, ivec2(1)).x;vec4 _6147 = _6145;_6147.z = texelFetchOffset(light_shadowMap, _5286, 0, ivec2(1, 0)).x;vec4 _6149 = _6147;_6149.w = texelFetchOffset(light_shadowMap, _5286, 0, ivec2(0)).x;highp vec4 _5316 = step(vec4(0.0), _5267.zzzz - _6149);highp vec2 _5318 = fract(_5280);highp float _5324 = _5318.x;_6285 = mix(mix(_5316.w, _5316.z, _5324), mix(_5316.x, _5316.y, _5324), _5318.y);_6285 = 0.0;_6286 = _6285;_6286 = 1.0;float _6314;if (((frameUniforms.iz & 2u) != 0u) && (_6286 > 0.0))float _6328;uint _5360 = (frameUniforms.iz >> 8u) & 255u;highp vec4 _5468 = frameUniforms.e * vec4(vertex_worldPosition.xyz, 1.0);highp vec4 _5475 = frameUniforms.e * vec4(vertex_worldPosition.xyz + (_6193 * frameUniforms.kz), 1.0);highp vec4 _5481 = _5468 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));highp vec3 _5487 = _5468.xyz * (1.0 / _5468.w);highp vec3 _5494 = _5475.xyz * (1.0 / _5475.w);highp float _5521 = _5487.z;highp vec3 _5524 = vec3((_5487.xy * 0.5) + vec2(0.5), _5521);highp vec3 _5529 = vec3((_5494.xy * 0.5) + vec2(0.5), _5494.z) - _5524;float _5370 = 1.0 / float(_5360);highp float _5378 = abs((_5481.xyz * (1.0 / _5481.w)).z - _5521) * _5370;uint _6287;highp float _6288;highp vec3 _6290;_6288 = (_5370 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _5370;_6287 = 0u;_6290 = _6166;highp vec3 _5403;highp vec3 _6289;float _6312;if (_6287 < _5360)_5403 = _5524 + (_5529 * _6288);if (abs(_5378 - (textureLod(light_structure, _5403.xy, 0.0).x - _5403.z)) < _5378)_6312 = 1.0;_6289 = _5403;_6288 += _5370;_6287++;_6290 = _5403;_6312 = 0.0;_6289 = _6290;highp vec2 _5438 = max((abs(_6289.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_6328 = _6312 * clamp(1.0 - dot(_5438, _5438), 0.0, 1.0);_6328 = 0.0;_6314 = _6328;_6314 = 0.0;float _4356 = _6286 * (1.0 - _6314);if (_4356 <= 0.0)_6333 = _4356;_6333 = 1.0;vec3 _5562 = normalize(_3236 + _6193);float _5565 = clamp(_4383, 0.0, 1.0);vec3 _5653 = cross(_3229, _5562);float _5659 = clamp(dot(_3229, _5562), 0.0, 1.0) * _3419;float _5666 = _3419 / (dot(_5653, _5653) + (_5659 * _5659));float _5707 = pow(1.0 - clamp(dot(_6193, _5562), 0.0, 1.0), 5.0);_6354 = _3578 + ((((_3382 * 0.3183098733425140380859375) + (((vec3(_5707) + (_3399 * (1.0 - _5707))) * (min((_5666 * _5666) * 0.3183098733425140380859375, 65504.0) * min(0.5 / mix((2.0 * _5565) * _3289, _5565 + _3289, _3419), 65504.0))) * _3438)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _5565) * _6333));fragColor = vec4(_6354, 1.0);bvec4 _5749 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * vertex_worldPosition.x) + ((frameUniforms.a[1] * vertex_worldPosition.y) + ((frameUniforms.a[2] * vertex_worldPosition.z) + frameUniforms.a[3]))).z));uint _5759 = clamp(uint(dot(vec4(_5749.x ? vec4(1.0).x : vec4(0.0).x, _5749.y ? vec4(1.0).y : vec4(0.0).y, _5749.z ? vec4(1.0).z : vec4(0.0).z, _5749.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);vec3 _6355;if (_5759 == 0u)_6355 = vec3(0.0, 1.0, 0.0);if (_5759 == 1u)_6355 = vec3(0.0, 0.0, 1.0);if (_5759 == 2u)_6355 = vec3(1.0, 1.0, 0.0);if (_5759 == 3u)_6355 = vec3(1.0, 0.0, 0.0);if (_5759 == 4u)_6355 = vec3(1.0, 0.0, 1.0);if (_5759 == 5u)_6355 = vec3(0.0, 1.0, 1.0);_6355 = _5816;vec4 _3148 = fragColor;vec3 _3150 = _3148.xyz * _6355;fragColor.x = _3150.x;fragColor.y = _3150.y;fragColor.z = _3150.z;const vec2 _735[64] = vec2[](vec2(0.5117490291595458984375, 0.54768598079681396484375), vec2(0.58929002285003662109375, 0.2572239935398101806640625), vec2(0.16501800715923309326171875, 0.57662999629974365234375), vec2(0.4076919853687286376953125, 0.7422850131988525390625), vec2(0.707011997699737548828125, 0.646522998809814453125), vec2(0.3146300017833709716796875, 0.466825008392333984375), vec2(0.80125701427459716796875, 0.4851860105991363525390625), vec2(0.41813600063323974609375, 0.14651699364185333251953125), vec2(0.579888999462127685546875, 0.03682839870452880859375), vec2(0.79800999164581298828125, 0.14011399447917938232421875), vec2(-0.041318498551845550537109375, 0.371455013751983642578125), vec2(-0.0529108010232448577880859375, 0.6273519992828369140625), vec2(0.082137502729892730712890625, 0.882071018218994140625), vec2(0.1730799973011016845703125, 0.301207005977630615234375), vec2(-0.12045200169086456298828125, 0.86721599102020263671875), vec2(0.3710959851741790771484375, 0.916454017162322998046875), vec2(-0.1783809959888458251953125, 0.1461009979248046875), vec2(-0.2764889895915985107421875, 0.550525009632110595703125), vec2(0.1254200041294097900390625, 0.126643002033233642578125), vec2(-0.2966539859771728515625, 0.286879003047943115234375), vec2(0.2617439925670623779296875, -0.0060497499071061611175537109375), vec2(-0.213416993618011474609375, 0.715776026248931884765625), vec2(0.4256840050220489501953125, -0.15321099758148193359375), vec2(-0.4800539910793304443359375, 0.3213570117950439453125), vec2(-0.071787796914577484130859375, -0.02505669929087162017822265625), vec2(-0.328774988651275634765625, -0.16966600716114044189453125), vec2(-0.3949230015277862548828125, 0.1308020055294036865234375), vec2(-0.55368101596832275390625, -0.17677700519561767578125), vec2(-0.7226150035858154296875, 0.120615996420383453369140625), vec2(-0.693064987659454345703125, 0.309017002582550048828125), vec2(0.603192985057830810546875, 0.791471004486083984375), vec2(-0.075494103133678436279296875, -0.297987997531890869140625), vec2(0.109302997589111328125, -0.1564719974994659423828125), vec2(0.2606050074100494384765625, -0.280111014842987060546875), vec2(0.129730999469757080078125, -0.4879539906978607177734375), vec2(-0.53731501102447509765625, 0.520493984222412109375), vec2(-0.42757999897003173828125, 0.800607025623321533203125), vec2(0.77309000492095947265625, -0.0728102028369903564453125), vec2(0.9087769985198974609375, 0.3283559978008270263671875), vec2(0.985341012477874755859375, 0.07591579854488372802734375), vec2(0.947535991668701171875, -0.118369996547698974609375), vec2(-0.103315003216266632080078125, -0.61074697971343994140625), vec2(0.3371709883213043212890625, -0.58399999141693115234375), vec2(0.2109189927577972412109375, -0.72005498409271240234375), vec2(0.418940007686614990234375, -0.3676899969577789306640625), vec2(-0.25422799587249755859375, -0.49368000030517578125), vec2(-0.428561985492706298828125, -0.404036998748779296875), vec2(-0.831731975078582763671875, -0.18961499631404876708984375), vec2(-0.9226419925689697265625, 0.088802598416805267333984375), vec2(-0.86591398715972900390625, 0.427794992923736572265625), vec2(0.706116974353790283203125, -0.3116619884967803955078125), vec2(0.545464992523193359375, -0.5209419727325439453125), vec2(-0.695738017559051513671875, 0.66449201107025146484375), vec2(0.389420986175537109375, -0.899007022380828857421875), vec2(0.488420009613037109375, -0.708054006099700927734375), vec2(0.7602980136871337890625, -0.62734997272491455078125), vec2(-0.3907879889011383056640625, -0.707387983798980712890625), vec2(-0.59104597568511962890625, -0.686721026897430419921875), vec2(-0.769903004169464111328125, -0.4137749969959259033203125), vec2(-0.60445702075958251953125, -0.50257098674774169921875), vec2(-0.557233989238739013671875, 0.0045136199332773685455322265625), vec2(0.14757199585437774658203125, -0.92435300350189208984375), vec2(-0.066248796880245208740234375, -0.8920810222625732421875), vec2(0.863831996917724609375, -0.407205998897552490234375));vec3 _6583;vec4 _6585;float _6834;vec4 _6835;bool _3884;highp vec3 _3449 = normalize(vertex_worldNormal);highp vec3 _3456 = normalize(frameUniforms.j - vertex_worldPosition.xyz);highp vec2 _3464 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);float _3509 = max(dot(_3449, _3456), 9.9999997473787516355514526367188e-05);vec3 _3502 = reflect(-_3456, _3449);vec4 _6415 = vec4(1.0);_6415.x = materialParams.a.x;vec4 _6417 = _6415;_6417.y = materialParams.a.y;vec4 _6419 = _6417;_6419.z = materialParams.a.z;float _3601 = 1.0 - materialParams.b;vec3 _3602 = _6419.xyz * _3601;vec3 _3619 = (_6419.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _3601);float _3629 = clamp(materialParams.c, 0.08900000154972076416015625, 1.0);float _3639 = _3629 * _3629;vec4 _3673 = textureLod(light_iblDFG, vec2(_3509, _3629), 0.0);vec3 _3658 = vec3(1.0) + (_3619 * ((1.0 / _3673.y) - 1.0));highp float _3807 = _3464.x;vec3 _3820 = mix(_3673.xxx, _3673.yyy, _3619);float _3833 = _3639 * _3639;float _6586;highp vec4 _6587;_3884 = frameUniforms.vz > 0.0;if (_3884)highp vec3 _3907 = vec3(_3807, _3464.y, 0.0);vec4 _3908 = textureLodOffset(light_ssao, _3907, 0.0, ivec2(0, 1));vec4 _3916 = textureLodOffset(light_ssao, _3907, 0.0, ivec2(1));vec4 _3924 = textureLodOffset(light_ssao, _3907, 0.0, ivec2(1, 0));vec4 _3932 = textureLodOffset(light_ssao, _3907, 0.0, ivec2(0));vec4 _6438 = _6585;_6438.x = (_3908.y * 0.996108949184417724609375) + (_3908.z * 0.00389105058275163173675537109375);vec4 _6444 = _6438;_6444.y = (_3916.y * 0.996108949184417724609375) + (_3916.z * 0.00389105058275163173675537109375);vec4 _6450 = _6444;_6450.z = (_3924.y * 0.996108949184417724609375) + (_3924.z * 0.00389105058275163173675537109375);vec4 _6456 = _6450;_6456.w = (_3932.y * 0.996108949184417724609375) + (_3932.z * 0.00389105058275163173675537109375);highp vec2 _4000 = fract((vec3(_3807, _3464.y, _6834).xy * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _4002 = _4000.x;float _4003 = 1.0 - _4002;float _4005 = _4000.y;vec4 _6460 = _6585;_6460.x = _4003 * _4005;vec4 _6464 = _6460;_6464.y = _4002 * _4005;float _4018 = 1.0 - _4005;vec4 _6468 = _6464;_6468.z = _4002 * _4018;vec4 _6472 = _6468;_6472.w = _4003 * _4018;vec4 _4048 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), vertex_worldPosition.xyz) + frameUniforms.a[3].z) - (_6456 * (-frameUniforms.gz))) * frameUniforms.vz;highp vec4 _4056 = max(vec4(6.103515625e-05), vec4(1.0) - (_4048 * _4048)) * _6472;highp vec4 _4070 = _4056 / vec4(((_4056.x + _4056.y) + _4056.z) + _4056.w);_6587 = _4070;_6586 = dot(vec4(_3908.x, _3916.x, _3924.x, _3932.x), _4070);_6587 = _6585;_6586 = textureLod(light_ssao, vec3(_3807, _3464.y, 0.0), 0.0).x;float _3728 = min(1.0, _6586);float _6595;vec3 _6589;highp vec3 _4156 = vec3(_3807, _3464.y, 1.0);vec4 _4157 = textureLodOffset(light_ssao, _4156, 0.0, ivec2(0, 1));vec4 _4164 = textureLodOffset(light_ssao, _4156, 0.0, ivec2(1));vec4 _4171 = textureLodOffset(light_ssao, _4156, 0.0, ivec2(1, 0));vec4 _4178 = textureLodOffset(light_ssao, _4156, 0.0, ivec2(0));vec3 _6494 = _6583;_6494.x = dot(vec4(_4157.x, _4164.x, _4171.x, _4178.x), _6587);vec3 _6496 = _6494;_6496.y = dot(vec4(_4157.y, _4164.y, _4171.y, _4178.y), _6587);vec3 _6498 = _6496;_6498.z = dot(vec4(_4157.z, _4164.z, _4171.z, _4178.z), _6587);_6589 = _6498;_6589 = textureLod(light_ssao, vec3(_3807, _3464.y, 1.0), 0.0).xyz;float _4251 = sqrt(1.0 - _3728);float _4255 = exp2((-3.3219280242919921875) * _3833);float _4258 = dot(normalize((_6589 * 2.0) - vec3(1.0)), _3502);float _6591;float _4359 = (((-0.15658269822597503662109375) * _4251) + 1.57079601287841796875) * sqrt(1.0 - _4251);_4368 = 1.0 - _4255;float _4370 = (((-0.15658269822597503662109375) * _4255) + 1.57079601287841796875) * sqrt(_4368);float _4377 = abs(_4258);float _4385 = (((-0.15658269822597503662109375) * _4377) + 1.57079601287841796875) * sqrt(1.0 - _4377);float _6590;if (_4258 >= 0.0)_6590 = _4385;_6590 = 3.1415927410125732421875 - _4385;if (min(_4359, _4370) <= (max(_4359, _4370) - _6590))_6591 = 1.0 - max(_4251, _4255);_4308 = _4359 + _4370;if (_4308 <= _6590)_6591 = 0.0;float _4322 = abs(_4359 - _4370);float _4334 = 1.0 - clamp((_6590 - _4322) / max(_4308 - _4322, 9.9999997473787516355514526367188e-05), 0.0, 1.0);_6591 = ((_4334 * _4334) * (((-2.0) * _4334) + 3.0)) * (1.0 - max(_4251, _4255));_6595 = min(1.0, mix(1.0, _6591 / _4368, smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _3639)));_6595 = 1.0;vec3 _6601;_6601 = textureLod(light_iblSpecular, _3449, frameUniforms.fz).xyz;float _4428 = _3449.y;float _4433 = _3449.z;float _4438 = _3449.x;_6601 = max((((((((frameUniforms.dz[0] + (frameUniforms.dz[1] * _4428)) + (frameUniforms.dz[2] * _4433)) + (frameUniforms.dz[3] * _4438)) + (frameUniforms.dz[4] * (_4428 * _4438))) + (frameUniforms.dz[5] * (_4428 * _4433))) + (frameUniforms.dz[6] * (((3.0 * _4433) * _4433) - 1.0))) + (frameUniforms.dz[7] * (_4433 * _4438))) + (frameUniforms.dz[8] * ((_4438 * _4438) - (_4428 * _4428))), vec3(0.0));highp uvec2 _4642 = uvec2((vec3(_3807, _3464.y, gl_FragCoord.z).xy * frameUniforms.i.xy) * vec2(frameUniforms.z, frameUniforms.v));uint _4624 = ((_4642.x * frameUniforms.r) + (_4642.y * frameUniforms.x.x)) + (uint(clamp((log2((frameUniforms.w.x * gl_FragCoord.z) + frameUniforms.w.y) * frameUniforms.w.z) + frameUniforms.w.w, 0.0, frameUniforms.w.w - 1.0)) * frameUniforms.x.y);uvec4 _4681 = texelFetch(light_froxels, ivec2(int(_4624 & 63u), int(_4624 >> 6u)), 0);uint _4684 = _4681.x;uint _4518 = _4684 + (_4681.y & 255u);uint _4521 = objectUniforms.e & 255u;vec3 _6617;vec4 _6618;highp vec3 _6689;_6689 = _6583;_6618 = _6585;_6617 = (((_3820 * textureLod(light_iblSpecular, mix(_3502, _3449, vec3(_3833)), (frameUniforms.fz * _3629) * (2.0 - _3629)).xyz) * (_3658 * _6595)) * frameUniforms.az) + ((((_3602 * _6601) * (vec3(1.0) - _3820)) * _3728) * frameUniforms.az);vec4 _6525;vec3 _6753;highp vec3 _6821;for (uint _6616 = _4684; _6616 < _4518; _6689 = _6821, _6618 = _6525, _6617 = _6753, _6616++)highp uvec4 _4828 = froxelRecordUniforms.a[_6616 >> 4u];highp uint _4845 = (_4828[(_6616 >> 2u) & 3u] >> ((_6616 & 3u) * 8u)) & 255u;highp vec2 _4729 = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_4845][2].x));highp uint _4746 = floatBitsToUint(lightsUniforms.a[_4845][3].z);highp uint _4749 = floatBitsToUint(lightsUniforms.a[_4845][3].w);highp vec3 _4754 = lightsUniforms.a[_4845][0].xyz - vertex_worldPosition.xyz;vec4 _6519 = _6618;_6519.x = _4729.x;vec4 _6521 = _6519;_6521.y = _4729.y;vec4 _6523 = _6521;_6523.z = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_4845][2].y)).x;highp float _4853 = lightsUniforms.a[_4845][3].y * frameUniforms.bz;_6525 = _6523;_6525.w = _4853;highp vec3 _4769 = normalize(_4754);highp float _4863 = dot(_4754, _4754);float _4893 = _4863 * lightsUniforms.a[_4845][0].w;float _4898 = clamp(1.0 - (_4893 * _4893), 0.0, 1.0);highp vec3 _4869 = vertex_worldPosition.xyz - frameUniforms.j;float _4886 = ((_4898 * _4898) * clamp(frameUniforms.n.x - (dot(_4869, _4869) * frameUniforms.n.y), 0.0, 1.0)) / max(_4863, 9.9999997473787516355514526367188e-05);float _4780 = clamp(dot(_3449, _4769), 0.0, 1.0);uint _6625;uint _6626;bool _6627;bool _6628;float _6629;if ((_4746 & 1u) == 1u)highp float _4919 = clamp((dot(-lightsUniforms.a[_4845][1].xyz, _4769) * lightsUniforms.a[_4845][2].z) + lightsUniforms.a[_4845][2].w, 0.0, 1.0);_6629 = _4886 * (_4919 * _4919);_6628 = (_4749 & 65536u) != 0u;_6627 = (_4746 & 16u) != 0u;_6626 = (_4746 >> 8u) & 255u;_6625 = (_4746 >> 16u) & 255u;_6629 = _4886;_6628 = false;_6627 = false;_6626 = 0u;_6625 = 0u;if ((_4749 & _4521) == 0u)_6821 = _6689;_6753 = _6617;bool _4539 = _4780 <= 0.0;bool _4546;if (!_4539)_4546 = _6629 <= 0.0;_4546 = _4539;if (_4546)float _6713;highp vec3 _6824;if (_4780 > 0.0)float _6681;if (_6628)float _6680;highp float _4940 = dot(shadowUniforms.a[_6626].lightFromWorldZ, vec4(vertex_worldPosition.xyz, 1.0));highp vec4 _5029 = (shadowUniforms.a[_6626].lightFromWorldMatrix[0] * vertex_worldPosition.x) + ((shadowUniforms.a[_6626].lightFromWorldMatrix[1] * vertex_worldPosition.y) + ((shadowUniforms.a[_6626].lightFromWorldMatrix[2] * vertex_worldPosition.z) + shadowUniforms.a[_6626].lightFromWorldMatrix[3]));vec4 _5051 = texture(light_shadowMap, vec3(_5029.xy * (1.0 / _5029.w), float(_6625)));highp float _5061 = exp(frameUniforms.bzz * ((_5029.z * 2.0) - 1.0));highp float _5073 = frameUniforms.czz * _5061;highp float _5087 = _5051.x;highp float _5092 = max(_5051.y - (_5087 * _5087), _5073 * _5073);highp float _5094 = _5061 - _5087;_6680 = (_5061 <= _5087) ? 1.0 : clamp(((_5092 / (_5092 + (_5094 * _5094))) - frameUniforms.dzz) / (1.0 - frameUniforms.dzz), 0.0, 1.0);float _6679;highp vec3 _5143 = _5029.xyz * (1.0 / _5029.w);highp vec3 _5199 = dFdx(_5143);highp vec3 _5200 = dFdy(_5143);highp vec2 _5219 = inverse(transpose(mat2(vec2(_5199.xy), vec2(_5200.xy)))) * vec2(_5199.z, _5200.z);float _5245 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _5247 = cos(_5245);float _5249 = sin(_5245);mat2 _5262 = mat2(vec2(_5247, _5249), vec2(-_5249, _5247));highp vec2 _5159 = _5143.xy;highp float _5161 = _5143.z;highp vec2 _5164 = (vec2(1.0) / vec2(vec3(textureSize(light_shadowMap, 0)).xy)) * (shadowUniforms.a[_6626].bulbRadiusLs / _4940);float _6675;float _6676;_6676 = 0.0;_6675 = 0.0;for (uint _6674 = 0u; _6674 < 12u; )highp vec2 _5288 = _5262 * (_735[_6674] * _5164);vec4 _5296 = textureLod(light_shadowMap, vec3(_5159 + _5288, float(_6625)), 0.0);float _5297 = _5296.x;float _5304 = step(dot(_5219, _5288), _5297 - _5161);_6676 += (_5297 * _5304);_6675 += _5304;_6674++;if (_6676 == 0.0)_6679 = 1.0;float _5349 = (_6675 * 0.16666667163372039794921875) - 1.0;float _5351 = sign(_5349);float _5355 = 1.0 - (_5351 * _5349);_6679 = 1.0 - mix((0.5 * (_5351 - (((_5355 * _5355) * _5355) * _5351))) + 0.5, _6675 * 0.083333335816860198974609375, clamp((((shadowUniforms.a[_6626].nearOverFarMinusNear + (_6676 / _6675)) / (shadowUniforms.a[_6626].nearOverFarMinusNear + _5161)) - 1.0) * frameUniforms.u, 0.0, 1.0));_6680 = _6679;float _6672;highp vec2 _5397 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);highp vec2 _5399 = vec2(1.0) / _5397;highp vec3 _5403 = _5029.xyz * (1.0 / _5029.w);highp vec3 _5456 = dFdx(_5403);highp vec3 _5457 = dFdy(_5403);highp vec2 _5476 = inverse(transpose(mat2(vec2(_5456.xy), vec2(_5457.xy)))) * vec2(_5456.z, _5457.z);highp float _5484 = shadowUniforms.a[_6626].bulbRadiusLs / _4940;float _5502 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _5504 = cos(_5502);float _5506 = sin(_5502);mat2 _5519 = mat2(vec2(_5504, _5506), vec2(-_5506, _5504));highp vec2 _5411 = _5403.xy;highp float _5413 = _5403.z;highp vec2 _5416 = _5399 * _5484;float _6653;float _6654;_6654 = 0.0;_6653 = 0.0;for (uint _6652 = 0u; _6652 < 16u; )highp vec2 _5545 = _5519 * (_735[_6652] * _5416);vec4 _5553 = textureLod(light_shadowMap, vec3(_5411 + _5545, float(_6625)), 0.0);float _5554 = _5553.x;float _5561 = step(dot(_5476, _5545), _5554 - _5413);_6654 += (_5554 * _5561);_6653 += _5561;_6652++;if (_6654 == 0.0)_6672 = 1.0;highp vec2 _5442 = _5399 * (_5484 * ((((shadowUniforms.a[_6626].nearOverFarMinusNear + (_6654 / _6653)) / (shadowUniforms.a[_6626].nearOverFarMinusNear + _5413)) - 1.0) * frameUniforms.u));float _6657;_6657 = 0.0;for (uint _6656 = 0u; _6656 < 16u; )highp vec2 _5621 = _5519 * (_735[_6656] * _5442);highp vec2 _5626 = ((_5411 + _5621) * _5397) - vec2(0.5);highp vec2 _5628 = fract(_5626);highp ivec3 _5635 = ivec3(ivec2(_5626), int(_6625));vec4 _6546 = _6835;_6546.x = texelFetchOffset(light_shadowMap, _5635, 0, ivec2(0, 1)).x;vec4 _6548 = _6546;_6548.y = texelFetchOffset(light_shadowMap, _5635, 0, ivec2(1)).x;vec4 _6550 = _6548;_6550.z = texelFetchOffset(light_shadowMap, _5635, 0, ivec2(1, 0)).x;vec4 _6552 = _6550;_6552.w = texelFetchOffset(light_shadowMap, _5635, 0, ivec2(0)).x;vec4 _5681 = step(vec4(dot(_5476, _5621)), _6552 - vec4(_5413));highp float _5687 = _5628.x;_6657 += mix(mix(_5681.w, _5681.z, _5687), mix(_5681.x, _5681.y, _5687), _5628.y);_6656++;_6672 = 1.0 - (_6657 * 0.0625);_6680 = _6672;highp vec3 _5722 = _5029.xyz * (1.0 / _5029.w);highp vec2 _5735 = (_5722.xy * vec2(vec3(textureSize(light_shadowMap, 0)).xy)) - vec2(0.5);highp ivec3 _5741 = ivec3(ivec2(_5735), int(_6625));vec4 _6561 = _6835;_6561.x = texelFetchOffset(light_shadowMap, _5741, 0, ivec2(0, 1)).x;vec4 _6563 = _6561;_6563.y = texelFetchOffset(light_shadowMap, _5741, 0, ivec2(1)).x;vec4 _6565 = _6563;_6565.z = texelFetchOffset(light_shadowMap, _5741, 0, ivec2(1, 0)).x;vec4 _6567 = _6565;_6567.w = texelFetchOffset(light_shadowMap, _5741, 0, ivec2(0)).x;highp vec4 _5771 = step(vec4(0.0), _5722.zzzz - _6567);highp vec2 _5773 = fract(_5735);highp float _5779 = _5773.x;_6680 = mix(mix(_5771.w, _5771.z, _5779), mix(_5771.x, _5771.y, _5779), _5773.y);_6680 = 0.0;_6681 = _6680;_6681 = 1.0;float _6711;highp vec3 _6822;if (_6627 && (_6681 > 0.0))float _6712;highp vec3 _6823;uint _5815 = (frameUniforms.iz >> 8u) & 255u;highp vec4 _5923 = frameUniforms.e * vec4(vertex_worldPosition.xyz, 1.0);highp vec4 _5930 = frameUniforms.e * vec4(vertex_worldPosition.xyz + (_4769 * frameUniforms.kz), 1.0);highp vec4 _5936 = _5923 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));highp vec3 _5942 = _5923.xyz * (1.0 / _5923.w);highp vec3 _5949 = _5930.xyz * (1.0 / _5930.w);highp float _5976 = _5942.z;highp vec3 _5979 = vec3((_5942.xy * 0.5) + vec2(0.5), _5976);highp vec3 _5984 = vec3((_5949.xy * 0.5) + vec2(0.5), _5949.z) - _5979;float _5825 = 1.0 / float(_5815);highp float _5833 = abs((_5936.xyz * (1.0 / _5936.w)).z - _5976) * _5825;uint _6682;highp float _6683;highp vec3 _6685;_6683 = (_5825 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _5825;_6682 = 0u;_6685 = _6689;highp vec3 _5858;highp vec3 _6684;float _6707;if (_6682 < _5815)_5858 = _5979 + (_5984 * _6683);if (abs(_5833 - (textureLod(light_structure, _5858.xy, 0.0).x - _5858.z)) < _5833)_6707 = 1.0;_6684 = _5858;_6683 += _5825;_6682++;_6685 = _5858;_6707 = 0.0;_6684 = _6685;highp vec2 _5893 = max((abs(_6684.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_6823 = _6684;_6712 = _6681 * (1.0 - (_6707 * clamp(1.0 - dot(_5893, _5893), 0.0, 1.0)));_6823 = _6689;_6712 = _6681;_6822 = _6823;_6711 = _6712;_6822 = _6689;_6711 = _6681;if (_6711 <= 0.0)_6821 = _6822;_6824 = _6822;_6713 = _6711;_6824 = _6689;_6713 = 1.0;vec3 _6017 = normalize(_3456 + _4769);float _6020 = clamp(_4780, 0.0, 1.0);vec3 _6108 = cross(_3449, _6017);float _6114 = clamp(dot(_3449, _6017), 0.0, 1.0) * _3639;float _6121 = _3639 / (dot(_6108, _6108) + (_6114 * _6114));float _6162 = pow(1.0 - clamp(dot(_4769, _6017), 0.0, 1.0), 5.0);_6821 = _6824;_6753 = _6617 + ((((_3602 * 0.3183098733425140380859375) + (((vec3(_6162) + (_3619 * (1.0 - _6162))) * (min((_6121 * _6121) * 0.3183098733425140380859375, 65504.0) * min(0.5 / mix((2.0 * _6020) * _3509, _6020 + _3509, _3639), 65504.0))) * _3658)) * _6525.xyz) * (((_4853 * _6629) * _6020) * _6713));fragColor = vec4(_6617, 1.0);const vec2 _757[64] = vec2[](vec2(0.5117490291595458984375, 0.54768598079681396484375), vec2(0.58929002285003662109375, 0.2572239935398101806640625), vec2(0.16501800715923309326171875, 0.57662999629974365234375), vec2(0.4076919853687286376953125, 0.7422850131988525390625), vec2(0.707011997699737548828125, 0.646522998809814453125), vec2(0.3146300017833709716796875, 0.466825008392333984375), vec2(0.80125701427459716796875, 0.4851860105991363525390625), vec2(0.41813600063323974609375, 0.14651699364185333251953125), vec2(0.579888999462127685546875, 0.03682839870452880859375), vec2(0.79800999164581298828125, 0.14011399447917938232421875), vec2(-0.041318498551845550537109375, 0.371455013751983642578125), vec2(-0.0529108010232448577880859375, 0.6273519992828369140625), vec2(0.082137502729892730712890625, 0.882071018218994140625), vec2(0.1730799973011016845703125, 0.301207005977630615234375), vec2(-0.12045200169086456298828125, 0.86721599102020263671875), vec2(0.3710959851741790771484375, 0.916454017162322998046875), vec2(-0.1783809959888458251953125, 0.1461009979248046875), vec2(-0.2764889895915985107421875, 0.550525009632110595703125), vec2(0.1254200041294097900390625, 0.126643002033233642578125), vec2(-0.2966539859771728515625, 0.286879003047943115234375), vec2(0.2617439925670623779296875, -0.0060497499071061611175537109375), vec2(-0.213416993618011474609375, 0.715776026248931884765625), vec2(0.4256840050220489501953125, -0.15321099758148193359375), vec2(-0.4800539910793304443359375, 0.3213570117950439453125), vec2(-0.071787796914577484130859375, -0.02505669929087162017822265625), vec2(-0.328774988651275634765625, -0.16966600716114044189453125), vec2(-0.3949230015277862548828125, 0.1308020055294036865234375), vec2(-0.55368101596832275390625, -0.17677700519561767578125), vec2(-0.7226150035858154296875, 0.120615996420383453369140625), vec2(-0.693064987659454345703125, 0.309017002582550048828125), vec2(0.603192985057830810546875, 0.791471004486083984375), vec2(-0.075494103133678436279296875, -0.297987997531890869140625), vec2(0.109302997589111328125, -0.1564719974994659423828125), vec2(0.2606050074100494384765625, -0.280111014842987060546875), vec2(0.129730999469757080078125, -0.4879539906978607177734375), vec2(-0.53731501102447509765625, 0.520493984222412109375), vec2(-0.42757999897003173828125, 0.800607025623321533203125), vec2(0.77309000492095947265625, -0.0728102028369903564453125), vec2(0.9087769985198974609375, 0.3283559978008270263671875), vec2(0.985341012477874755859375, 0.07591579854488372802734375), vec2(0.947535991668701171875, -0.118369996547698974609375), vec2(-0.103315003216266632080078125, -0.61074697971343994140625), vec2(0.3371709883213043212890625, -0.58399999141693115234375), vec2(0.2109189927577972412109375, -0.72005498409271240234375), vec2(0.418940007686614990234375, -0.3676899969577789306640625), vec2(-0.25422799587249755859375, -0.49368000030517578125), vec2(-0.428561985492706298828125, -0.404036998748779296875), vec2(-0.831731975078582763671875, -0.18961499631404876708984375), vec2(-0.9226419925689697265625, 0.088802598416805267333984375), vec2(-0.86591398715972900390625, 0.427794992923736572265625), vec2(0.706116974353790283203125, -0.3116619884967803955078125), vec2(0.545464992523193359375, -0.5209419727325439453125), vec2(-0.695738017559051513671875, 0.66449201107025146484375), vec2(0.389420986175537109375, -0.899007022380828857421875), vec2(0.488420009613037109375, -0.708054006099700927734375), vec2(0.7602980136871337890625, -0.62734997272491455078125), vec2(-0.3907879889011383056640625, -0.707387983798980712890625), vec2(-0.59104597568511962890625, -0.686721026897430419921875), vec2(-0.769903004169464111328125, -0.4137749969959259033203125), vec2(-0.60445702075958251953125, -0.50257098674774169921875), vec2(-0.557233989238739013671875, 0.0045136199332773685455322265625), vec2(0.14757199585437774658203125, -0.92435300350189208984375), vec2(-0.066248796880245208740234375, -0.8920810222625732421875), vec2(0.863831996917724609375, -0.407205998897552490234375));vec3 _8674;vec4 _8676;float _9168;vec4 _9169;vec3 _8168;bool _4208;highp vec3 _3768 = normalize(vertex_worldNormal);highp vec3 _3775 = normalize(frameUniforms.j - vertex_worldPosition.xyz);highp vec2 _3783 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);float _3828 = max(dot(_3768, _3775), 9.9999997473787516355514526367188e-05);vec3 _3821 = reflect(-_3775, _3768);vec4 _8448 = vec4(1.0);_8448.x = materialParams.a.x;vec4 _8450 = _8448;_8450.y = materialParams.a.y;vec4 _8452 = _8450;_8452.z = materialParams.a.z;float _3925 = 1.0 - materialParams.b;vec3 _3926 = _8452.xyz * _3925;vec3 _3943 = (_8452.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _3925);float _3953 = clamp(materialParams.c, 0.08900000154972076416015625, 1.0);float _3963 = _3953 * _3953;vec4 _3997 = textureLod(light_iblDFG, vec2(_3828, _3953), 0.0);vec3 _3982 = vec3(1.0) + (_3943 * ((1.0 / _3997.y) - 1.0));highp float _4131 = _3783.x;vec3 _4144 = mix(_3997.xxx, _3997.yyy, _3943);float _4157 = _3963 * _3963;float _8677;highp vec4 _8678;_4208 = frameUniforms.vz > 0.0;if (_4208)highp vec3 _4231 = vec3(_4131, _3783.y, 0.0);vec4 _4232 = textureLodOffset(light_ssao, _4231, 0.0, ivec2(0, 1));vec4 _4240 = textureLodOffset(light_ssao, _4231, 0.0, ivec2(1));vec4 _4248 = textureLodOffset(light_ssao, _4231, 0.0, ivec2(1, 0));vec4 _4256 = textureLodOffset(light_ssao, _4231, 0.0, ivec2(0));vec4 _8471 = _8676;_8471.x = (_4232.y * 0.996108949184417724609375) + (_4232.z * 0.00389105058275163173675537109375);vec4 _8477 = _8471;_8477.y = (_4240.y * 0.996108949184417724609375) + (_4240.z * 0.00389105058275163173675537109375);vec4 _8483 = _8477;_8483.z = (_4248.y * 0.996108949184417724609375) + (_4248.z * 0.00389105058275163173675537109375);vec4 _8489 = _8483;_8489.w = (_4256.y * 0.996108949184417724609375) + (_4256.z * 0.00389105058275163173675537109375);highp vec2 _4324 = fract((vec3(_4131, _3783.y, _9168).xy * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _4326 = _4324.x;float _4327 = 1.0 - _4326;float _4329 = _4324.y;vec4 _8493 = _8676;_8493.x = _4327 * _4329;vec4 _8497 = _8493;_8497.y = _4326 * _4329;float _4342 = 1.0 - _4329;vec4 _8501 = _8497;_8501.z = _4326 * _4342;vec4 _8505 = _8501;_8505.w = _4327 * _4342;vec4 _4372 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), vertex_worldPosition.xyz) + frameUniforms.a[3].z) - (_8489 * (-frameUniforms.gz))) * frameUniforms.vz;highp vec4 _4380 = max(vec4(6.103515625e-05), vec4(1.0) - (_4372 * _4372)) * _8505;highp vec4 _4394 = _4380 / vec4(((_4380.x + _4380.y) + _4380.z) + _4380.w);_8678 = _4394;_8677 = dot(vec4(_4232.x, _4240.x, _4248.x, _4256.x), _4394);_8678 = _8676;_8677 = textureLod(light_ssao, vec3(_4131, _3783.y, 0.0), 0.0).x;float _4052 = min(1.0, _8677);float _8686;vec3 _8680;highp vec3 _4480 = vec3(_4131, _3783.y, 1.0);vec4 _4481 = textureLodOffset(light_ssao, _4480, 0.0, ivec2(0, 1));vec4 _4488 = textureLodOffset(light_ssao, _4480, 0.0, ivec2(1));vec4 _4495 = textureLodOffset(light_ssao, _4480, 0.0, ivec2(1, 0));vec4 _4502 = textureLodOffset(light_ssao, _4480, 0.0, ivec2(0));vec3 _8527 = _8674;_8527.x = dot(vec4(_4481.x, _4488.x, _4495.x, _4502.x), _8678);vec3 _8529 = _8527;_8529.y = dot(vec4(_4481.y, _4488.y, _4495.y, _4502.y), _8678);vec3 _8531 = _8529;_8531.z = dot(vec4(_4481.z, _4488.z, _4495.z, _4502.z), _8678);_8680 = _8531;_8680 = textureLod(light_ssao, vec3(_4131, _3783.y, 1.0), 0.0).xyz;float _4692;float _4575 = sqrt(1.0 - _4052);float _4579 = exp2((-3.3219280242919921875) * _4157);float _4582 = dot(normalize((_8680 * 2.0) - vec3(1.0)), _3821);float _8682;float _4683 = (((-0.15658269822597503662109375) * _4575) + 1.57079601287841796875) * sqrt(1.0 - _4575);_4692 = 1.0 - _4579;float _4694 = (((-0.15658269822597503662109375) * _4579) + 1.57079601287841796875) * sqrt(_4692);float _4701 = abs(_4582);float _4709 = (((-0.15658269822597503662109375) * _4701) + 1.57079601287841796875) * sqrt(1.0 - _4701);float _8681;if (_4582 >= 0.0)_8681 = _4709;_8681 = 3.1415927410125732421875 - _4709;float _4632;if (min(_4683, _4694) <= (max(_4683, _4694) - _8681))_8682 = 1.0 - max(_4575, _4579);_4632 = _4683 + _4694;if (_4632 <= _8681)_8682 = 0.0;float _4646 = abs(_4683 - _4694);float _4658 = 1.0 - clamp((_8681 - _4646) / max(_4632 - _4646, 9.9999997473787516355514526367188e-05), 0.0, 1.0);_8682 = ((_4658 * _4658) * (((-2.0) * _4658) + 3.0)) * (1.0 - max(_4575, _4579));_8686 = min(1.0, mix(1.0, _8682 / _4692, smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _3963)));_8686 = 1.0;vec3 _8692;_8692 = textureLod(light_iblSpecular, _3768, frameUniforms.fz).xyz;float _4752 = _3768.y;float _4757 = _3768.z;float _4762 = _3768.x;_8692 = max((((((((frameUniforms.dz[0] + (frameUniforms.dz[1] * _4752)) + (frameUniforms.dz[2] * _4757)) + (frameUniforms.dz[3] * _4762)) + (frameUniforms.dz[4] * (_4752 * _4762))) + (frameUniforms.dz[5] * (_4752 * _4757))) + (frameUniforms.dz[6] * (((3.0 * _4757) * _4757) - 1.0))) + (frameUniforms.dz[7] * (_4757 * _4762))) + (frameUniforms.dz[8] * ((_4762 * _4762) - (_4752 * _4752))), vec3(0.0));uint _4840;vec3 _4122 = (((_4144 * textureLod(light_iblSpecular, mix(_3821, _3768, vec3(_4157)), (frameUniforms.fz * _3953) * (2.0 - _3953)).xyz) * (_3982 * _8686)) * frameUniforms.az) + ((((_3926 * _8692) * (vec3(1.0) - _4144)) * _4052) * frameUniforms.az);vec3 _8856;vec3 _8701;float _4949 = dot(frameUniforms.q, _3821);highp vec3 _8700;if (_4949 < frameUniforms.m.x)_8700 = normalize((frameUniforms.q * frameUniforms.m.x) + (normalize(_3821 - (frameUniforms.q * _4949)) * frameUniforms.m.y));_8700 = _3821;_8701 = _8700;_8701 = frameUniforms.q;float _4927 = clamp(dot(_3768, _8701), 0.0, 1.0);_4840 = objectUniforms.e & 255u;if (((frameUniforms.p & 255u) & _4840) == 0u)_8856 = _4122;if (_4927 <= 0.0)float _8835;if (_4927 > 0.0)bvec4 _4991 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * vertex_worldPosition.x) + ((frameUniforms.a[1] * vertex_worldPosition.y) + ((frameUniforms.a[2] * vertex_worldPosition.z) + frameUniforms.a[3]))).z));uint _5001 = clamp(uint(dot(vec4(_4991.x ? vec4(1.0).x : vec4(0.0).x, _4991.y ? vec4(1.0).y : vec4(0.0).y, _4991.z ? vec4(1.0).z : vec4(0.0).z, _4991.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);float _8788;if (((frameUniforms.iz & 1u) != 0u) && ((frameUniforms.uz & ((1u << _5001) << 8u)) != 0u))float _8787;highp vec4 _8744;if (_5001 == 0u)_8744 = vertex_lightSpacePosition;_8744 = (frameUniforms.g[_5001][0] * vertex_worldPosition.x) + ((frameUniforms.g[_5001][1] * vertex_worldPosition.y) + ((frameUniforms.g[_5001][2] * vertex_worldPosition.z) + frameUniforms.g[_5001][3]));vec4 _5206 = texture(light_shadowMap, vec3(_8744.xy * (1.0 / _8744.w), float(_5001)));highp float _5216 = exp(frameUniforms.bzz * ((_8744.z * 2.0) - 1.0));highp float _5228 = frameUniforms.czz * _5216;highp float _5242 = _5206.x;highp float _5247 = max(_5206.y - (_5242 * _5242), _5228 * _5228);highp float _5249 = _5216 - _5242;_8787 = (_5216 <= _5242) ? 1.0 : clamp(((_5247 / (_5247 + (_5249 * _5249))) - frameUniforms.dzz) / (1.0 - frameUniforms.dzz), 0.0, 1.0);float _8786;highp vec3 _5298 = _8744.xyz * (1.0 / _8744.w);highp vec3 _5354 = dFdx(_5298);highp vec3 _5355 = dFdy(_5298);highp vec2 _5374 = inverse(transpose(mat2(vec2(_5354.xy), vec2(_5355.xy)))) * vec2(_5354.z, _5355.z);float _5400 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _5402 = cos(_5400);float _5404 = sin(_5400);mat2 _5417 = mat2(vec2(_5402, _5404), vec2(-_5404, _5402));highp vec2 _5314 = _5298.xy;highp float _5316 = _5298.z;highp vec2 _5319 = (vec2(1.0) / vec2(vec3(textureSize(light_shadowMap, 0)).xy)) * frameUniforms.s;float _8782;float _8783;_8783 = 0.0;_8782 = 0.0;for (uint _8781 = 0u; _8781 < 12u; )highp vec2 _5443 = _5417 * (_757[_8781] * _5319);vec4 _5451 = textureLod(light_shadowMap, vec3(_5314 + _5443, float(_5001)), 0.0);float _5452 = _5451.x;float _5459 = step(dot(_5374, _5443), _5452 - _5316);_8783 += (_5452 * _5459);_8782 += _5459;_8781++;if (_8783 == 0.0)_8786 = 1.0;float _5332 = _8783 / _8782;float _5504 = (_8782 * 0.16666667163372039794921875) - 1.0;float _5506 = sign(_5504);float _5510 = 1.0 - (_5506 * _5504);_8786 = 1.0 - mix((0.5 * (_5506 - (((_5510 * _5510) * _5510) * _5506))) + 0.5, _8782 * 0.083333335816860198974609375, clamp(((_5332 - _5316) / (1.0 - _5332)) * frameUniforms.u, 0.0, 1.0));_8787 = _8786;float _8779;highp vec2 _5552 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);highp vec2 _5554 = vec2(1.0) / _5552;highp vec3 _5558 = _8744.xyz * (1.0 / _8744.w);highp vec3 _5611 = dFdx(_5558);highp vec3 _5612 = dFdy(_5558);highp vec2 _5631 = inverse(transpose(mat2(vec2(_5611.xy), vec2(_5612.xy)))) * vec2(_5611.z, _5612.z);float _5657 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _5659 = cos(_5657);float _5661 = sin(_5657);mat2 _5674 = mat2(vec2(_5659, _5661), vec2(-_5661, _5659));highp vec2 _5566 = _5558.xy;highp float _5568 = _5558.z;highp vec2 _5571 = _5554 * frameUniforms.s;float _8760;float _8761;_8761 = 0.0;_8760 = 0.0;for (uint _8759 = 0u; _8759 < 16u; )highp vec2 _5700 = _5674 * (_757[_8759] * _5571);vec4 _5708 = textureLod(light_shadowMap, vec3(_5566 + _5700, float(_5001)), 0.0);float _5709 = _5708.x;float _5716 = step(dot(_5631, _5700), _5709 - _5568);_8761 += (_5709 * _5716);_8760 += _5716;_8759++;if (_8761 == 0.0)_8779 = 1.0;float _5584 = _8761 / _8760;highp vec2 _5597 = _5554 * (frameUniforms.s * (((_5584 - _5568) / (1.0 - _5584)) * frameUniforms.u));float _8764;_8764 = 0.0;for (uint _8763 = 0u; _8763 < 16u; )highp vec2 _5776 = _5674 * (_757[_8763] * _5597);highp vec2 _5781 = ((_5566 + _5776) * _5552) - vec2(0.5);highp vec2 _5783 = fract(_5781);highp ivec3 _5790 = ivec3(ivec2(_5781), int(_5001));vec4 _8552 = _9169;_8552.x = texelFetchOffset(light_shadowMap, _5790, 0, ivec2(0, 1)).x;vec4 _8554 = _8552;_8554.y = texelFetchOffset(light_shadowMap, _5790, 0, ivec2(1)).x;vec4 _8556 = _8554;_8556.z = texelFetchOffset(light_shadowMap, _5790, 0, ivec2(1, 0)).x;vec4 _8558 = _8556;_8558.w = texelFetchOffset(light_shadowMap, _5790, 0, ivec2(0)).x;vec4 _5836 = step(vec4(dot(_5631, _5776)), _8558 - vec4(_5568));highp float _5842 = _5783.x;_8764 += mix(mix(_5836.w, _5836.z, _5842), mix(_5836.x, _5836.y, _5842), _5783.y);_8763++;_8779 = 1.0 - (_8764 * 0.0625);_8787 = _8779;highp vec3 _5877 = _8744.xyz * (1.0 / _8744.w);highp vec2 _5890 = (_5877.xy * vec2(vec3(textureSize(light_shadowMap, 0)).xy)) - vec2(0.5);highp ivec3 _5896 = ivec3(ivec2(_5890), int(_5001));vec4 _8567 = _9169;_8567.x = texelFetchOffset(light_shadowMap, _5896, 0, ivec2(0, 1)).x;vec4 _8569 = _8567;_8569.y = texelFetchOffset(light_shadowMap, _5896, 0, ivec2(1)).x;vec4 _8571 = _8569;_8571.z = texelFetchOffset(light_shadowMap, _5896, 0, ivec2(1, 0)).x;vec4 _8573 = _8571;_8573.w = texelFetchOffset(light_shadowMap, _5896, 0, ivec2(0)).x;highp vec4 _5926 = step(vec4(0.0), _5877.zzzz - _8573);highp vec2 _5928 = fract(_5890);highp float _5934 = _5928.x;_8787 = mix(mix(_5926.w, _5926.z, _5934), mix(_5926.x, _5926.y, _5934), _5928.y);_8787 = 0.0;_8788 = _8787;_8788 = 1.0;float _8816;if (((frameUniforms.iz & 2u) != 0u) && (_8788 > 0.0))float _8830;uint _5970 = (frameUniforms.iz >> 8u) & 255u;highp vec4 _6078 = frameUniforms.e * vec4(vertex_worldPosition.xyz, 1.0);highp vec4 _6085 = frameUniforms.e * vec4(vertex_worldPosition.xyz + (_8701 * frameUniforms.kz), 1.0);highp vec4 _6091 = _6078 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));highp vec3 _6097 = _6078.xyz * (1.0 / _6078.w);highp vec3 _6104 = _6085.xyz * (1.0 / _6085.w);highp float _6131 = _6097.z;highp vec3 _6134 = vec3((_6097.xy * 0.5) + vec2(0.5), _6131);highp vec3 _6139 = vec3((_6104.xy * 0.5) + vec2(0.5), _6104.z) - _6134;float _5980 = 1.0 / float(_5970);highp float _5988 = abs((_6091.xyz * (1.0 / _6091.w)).z - _6131) * _5980;uint _8789;highp float _8790;highp vec3 _8792;_8790 = (_5980 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _5980;_8789 = 0u;_8792 = _8674;highp vec3 _6013;highp vec3 _8791;float _8814;if (_8789 < _5970)_6013 = _6134 + (_6139 * _8790);if (abs(_5988 - (textureLod(light_structure, _6013.xy, 0.0).x - _6013.z)) < _5988)_8814 = 1.0;_8791 = _6013;_8790 += _5980;_8789++;_8792 = _6013;_8814 = 0.0;_8791 = _8792;highp vec2 _6048 = max((abs(_8791.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_8830 = _8814 * clamp(1.0 - dot(_6048, _6048), 0.0, 1.0);_8830 = 0.0;_8816 = _8830;_8816 = 0.0;float _4900 = _8788 * (1.0 - _8816);if (_4900 <= 0.0)_8835 = _4900;_8835 = 1.0;vec3 _6172 = normalize(_3775 + _8701);float _6175 = clamp(_4927, 0.0, 1.0);vec3 _6263 = cross(_3768, _6172);float _6269 = clamp(dot(_3768, _6172), 0.0, 1.0) * _3963;float _6276 = _3963 / (dot(_6263, _6263) + (_6269 * _6269));float _6317 = pow(1.0 - clamp(dot(_8701, _6172), 0.0, 1.0), 5.0);_8856 = _4122 + ((((_3926 * 0.3183098733425140380859375) + (((vec3(_6317) + (_3943 * (1.0 - _6317))) * (min((_6276 * _6276) * 0.3183098733425140380859375, 65504.0) * min(0.5 / mix((2.0 * _6175) * _3828, _6175 + _3828, _3963), 65504.0))) * _3982)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _6175) * _8835));highp uvec2 _6485 = uvec2((vec3(_4131, _3783.y, gl_FragCoord.z).xy * frameUniforms.i.xy) * vec2(frameUniforms.z, frameUniforms.v));uint _6467 = ((_6485.x * frameUniforms.r) + (_6485.y * frameUniforms.x.x)) + (uint(clamp((log2((frameUniforms.w.x * gl_FragCoord.z) + frameUniforms.w.y) * frameUniforms.w.z) + frameUniforms.w.w, 0.0, frameUniforms.w.w - 1.0)) * frameUniforms.x.y);uvec4 _6524 = texelFetch(light_froxels, ivec2(int(_6467 & 63u), int(_6467 >> 6u)), 0);uint _6527 = _6524.x;uint _6361 = _6527 + (_6524.y & 255u);vec3 _8886;vec4 _8888;highp vec3 _9017;_9017 = _8674;_8888 = _8676;_8886 = _8856;vec4 _8615;vec3 _9105;highp vec3 _9157;for (uint _8885 = _6527; _8885 < _6361; _9017 = _9157, _8888 = _8615, _8886 = _9105, _8885++)highp uvec4 _6671 = froxelRecordUniforms.a[_8885 >> 4u];highp uint _6688 = (_6671[(_8885 >> 2u) & 3u] >> ((_8885 & 3u) * 8u)) & 255u;highp vec2 _6572 = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_6688][2].x));highp uint _6589 = floatBitsToUint(lightsUniforms.a[_6688][3].z);highp uint _6592 = floatBitsToUint(lightsUniforms.a[_6688][3].w);highp vec3 _6597 = lightsUniforms.a[_6688][0].xyz - vertex_worldPosition.xyz;vec4 _8609 = _8888;_8609.x = _6572.x;vec4 _8611 = _8609;_8611.y = _6572.y;vec4 _8613 = _8611;_8613.z = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_6688][2].y)).x;highp float _6696 = lightsUniforms.a[_6688][3].y * frameUniforms.bz;_8615 = _8613;_8615.w = _6696;highp vec3 _6612 = normalize(_6597);highp float _6706 = dot(_6597, _6597);float _6736 = _6706 * lightsUniforms.a[_6688][0].w;float _6741 = clamp(1.0 - (_6736 * _6736), 0.0, 1.0);highp vec3 _6712 = vertex_worldPosition.xyz - frameUniforms.j;float _6729 = ((_6741 * _6741) * clamp(frameUniforms.n.x - (dot(_6712, _6712) * frameUniforms.n.y), 0.0, 1.0)) / max(_6706, 9.9999997473787516355514526367188e-05);float _6623 = clamp(dot(_3768, _6612), 0.0, 1.0);uint _8916;uint _8917;bool _8918;bool _8919;float _8920;if ((_6589 & 1u) == 1u)highp float _6762 = clamp((dot(-lightsUniforms.a[_6688][1].xyz, _6612) * lightsUniforms.a[_6688][2].z) + lightsUniforms.a[_6688][2].w, 0.0, 1.0);_8920 = _6729 * (_6762 * _6762);_8919 = (_6592 & 65536u) != 0u;_8918 = (_6589 & 16u) != 0u;_8917 = (_6589 >> 8u) & 255u;_8916 = (_6589 >> 16u) & 255u;_8920 = _6729;_8919 = false;_8918 = false;_8917 = 0u;_8916 = 0u;if ((_6592 & _4840) == 0u)_9157 = _9017;_9105 = _8886;bool _6382 = _6623 <= 0.0;bool _6389;if (!_6382)_6389 = _8920 <= 0.0;_6389 = _6382;if (_6389)float _9063;highp vec3 _9160;if (_6623 > 0.0)float _9009;if (_8919)float _9008;highp float _6784 = dot(shadowUniforms.a[_8917].lightFromWorldZ, vec4(vertex_worldPosition.xyz, 1.0));highp vec4 _6874 = (shadowUniforms.a[_8917].lightFromWorldMatrix[0] * vertex_worldPosition.x) + ((shadowUniforms.a[_8917].lightFromWorldMatrix[1] * vertex_worldPosition.y) + ((shadowUniforms.a[_8917].lightFromWorldMatrix[2] * vertex_worldPosition.z) + shadowUniforms.a[_8917].lightFromWorldMatrix[3]));vec4 _6948 = texture(light_shadowMap, vec3(_6874.xy * (1.0 / _6874.w), float(_8916)));highp float _6958 = exp(frameUniforms.bzz * ((_6874.z * 2.0) - 1.0));highp float _6970 = frameUniforms.czz * _6958;highp float _6984 = _6948.x;highp float _6989 = max(_6948.y - (_6984 * _6984), _6970 * _6970);highp float _6991 = _6958 - _6984;_9008 = (_6958 <= _6984) ? 1.0 : clamp(((_6989 / (_6989 + (_6991 * _6991))) - frameUniforms.dzz) / (1.0 - frameUniforms.dzz), 0.0, 1.0);float _9007;highp vec3 _7040 = _6874.xyz * (1.0 / _6874.w);highp vec3 _7096 = dFdx(_7040);highp vec3 _7097 = dFdy(_7040);highp vec2 _7116 = inverse(transpose(mat2(vec2(_7096.xy), vec2(_7097.xy)))) * vec2(_7096.z, _7097.z);float _7142 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _7144 = cos(_7142);float _7146 = sin(_7142);mat2 _7159 = mat2(vec2(_7144, _7146), vec2(-_7146, _7144));highp vec2 _7056 = _7040.xy;highp float _7058 = _7040.z;highp vec2 _7061 = (vec2(1.0) / vec2(vec3(textureSize(light_shadowMap, 0)).xy)) * (shadowUniforms.a[_8917].bulbRadiusLs / _6784);float _9003;float _9004;_9004 = 0.0;_9003 = 0.0;for (uint _9002 = 0u; _9002 < 12u; )highp vec2 _7185 = _7159 * (_757[_9002] * _7061);vec4 _7193 = textureLod(light_shadowMap, vec3(_7056 + _7185, float(_8916)), 0.0);float _7194 = _7193.x;float _7201 = step(dot(_7116, _7185), _7194 - _7058);_9004 += (_7194 * _7201);_9003 += _7201;_9002++;if (_9004 == 0.0)_9007 = 1.0;float _7246 = (_9003 * 0.16666667163372039794921875) - 1.0;float _7248 = sign(_7246);float _7252 = 1.0 - (_7248 * _7246);_9007 = 1.0 - mix((0.5 * (_7248 - (((_7252 * _7252) * _7252) * _7248))) + 0.5, _9003 * 0.083333335816860198974609375, clamp((((shadowUniforms.a[_8917].nearOverFarMinusNear + (_9004 / _9003)) / (shadowUniforms.a[_8917].nearOverFarMinusNear + _7058)) - 1.0) * frameUniforms.u, 0.0, 1.0));_9008 = _9007;float _9000;highp vec2 _7294 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);highp vec2 _7296 = vec2(1.0) / _7294;highp vec3 _7300 = _6874.xyz * (1.0 / _6874.w);highp vec3 _7353 = dFdx(_7300);highp vec3 _7354 = dFdy(_7300);highp vec2 _7373 = inverse(transpose(mat2(vec2(_7353.xy), vec2(_7354.xy)))) * vec2(_7353.z, _7354.z);highp float _7381 = shadowUniforms.a[_8917].bulbRadiusLs / _6784;float _7399 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _7401 = cos(_7399);float _7403 = sin(_7399);mat2 _7416 = mat2(vec2(_7401, _7403), vec2(-_7403, _7401));highp vec2 _7308 = _7300.xy;highp float _7310 = _7300.z;highp vec2 _7313 = _7296 * _7381;float _8959;float _8960;_8960 = 0.0;_8959 = 0.0;for (uint _8958 = 0u; _8958 < 16u; )highp vec2 _7442 = _7416 * (_757[_8958] * _7313);vec4 _7450 = textureLod(light_shadowMap, vec3(_7308 + _7442, float(_8916)), 0.0);float _7451 = _7450.x;float _7458 = step(dot(_7373, _7442), _7451 - _7310);_8960 += (_7451 * _7458);_8959 += _7458;_8958++;if (_8960 == 0.0)_9000 = 1.0;highp vec2 _7339 = _7296 * (_7381 * ((((shadowUniforms.a[_8917].nearOverFarMinusNear + (_8960 / _8959)) / (shadowUniforms.a[_8917].nearOverFarMinusNear + _7310)) - 1.0) * frameUniforms.u));float _8963;_8963 = 0.0;for (uint _8962 = 0u; _8962 < 16u; )highp vec2 _7518 = _7416 * (_757[_8962] * _7339);highp vec2 _7523 = ((_7308 + _7518) * _7294) - vec2(0.5);highp vec2 _7525 = fract(_7523);highp ivec3 _7532 = ivec3(ivec2(_7523), int(_8916));vec4 _8636 = _9169;_8636.x = texelFetchOffset(light_shadowMap, _7532, 0, ivec2(0, 1)).x;vec4 _8638 = _8636;_8638.y = texelFetchOffset(light_shadowMap, _7532, 0, ivec2(1)).x;vec4 _8640 = _8638;_8640.z = texelFetchOffset(light_shadowMap, _7532, 0, ivec2(1, 0)).x;vec4 _8642 = _8640;_8642.w = texelFetchOffset(light_shadowMap, _7532, 0, ivec2(0)).x;vec4 _7578 = step(vec4(dot(_7373, _7518)), _8642 - vec4(_7310));highp float _7584 = _7525.x;_8963 += mix(mix(_7578.w, _7578.z, _7584), mix(_7578.x, _7578.y, _7584), _7525.y);_8962++;_9000 = 1.0 - (_8963 * 0.0625);_9008 = _9000;highp vec3 _7619 = _6874.xyz * (1.0 / _6874.w);highp vec2 _7632 = (_7619.xy * vec2(vec3(textureSize(light_shadowMap, 0)).xy)) - vec2(0.5);highp ivec3 _7638 = ivec3(ivec2(_7632), int(_8916));vec4 _8651 = _9169;_8651.x = texelFetchOffset(light_shadowMap, _7638, 0, ivec2(0, 1)).x;vec4 _8653 = _8651;_8653.y = texelFetchOffset(light_shadowMap, _7638, 0, ivec2(1)).x;vec4 _8655 = _8653;_8655.z = texelFetchOffset(light_shadowMap, _7638, 0, ivec2(1, 0)).x;vec4 _8657 = _8655;_8657.w = texelFetchOffset(light_shadowMap, _7638, 0, ivec2(0)).x;highp vec4 _7668 = step(vec4(0.0), _7619.zzzz - _8657);highp vec2 _7670 = fract(_7632);highp float _7676 = _7670.x;_9008 = mix(mix(_7668.w, _7668.z, _7676), mix(_7668.x, _7668.y, _7676), _7670.y);_9008 = 0.0;_9009 = _9008;_9009 = 1.0;float _9061;highp vec3 _9158;if (_8918 && (_9009 > 0.0))float _9062;highp vec3 _9159;uint _7712 = (frameUniforms.iz >> 8u) & 255u;highp vec4 _7820 = frameUniforms.e * vec4(vertex_worldPosition.xyz, 1.0);highp vec4 _7827 = frameUniforms.e * vec4(vertex_worldPosition.xyz + (_6612 * frameUniforms.kz), 1.0);highp vec4 _7833 = _7820 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));highp vec3 _7839 = _7820.xyz * (1.0 / _7820.w);highp vec3 _7846 = _7827.xyz * (1.0 / _7827.w);highp float _7873 = _7839.z;highp vec3 _7876 = vec3((_7839.xy * 0.5) + vec2(0.5), _7873);highp vec3 _7881 = vec3((_7846.xy * 0.5) + vec2(0.5), _7846.z) - _7876;float _7722 = 1.0 / float(_7712);highp float _7730 = abs((_7833.xyz * (1.0 / _7833.w)).z - _7873) * _7722;uint _9010;highp float _9011;highp vec3 _9013;_9011 = (_7722 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _7722;_9010 = 0u;_9013 = _9017;highp vec3 _7755;highp vec3 _9012;float _9057;if (_9010 < _7712)_7755 = _7876 + (_7881 * _9011);if (abs(_7730 - (textureLod(light_structure, _7755.xy, 0.0).x - _7755.z)) < _7730)_9057 = 1.0;_9012 = _7755;_9011 += _7722;_9010++;_9013 = _7755;_9057 = 0.0;_9012 = _9013;highp vec2 _7790 = max((abs(_9012.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_9159 = _9012;_9062 = _9009 * (1.0 - (_9057 * clamp(1.0 - dot(_7790, _7790), 0.0, 1.0)));_9159 = _9017;_9062 = _9009;_9158 = _9159;_9061 = _9062;_9158 = _9017;_9061 = _9009;if (_9061 <= 0.0)_9157 = _9158;_9160 = _9158;_9063 = _9061;_9160 = _9017;_9063 = 1.0;vec3 _7914 = normalize(_3775 + _6612);float _7917 = clamp(_6623, 0.0, 1.0);vec3 _8005 = cross(_3768, _7914);float _8011 = clamp(dot(_3768, _7914), 0.0, 1.0) * _3963;float _8018 = _3963 / (dot(_8005, _8005) + (_8011 * _8011));float _8059 = pow(1.0 - clamp(dot(_6612, _7914), 0.0, 1.0), 5.0);_9157 = _9160;_9105 = _8886 + ((((_3926 * 0.3183098733425140380859375) + (((vec3(_8059) + (_3943 * (1.0 - _8059))) * (min((_8018 * _8018) * 0.3183098733425140380859375, 65504.0) * min(0.5 / mix((2.0 * _7917) * _3828, _7917 + _3828, _3963), 65504.0))) * _3982)) * _8615.xyz) * (((_6696 * _8920) * _7917) * _9063));fragColor = vec4(_8886, 1.0);bvec4 _8101 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * vertex_worldPosition.x) + ((frameUniforms.a[1] * vertex_worldPosition.y) + ((frameUniforms.a[2] * vertex_worldPosition.z) + frameUniforms.a[3]))).z));uint _8111 = clamp(uint(dot(vec4(_8101.x ? vec4(1.0).x : vec4(0.0).x, _8101.y ? vec4(1.0).y : vec4(0.0).y, _8101.z ? vec4(1.0).z : vec4(0.0).z, _8101.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);vec3 _8887;if (_8111 == 0u)_8887 = vec3(0.0, 1.0, 0.0);if (_8111 == 1u)_8887 = vec3(0.0, 0.0, 1.0);if (_8111 == 2u)_8887 = vec3(1.0, 1.0, 0.0);if (_8111 == 3u)_8887 = vec3(1.0, 0.0, 0.0);if (_8111 == 4u)_8887 = vec3(1.0, 0.0, 1.0);if (_8111 == 5u)_8887 = vec3(0.0, 1.0, 1.0);_8887 = _8168;vec4 _3703 = fragColor;vec3 _3705 = _3703.xyz * _8887;fragColor.x = _3705.x;fragColor.y = _3705.y;fragColor.z = _3705.z;vec4 _225 = (objectUniforms.a[0] * mesh_position.x) + ((objectUniforms.a[1] * mesh_position.y) + ((objectUniforms.a[2] * mesh_position.z) + objectUniforms.a[3]));gl_Position = frameUniforms.e * _225;vertex_worldPosition.w = frameUniforms.bzz * (((((-(frameUniforms.a * _225).z) * frameUniforms.gzz) - frameUniforms.hzz) * 2.0) - 1.0);highp float _42 = exp(vertex_worldPosition.w);highp float _140 = dFdx(_42);highp float _141 = dFdy(_42);fragColor.x = _42;fragColor.y = (_42 * _42) + (0.25 * ((_140 * _140) + (_141 * _141)));fragColor.z = 0.0;fragColor.w = 0.0;vec4 _665;vec4 _662;vec4 _661;ivec3 _664;_664 = ivec3(gl_VertexID % 2048, gl_VertexID / 2048, 0);_661 = mesh_position;for (uint _660 = 0u; _660 < objectUniforms.c; )ivec3 _625 = _664;_625.z = int(_660);_664 = _625;_661 += (texelFetch(morphTargetBuffer_positions, _625, 0) * morphingUniforms.a[_660].x);_660++;_662 = _661;_662 = mesh_position;vec4 _663;mat4x3 _488 = transpose(bonesUniforms.a[mesh_bone_indices.x].transform);mat4x3 _515 = transpose(bonesUniforms.a[mesh_bone_indices.y].transform);mat4x3 _542 = transpose(bonesUniforms.a[mesh_bone_indices.z].transform);mat4x3 _569 = transpose(bonesUniforms.a[mesh_bone_indices.w].transform);vec3 _481 = (((((_488[0] * _662.x) + ((_488[1] * _662.y) + ((_488[2] * _662.z) + _488[3]))) * mesh_bone_weights.x) + (((_515[0] * _662.x) + ((_515[1] * _662.y) + ((_515[2] * _662.z) + _515[3]))) * mesh_bone_weights.y)) + (((_542[0] * _662.x) + ((_542[1] * _662.y) + ((_542[2] * _662.z) + _542[3]))) * mesh_bone_weights.z)) + (((_569[0] * _662.x) + ((_569[1] * _662.y) + ((_569[2] * _662.z) + _569[3]))) * mesh_bone_weights.w);vec4 _655 = _665;_655.x = _481.x;vec4 _657 = _655;_657.y = _481.y;vec4 _659 = _657;_659.z = _481.z;_663 = _659;_663 = _662;vec4 _604 = (objectUniforms.a[0] * _663.x) + ((objectUniforms.a[1] * _663.y) + ((objectUniforms.a[2] * _663.z) + objectUniforms.a[3]));gl_Position = frameUniforms.e * _604;vertex_worldPosition.w = frameUniforms.bzz * (((((-(frameUniforms.a * _604).z) * frameUniforms.gzz) - frameUniforms.hzz) * 2.0) - 1.0);const vec2 _702[64] = vec2[](vec2(0.5117490291595458984375, 0.54768598079681396484375), vec2(0.58929002285003662109375, 0.2572239935398101806640625), vec2(0.16501800715923309326171875, 0.57662999629974365234375), vec2(0.4076919853687286376953125, 0.7422850131988525390625), vec2(0.707011997699737548828125, 0.646522998809814453125), vec2(0.3146300017833709716796875, 0.466825008392333984375), vec2(0.80125701427459716796875, 0.4851860105991363525390625), vec2(0.41813600063323974609375, 0.14651699364185333251953125), vec2(0.579888999462127685546875, 0.03682839870452880859375), vec2(0.79800999164581298828125, 0.14011399447917938232421875), vec2(-0.041318498551845550537109375, 0.371455013751983642578125), vec2(-0.0529108010232448577880859375, 0.6273519992828369140625), vec2(0.082137502729892730712890625, 0.882071018218994140625), vec2(0.1730799973011016845703125, 0.301207005977630615234375), vec2(-0.12045200169086456298828125, 0.86721599102020263671875), vec2(0.3710959851741790771484375, 0.916454017162322998046875), vec2(-0.1783809959888458251953125, 0.1461009979248046875), vec2(-0.2764889895915985107421875, 0.550525009632110595703125), vec2(0.1254200041294097900390625, 0.126643002033233642578125), vec2(-0.2966539859771728515625, 0.286879003047943115234375), vec2(0.2617439925670623779296875, -0.0060497499071061611175537109375), vec2(-0.213416993618011474609375, 0.715776026248931884765625), vec2(0.4256840050220489501953125, -0.15321099758148193359375), vec2(-0.4800539910793304443359375, 0.3213570117950439453125), vec2(-0.071787796914577484130859375, -0.02505669929087162017822265625), vec2(-0.328774988651275634765625, -0.16966600716114044189453125), vec2(-0.3949230015277862548828125, 0.1308020055294036865234375), vec2(-0.55368101596832275390625, -0.17677700519561767578125), vec2(-0.7226150035858154296875, 0.120615996420383453369140625), vec2(-0.693064987659454345703125, 0.309017002582550048828125), vec2(0.603192985057830810546875, 0.791471004486083984375), vec2(-0.075494103133678436279296875, -0.297987997531890869140625), vec2(0.109302997589111328125, -0.1564719974994659423828125), vec2(0.2606050074100494384765625, -0.280111014842987060546875), vec2(0.129730999469757080078125, -0.4879539906978607177734375), vec2(-0.53731501102447509765625, 0.520493984222412109375), vec2(-0.42757999897003173828125, 0.800607025623321533203125), vec2(0.77309000492095947265625, -0.0728102028369903564453125), vec2(0.9087769985198974609375, 0.3283559978008270263671875), vec2(0.985341012477874755859375, 0.07591579854488372802734375), vec2(0.947535991668701171875, -0.118369996547698974609375), vec2(-0.103315003216266632080078125, -0.61074697971343994140625), vec2(0.3371709883213043212890625, -0.58399999141693115234375), vec2(0.2109189927577972412109375, -0.72005498409271240234375), vec2(0.418940007686614990234375, -0.3676899969577789306640625), vec2(-0.25422799587249755859375, -0.49368000030517578125), vec2(-0.428561985492706298828125, -0.404036998748779296875), vec2(-0.831731975078582763671875, -0.18961499631404876708984375), vec2(-0.9226419925689697265625, 0.088802598416805267333984375), vec2(-0.86591398715972900390625, 0.427794992923736572265625), vec2(0.706116974353790283203125, -0.3116619884967803955078125), vec2(0.545464992523193359375, -0.5209419727325439453125), vec2(-0.695738017559051513671875, 0.66449201107025146484375), vec2(0.389420986175537109375, -0.899007022380828857421875), vec2(0.488420009613037109375, -0.708054006099700927734375), vec2(0.7602980136871337890625, -0.62734997272491455078125), vec2(-0.3907879889011383056640625, -0.707387983798980712890625), vec2(-0.59104597568511962890625, -0.686721026897430419921875), vec2(-0.769903004169464111328125, -0.4137749969959259033203125), vec2(-0.60445702075958251953125, -0.50257098674774169921875), vec2(-0.557233989238739013671875, 0.0045136199332773685455322265625), vec2(0.14757199585437774658203125, -0.92435300350189208984375), vec2(-0.066248796880245208740234375, -0.8920810222625732421875), vec2(0.863831996917724609375, -0.407205998897552490234375));vec3 _6475;vec4 _6477;float _6678;vec4 _6679;vec3 _5978;bool _3826;highp vec3 _3391 = normalize(vertex_worldNormal);highp vec3 _3398 = normalize(frameUniforms.j - vertex_worldPosition.xyz);highp vec2 _3406 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);float _3451 = max(dot(_3391, _3398), 9.9999997473787516355514526367188e-05);vec3 _3444 = reflect(-_3398, _3391);vec4 _6326 = vec4(1.0);_6326.x = materialParams.a.x;vec4 _6328 = _6326;_6328.y = materialParams.a.y;vec4 _6330 = _6328;_6330.z = materialParams.a.z;float _3543 = 1.0 - materialParams.b;vec3 _3544 = _6330.xyz * _3543;vec3 _3561 = (_6330.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _3543);float _3571 = clamp(materialParams.c, 0.08900000154972076416015625, 1.0);float _3581 = _3571 * _3571;vec4 _3615 = textureLod(light_iblDFG, vec2(_3451, _3571), 0.0);vec3 _3600 = vec3(1.0) + (_3561 * ((1.0 / _3615.y) - 1.0));highp float _3749 = _3406.x;vec3 _3762 = mix(_3615.xxx, _3615.yyy, _3561);float _3775 = _3581 * _3581;float _6478;highp vec4 _6479;_3826 = frameUniforms.vz > 0.0;if (_3826)highp vec3 _3849 = vec3(_3749, _3406.y, 0.0);vec4 _3850 = textureLodOffset(light_ssao, _3849, 0.0, ivec2(0, 1));vec4 _3858 = textureLodOffset(light_ssao, _3849, 0.0, ivec2(1));vec4 _3866 = textureLodOffset(light_ssao, _3849, 0.0, ivec2(1, 0));vec4 _3874 = textureLodOffset(light_ssao, _3849, 0.0, ivec2(0));vec4 _6349 = _6477;_6349.x = (_3850.y * 0.996108949184417724609375) + (_3850.z * 0.00389105058275163173675537109375);vec4 _6355 = _6349;_6355.y = (_3858.y * 0.996108949184417724609375) + (_3858.z * 0.00389105058275163173675537109375);vec4 _6361 = _6355;_6361.z = (_3866.y * 0.996108949184417724609375) + (_3866.z * 0.00389105058275163173675537109375);vec4 _6367 = _6361;_6367.w = (_3874.y * 0.996108949184417724609375) + (_3874.z * 0.00389105058275163173675537109375);highp vec2 _3942 = fract((vec3(_3749, _3406.y, _6678).xy * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _3944 = _3942.x;float _3945 = 1.0 - _3944;float _3947 = _3942.y;vec4 _6371 = _6477;_6371.x = _3945 * _3947;vec4 _6375 = _6371;_6375.y = _3944 * _3947;float _3960 = 1.0 - _3947;vec4 _6379 = _6375;_6379.z = _3944 * _3960;vec4 _6383 = _6379;_6383.w = _3945 * _3960;vec4 _3990 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), vertex_worldPosition.xyz) + frameUniforms.a[3].z) - (_6367 * (-frameUniforms.gz))) * frameUniforms.vz;highp vec4 _3998 = max(vec4(6.103515625e-05), vec4(1.0) - (_3990 * _3990)) * _6383;highp vec4 _4012 = _3998 / vec4(((_3998.x + _3998.y) + _3998.z) + _3998.w);_6479 = _4012;_6478 = dot(vec4(_3850.x, _3858.x, _3866.x, _3874.x), _4012);_6479 = _6477;_6478 = textureLod(light_ssao, vec3(_3749, _3406.y, 0.0), 0.0).x;float _3670 = min(1.0, _6478);float _6487;vec3 _6481;highp vec3 _4098 = vec3(_3749, _3406.y, 1.0);vec4 _4099 = textureLodOffset(light_ssao, _4098, 0.0, ivec2(0, 1));vec4 _4106 = textureLodOffset(light_ssao, _4098, 0.0, ivec2(1));vec4 _4113 = textureLodOffset(light_ssao, _4098, 0.0, ivec2(1, 0));vec4 _4120 = textureLodOffset(light_ssao, _4098, 0.0, ivec2(0));vec3 _6405 = _6475;_6405.x = dot(vec4(_4099.x, _4106.x, _4113.x, _4120.x), _6479);vec3 _6407 = _6405;_6407.y = dot(vec4(_4099.y, _4106.y, _4113.y, _4120.y), _6479);vec3 _6409 = _6407;_6409.z = dot(vec4(_4099.z, _4106.z, _4113.z, _4120.z), _6479);_6481 = _6409;_6481 = textureLod(light_ssao, vec3(_3749, _3406.y, 1.0), 0.0).xyz;float _4310;float _4193 = sqrt(1.0 - _3670);float _4197 = exp2((-3.3219280242919921875) * _3775);float _4200 = dot(normalize((_6481 * 2.0) - vec3(1.0)), _3444);float _6483;float _4301 = (((-0.15658269822597503662109375) * _4193) + 1.57079601287841796875) * sqrt(1.0 - _4193);_4310 = 1.0 - _4197;float _4312 = (((-0.15658269822597503662109375) * _4197) + 1.57079601287841796875) * sqrt(_4310);float _4319 = abs(_4200);float _4327 = (((-0.15658269822597503662109375) * _4319) + 1.57079601287841796875) * sqrt(1.0 - _4319);float _6482;if (_4200 >= 0.0)_6482 = _4327;_6482 = 3.1415927410125732421875 - _4327;float _4250;if (min(_4301, _4312) <= (max(_4301, _4312) - _6482))_6483 = 1.0 - max(_4193, _4197);_4250 = _4301 + _4312;if (_4250 <= _6482)_6483 = 0.0;float _4264 = abs(_4301 - _4312);float _4276 = 1.0 - clamp((_6482 - _4264) / max(_4250 - _4264, 9.9999997473787516355514526367188e-05), 0.0, 1.0);_6483 = ((_4276 * _4276) * (((-2.0) * _4276) + 3.0)) * (1.0 - max(_4193, _4197));_6487 = min(1.0, mix(1.0, _6483 / _4310, smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _3581)));_6487 = 1.0;vec3 _6493;_6493 = textureLod(light_iblSpecular, _3391, frameUniforms.fz).xyz;float _4370 = _3391.y;float _4375 = _3391.z;float _4380 = _3391.x;_6493 = max((((((((frameUniforms.dz[0] + (frameUniforms.dz[1] * _4370)) + (frameUniforms.dz[2] * _4375)) + (frameUniforms.dz[3] * _4380)) + (frameUniforms.dz[4] * (_4370 * _4380))) + (frameUniforms.dz[5] * (_4370 * _4375))) + (frameUniforms.dz[6] * (((3.0 * _4375) * _4375) - 1.0))) + (frameUniforms.dz[7] * (_4375 * _4380))) + (frameUniforms.dz[8] * ((_4380 * _4380) - (_4370 * _4370))), vec3(0.0));vec4 _4534;vec3 _4537;vec3 _3740 = (((_3762 * textureLod(light_iblSpecular, mix(_3444, _3391, vec3(_3775)), (frameUniforms.fz * _3571) * (2.0 - _3571)).xyz) * (_3600 * _6487)) * frameUniforms.az) + ((((_3544 * _6493) * (vec3(1.0) - _3762)) * _3670) * frameUniforms.az);vec3 _6663;_4534 = frameUniforms.l;_4537 = frameUniforms.q;vec3 _6502;float _4567 = dot(_4537, _3444);highp vec3 _6501;if (_4567 < frameUniforms.m.x)_6501 = normalize((_4537 * frameUniforms.m.x) + (normalize(_3444 - (_4537 * _4567)) * frameUniforms.m.y));_6501 = _3444;_6502 = _6501;_6502 = _4537;float _4545 = clamp(dot(_3391, _6502), 0.0, 1.0);_6663 = _3740;if (_4545 <= 0.0)float _6642;if (_4545 > 0.0)bvec4 _4609 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * vertex_worldPosition.x) + ((frameUniforms.a[1] * vertex_worldPosition.y) + ((frameUniforms.a[2] * vertex_worldPosition.z) + frameUniforms.a[3]))).z));uint _4619 = clamp(uint(dot(vec4(_4609.x ? vec4(1.0).x : vec4(0.0).x, _4609.y ? vec4(1.0).y : vec4(0.0).y, _4609.z ? vec4(1.0).z : vec4(0.0).z, _4609.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);if (((frameUniforms.iz & 1u) != 0u) && ((frameUniforms.uz & ((1u << _4619) << 8u)) != 0u))float _6594;highp vec4 _6545;if (_4619 == 0u)_6545 = vertex_lightSpacePosition;_6545 = (frameUniforms.g[_4619][0] * vertex_worldPosition.x) + ((frameUniforms.g[_4619][1] * vertex_worldPosition.y) + ((frameUniforms.g[_4619][2] * vertex_worldPosition.z) + frameUniforms.g[_4619][3]));vec4 _4758 = texture(light_shadowMap, vec3(_6545.xy * (1.0 / _6545.w), float(_4619)));highp float _4768 = exp(frameUniforms.bzz * ((_6545.z * 2.0) - 1.0));highp float _4780 = frameUniforms.czz * _4768;highp float _4794 = _4758.x;highp float _4799 = max(_4758.y - (_4794 * _4794), _4780 * _4780);highp float _4801 = _4768 - _4794;_6594 = (_4768 <= _4794) ? 1.0 : clamp(((_4799 / (_4799 + (_4801 * _4801))) - frameUniforms.dzz) / (1.0 - frameUniforms.dzz), 0.0, 1.0);float _6593;highp vec3 _4850 = _6545.xyz * (1.0 / _6545.w);highp vec3 _4906 = dFdx(_4850);highp vec3 _4907 = dFdy(_4850);highp vec2 _4926 = inverse(transpose(mat2(vec2(_4906.xy), vec2(_4907.xy)))) * vec2(_4906.z, _4907.z);float _4952 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _4954 = cos(_4952);float _4956 = sin(_4952);mat2 _4969 = mat2(vec2(_4954, _4956), vec2(-_4956, _4954));highp vec2 _4866 = _4850.xy;highp float _4868 = _4850.z;highp vec2 _4871 = (vec2(1.0) / vec2(vec3(textureSize(light_shadowMap, 0)).xy)) * frameUniforms.s;float _6589;_6590 = 0.0;_6589 = 0.0;for (uint _6588 = 0u; _6588 < 12u; )highp vec2 _4995 = _4969 * (_702[_6588] * _4871);vec4 _5003 = textureLod(light_shadowMap, vec3(_4866 + _4995, float(_4619)), 0.0);float _5004 = _5003.x;float _5011 = step(dot(_4926, _4995), _5004 - _4868);_6590 += (_5004 * _5011);_6589 += _5011;_6588++;if (_6590 == 0.0)_6593 = 1.0;float _4884 = _6590 / _6589;float _5056 = (_6589 * 0.16666667163372039794921875) - 1.0;float _5058 = sign(_5056);float _5062 = 1.0 - (_5058 * _5056);_6593 = 1.0 - mix((0.5 * (_5058 - (((_5062 * _5062) * _5062) * _5058))) + 0.5, _6589 * 0.083333335816860198974609375, clamp(((_4884 - _4868) / (1.0 - _4884)) * frameUniforms.u, 0.0, 1.0));_6594 = _6593;highp vec2 _5104 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);highp vec2 _5106 = vec2(1.0) / _5104;highp vec3 _5110 = _6545.xyz * (1.0 / _6545.w);highp vec3 _5163 = dFdx(_5110);highp vec3 _5164 = dFdy(_5110);highp vec2 _5183 = inverse(transpose(mat2(vec2(_5163.xy), vec2(_5164.xy)))) * vec2(_5163.z, _5164.z);float _5209 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _5211 = cos(_5209);float _5213 = sin(_5209);mat2 _5226 = mat2(vec2(_5211, _5213), vec2(-_5213, _5211));highp vec2 _5118 = _5110.xy;highp float _5120 = _5110.z;highp vec2 _5123 = _5106 * frameUniforms.s;float _6567;float _6568;_6568 = 0.0;_6567 = 0.0;for (uint _6566 = 0u; _6566 < 16u; )highp vec2 _5252 = _5226 * (_702[_6566] * _5123);vec4 _5260 = textureLod(light_shadowMap, vec3(_5118 + _5252, float(_4619)), 0.0);float _5261 = _5260.x;float _5268 = step(dot(_5183, _5252), _5261 - _5120);_6568 += (_5261 * _5268);_6567 += _5268;_6566++;if (_6568 == 0.0)_6586 = 1.0;float _5136 = _6568 / _6567;highp vec2 _5149 = _5106 * (frameUniforms.s * (((_5136 - _5120) / (1.0 - _5136)) * frameUniforms.u));float _6571;_6571 = 0.0;for (uint _6570 = 0u; _6570 < 16u; )highp vec2 _5328 = _5226 * (_702[_6570] * _5149);highp vec2 _5333 = ((_5118 + _5328) * _5104) - vec2(0.5);highp vec2 _5335 = fract(_5333);highp ivec3 _5342 = ivec3(ivec2(_5333), int(_4619));vec4 _6430 = _6679;_6430.x = texelFetchOffset(light_shadowMap, _5342, 0, ivec2(0, 1)).x;vec4 _6432 = _6430;_6432.y = texelFetchOffset(light_shadowMap, _5342, 0, ivec2(1)).x;vec4 _6434 = _6432;_6434.z = texelFetchOffset(light_shadowMap, _5342, 0, ivec2(1, 0)).x;vec4 _6436 = _6434;_6436.w = texelFetchOffset(light_shadowMap, _5342, 0, ivec2(0)).x;vec4 _5388 = step(vec4(dot(_5183, _5328)), _6436 - vec4(_5120));highp float _5394 = _5335.x;_6571 += mix(mix(_5388.w, _5388.z, _5394), mix(_5388.x, _5388.y, _5394), _5335.y);_6570++;_6586 = 1.0 - (_6571 * 0.0625);_6594 = _6586;highp vec3 _5429 = _6545.xyz * (1.0 / _6545.w);highp vec2 _5442 = (_5429.xy * vec2(vec3(textureSize(light_shadowMap, 0)).xy)) - vec2(0.5);highp ivec3 _5448 = ivec3(ivec2(_5442), int(_4619));vec4 _6445 = _6679;_6445.x = texelFetchOffset(light_shadowMap, _5448, 0, ivec2(0, 1)).x;vec4 _6447 = _6445;_6447.y = texelFetchOffset(light_shadowMap, _5448, 0, ivec2(1)).x;vec4 _6449 = _6447;_6449.z = texelFetchOffset(light_shadowMap, _5448, 0, ivec2(1, 0)).x;vec4 _6451 = _6449;_6451.w = texelFetchOffset(light_shadowMap, _5448, 0, ivec2(0)).x;highp vec4 _5478 = step(vec4(0.0), _5429.zzzz - _6451);highp vec2 _5480 = fract(_5442);highp float _5486 = _5480.x;_6594 = mix(mix(_5478.w, _5478.z, _5486), mix(_5478.x, _5478.y, _5486), _5480.y);_6594 = 0.0;_6595 = _6594;float _6623;if (((frameUniforms.iz & 2u) != 0u) && (_6595 > 0.0))float _6637;uint _5522 = (frameUniforms.iz >> 8u) & 255u;highp vec4 _5630 = frameUniforms.e * vec4(vertex_worldPosition.xyz, 1.0);highp vec4 _5637 = frameUniforms.e * vec4(vertex_worldPosition.xyz + (_6502 * frameUniforms.kz), 1.0);highp vec4 _5643 = _5630 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));highp vec3 _5649 = _5630.xyz * (1.0 / _5630.w);highp vec3 _5656 = _5637.xyz * (1.0 / _5637.w);highp float _5683 = _5649.z;highp vec3 _5686 = vec3((_5649.xy * 0.5) + vec2(0.5), _5683);highp vec3 _5691 = vec3((_5656.xy * 0.5) + vec2(0.5), _5656.z) - _5686;float _5532 = 1.0 / float(_5522);highp float _5540 = abs((_5643.xyz * (1.0 / _5643.w)).z - _5683) * _5532;uint _6596;highp float _6597;highp vec3 _6599;_6597 = (_5532 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _5532;_6596 = 0u;_6599 = _6475;highp vec3 _5565;highp vec3 _6598;float _6621;if (_6596 < _5522)_5565 = _5686 + (_5691 * _6597);if (abs(_5540 - (textureLod(light_structure, _5565.xy, 0.0).x - _5565.z)) < _5540)_6621 = 1.0;_6598 = _5565;_6597 += _5532;_6596++;_6599 = _5565;_6621 = 0.0;_6598 = _6599;highp vec2 _5600 = max((abs(_6598.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_6637 = _6621 * clamp(1.0 - dot(_5600, _5600), 0.0, 1.0);_6637 = 0.0;_6623 = _6637;_6623 = 0.0;float _4518 = _6595 * (1.0 - _6623);if (_4518 <= 0.0)_6642 = _4518;_6642 = 1.0;vec3 _5724 = normalize(_3398 + _6502);float _5727 = clamp(_4545, 0.0, 1.0);vec3 _5815 = cross(_3391, _5724);float _5821 = clamp(dot(_3391, _5724), 0.0, 1.0) * _3581;float _5828 = _3581 / (dot(_5815, _5815) + (_5821 * _5821));float _5869 = pow(1.0 - clamp(dot(_6502, _5724), 0.0, 1.0), 5.0);_6663 = _3740 + ((((_3544 * 0.3183098733425140380859375) + (((vec3(_5869) + (_3561 * (1.0 - _5869))) * (min((_5828 * _5828) * 0.3183098733425140380859375, 65504.0) * min(0.5 / mix((2.0 * _5727) * _3451, _5727 + _3451, _3581), 65504.0))) * _3600)) * _4534.xyz) * ((_4534.w * _5727) * _6642));fragColor = vec4(_6663, 1.0);bvec4 _5911 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * vertex_worldPosition.x) + ((frameUniforms.a[1] * vertex_worldPosition.y) + ((frameUniforms.a[2] * vertex_worldPosition.z) + frameUniforms.a[3]))).z));uint _5921 = clamp(uint(dot(vec4(_5911.x ? vec4(1.0).x : vec4(0.0).x, _5911.y ? vec4(1.0).y : vec4(0.0).y, _5911.z ? vec4(1.0).z : vec4(0.0).z, _5911.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);vec3 _6664;if (_5921 == 0u)_6664 = vec3(0.0, 1.0, 0.0);if (_5921 == 1u)_6664 = vec3(0.0, 0.0, 1.0);if (_5921 == 2u)_6664 = vec3(1.0, 1.0, 0.0);if (_5921 == 3u)_6664 = vec3(1.0, 0.0, 0.0);if (_5921 == 4u)_6664 = vec3(1.0, 0.0, 1.0);if (_5921 == 5u)_6664 = vec3(0.0, 1.0, 1.0);_6664 = _5978;vec4 _3301 = fragColor;vec3 _3303 = _3301.xyz * _6664;fragColor.x = _3303.x;fragColor.y = _3303.y;fragColor.z = _3303.z;highp vec3 _3314 = vertex_worldPosition.xyz - frameUniforms.j;vec4 _6669;float _6013 = length(_3314);float _6016 = max(0.001000000047497451305389404296875, _3314.y);float _6026 = frameUniforms.qz * ((1.0 - exp((-frameUniforms.oz) * _6016)) / _6016);float _6042 = min(max(1.0 - exp2(-(_6026 * max(_6013 - frameUniforms.lz, 0.0))), 0.0), frameUniforms.mz);vec3 _6665;_6665 = frameUniforms.pz * (textureLod(light_iblSpecular, _3314, frameUniforms.fz).xyz * frameUniforms.az);_6665 = frameUniforms.pz;vec3 _6064 = _6665 * _6042;vec3 _6668;_6668 = _6064 + ((_4534.xyz * frameUniforms.l.w) * (pow(max(dot(_3314, _4537) / _6013, 0.0), frameUniforms.sz) * max(1.0 - exp2(-(_6026 * max(_6013 - frameUniforms.rz, 0.0))), 0.0)));_6668 = _6064;vec3 _6112 = (fragColor.xyz * (1.0 - _6042)) + _6668;vec4 _6470 = fragColor;_6470.x = _6112.x;vec4 _6472 = _6470;_6472.y = _6112.y;vec4 _6474 = _6472;_6474.z = _6112.z;_6669 = _6474;_6669 = fragColor;fragColor = _6669;const vec2 _740[64] = vec2[](vec2(0.5117490291595458984375, 0.54768598079681396484375), vec2(0.58929002285003662109375, 0.2572239935398101806640625), vec2(0.16501800715923309326171875, 0.57662999629974365234375), vec2(0.4076919853687286376953125, 0.7422850131988525390625), vec2(0.707011997699737548828125, 0.646522998809814453125), vec2(0.3146300017833709716796875, 0.466825008392333984375), vec2(0.80125701427459716796875, 0.4851860105991363525390625), vec2(0.41813600063323974609375, 0.14651699364185333251953125), vec2(0.579888999462127685546875, 0.03682839870452880859375), vec2(0.79800999164581298828125, 0.14011399447917938232421875), vec2(-0.041318498551845550537109375, 0.371455013751983642578125), vec2(-0.0529108010232448577880859375, 0.6273519992828369140625), vec2(0.082137502729892730712890625, 0.882071018218994140625), vec2(0.1730799973011016845703125, 0.301207005977630615234375), vec2(-0.12045200169086456298828125, 0.86721599102020263671875), vec2(0.3710959851741790771484375, 0.916454017162322998046875), vec2(-0.1783809959888458251953125, 0.1461009979248046875), vec2(-0.2764889895915985107421875, 0.550525009632110595703125), vec2(0.1254200041294097900390625, 0.126643002033233642578125), vec2(-0.2966539859771728515625, 0.286879003047943115234375), vec2(0.2617439925670623779296875, -0.0060497499071061611175537109375), vec2(-0.213416993618011474609375, 0.715776026248931884765625), vec2(0.4256840050220489501953125, -0.15321099758148193359375), vec2(-0.4800539910793304443359375, 0.3213570117950439453125), vec2(-0.071787796914577484130859375, -0.02505669929087162017822265625), vec2(-0.328774988651275634765625, -0.16966600716114044189453125), vec2(-0.3949230015277862548828125, 0.1308020055294036865234375), vec2(-0.55368101596832275390625, -0.17677700519561767578125), vec2(-0.7226150035858154296875, 0.120615996420383453369140625), vec2(-0.693064987659454345703125, 0.309017002582550048828125), vec2(0.603192985057830810546875, 0.791471004486083984375), vec2(-0.075494103133678436279296875, -0.297987997531890869140625), vec2(0.109302997589111328125, -0.1564719974994659423828125), vec2(0.2606050074100494384765625, -0.280111014842987060546875), vec2(0.129730999469757080078125, -0.4879539906978607177734375), vec2(-0.53731501102447509765625, 0.520493984222412109375), vec2(-0.42757999897003173828125, 0.800607025623321533203125), vec2(0.77309000492095947265625, -0.0728102028369903564453125), vec2(0.9087769985198974609375, 0.3283559978008270263671875), vec2(0.985341012477874755859375, 0.07591579854488372802734375), vec2(0.947535991668701171875, -0.118369996547698974609375), vec2(-0.103315003216266632080078125, -0.61074697971343994140625), vec2(0.3371709883213043212890625, -0.58399999141693115234375), vec2(0.2109189927577972412109375, -0.72005498409271240234375), vec2(0.418940007686614990234375, -0.3676899969577789306640625), vec2(-0.25422799587249755859375, -0.49368000030517578125), vec2(-0.428561985492706298828125, -0.404036998748779296875), vec2(-0.831731975078582763671875, -0.18961499631404876708984375), vec2(-0.9226419925689697265625, 0.088802598416805267333984375), vec2(-0.86591398715972900390625, 0.427794992923736572265625), vec2(0.706116974353790283203125, -0.3116619884967803955078125), vec2(0.545464992523193359375, -0.5209419727325439453125), vec2(-0.695738017559051513671875, 0.66449201107025146484375), vec2(0.389420986175537109375, -0.899007022380828857421875), vec2(0.488420009613037109375, -0.708054006099700927734375), vec2(0.7602980136871337890625, -0.62734997272491455078125), vec2(-0.3907879889011383056640625, -0.707387983798980712890625), vec2(-0.59104597568511962890625, -0.686721026897430419921875), vec2(-0.769903004169464111328125, -0.4137749969959259033203125), vec2(-0.60445702075958251953125, -0.50257098674774169921875), vec2(-0.557233989238739013671875, 0.0045136199332773685455322265625), vec2(0.14757199585437774658203125, -0.92435300350189208984375), vec2(-0.066248796880245208740234375, -0.8920810222625732421875), vec2(0.863831996917724609375, -0.407205998897552490234375));vec3 _6888;vec4 _6890;float _7144;vec4 _7145;bool _4042;highp vec3 _3607 = normalize(vertex_worldNormal);highp vec3 _3614 = normalize(frameUniforms.j - vertex_worldPosition.xyz);highp vec2 _3622 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);float _3667 = max(dot(_3607, _3614), 9.9999997473787516355514526367188e-05);vec3 _3660 = reflect(-_3614, _3607);vec4 _6713 = vec4(1.0);_6713.x = materialParams.a.x;vec4 _6715 = _6713;_6715.y = materialParams.a.y;vec4 _6717 = _6715;_6717.z = materialParams.a.z;float _3759 = 1.0 - materialParams.b;vec3 _3760 = _6717.xyz * _3759;vec3 _3777 = (_6717.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _3759);float _3787 = clamp(materialParams.c, 0.08900000154972076416015625, 1.0);float _3797 = _3787 * _3787;vec4 _3831 = textureLod(light_iblDFG, vec2(_3667, _3787), 0.0);vec3 _3816 = vec3(1.0) + (_3777 * ((1.0 / _3831.y) - 1.0));highp float _3965 = _3622.x;vec3 _3978 = mix(_3831.xxx, _3831.yyy, _3777);float _3991 = _3797 * _3797;float _6891;highp vec4 _6892;_4042 = frameUniforms.vz > 0.0;if (_4042)highp vec3 _4065 = vec3(_3965, _3622.y, 0.0);vec4 _4066 = textureLodOffset(light_ssao, _4065, 0.0, ivec2(0, 1));vec4 _4074 = textureLodOffset(light_ssao, _4065, 0.0, ivec2(1));vec4 _4082 = textureLodOffset(light_ssao, _4065, 0.0, ivec2(1, 0));vec4 _4090 = textureLodOffset(light_ssao, _4065, 0.0, ivec2(0));vec4 _6736 = _6890;_6736.x = (_4066.y * 0.996108949184417724609375) + (_4066.z * 0.00389105058275163173675537109375);vec4 _6742 = _6736;_6742.y = (_4074.y * 0.996108949184417724609375) + (_4074.z * 0.00389105058275163173675537109375);vec4 _6748 = _6742;_6748.z = (_4082.y * 0.996108949184417724609375) + (_4082.z * 0.00389105058275163173675537109375);vec4 _6754 = _6748;_6754.w = (_4090.y * 0.996108949184417724609375) + (_4090.z * 0.00389105058275163173675537109375);highp vec2 _4158 = fract((vec3(_3965, _3622.y, _7144).xy * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _4160 = _4158.x;float _4161 = 1.0 - _4160;float _4163 = _4158.y;vec4 _6758 = _6890;_6758.x = _4161 * _4163;vec4 _6762 = _6758;_6762.y = _4160 * _4163;float _4176 = 1.0 - _4163;vec4 _6766 = _6762;_6766.z = _4160 * _4176;vec4 _6770 = _6766;_6770.w = _4161 * _4176;vec4 _4206 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), vertex_worldPosition.xyz) + frameUniforms.a[3].z) - (_6754 * (-frameUniforms.gz))) * frameUniforms.vz;highp vec4 _4214 = max(vec4(6.103515625e-05), vec4(1.0) - (_4206 * _4206)) * _6770;highp vec4 _4228 = _4214 / vec4(((_4214.x + _4214.y) + _4214.z) + _4214.w);_6892 = _4228;_6891 = dot(vec4(_4066.x, _4074.x, _4082.x, _4090.x), _4228);_6892 = _6890;_6891 = textureLod(light_ssao, vec3(_3965, _3622.y, 0.0), 0.0).x;float _3886 = min(1.0, _6891);float _6900;vec3 _6894;highp vec3 _4314 = vec3(_3965, _3622.y, 1.0);vec4 _4315 = textureLodOffset(light_ssao, _4314, 0.0, ivec2(0, 1));vec4 _4322 = textureLodOffset(light_ssao, _4314, 0.0, ivec2(1));vec4 _4329 = textureLodOffset(light_ssao, _4314, 0.0, ivec2(1, 0));vec4 _4336 = textureLodOffset(light_ssao, _4314, 0.0, ivec2(0));vec3 _6792 = _6888;_6792.x = dot(vec4(_4315.x, _4322.x, _4329.x, _4336.x), _6892);vec3 _6794 = _6792;_6794.y = dot(vec4(_4315.y, _4322.y, _4329.y, _4336.y), _6892);vec3 _6796 = _6794;_6796.z = dot(vec4(_4315.z, _4322.z, _4329.z, _4336.z), _6892);_6894 = _6796;_6894 = textureLod(light_ssao, vec3(_3965, _3622.y, 1.0), 0.0).xyz;float _4526;float _4409 = sqrt(1.0 - _3886);float _4413 = exp2((-3.3219280242919921875) * _3991);float _4416 = dot(normalize((_6894 * 2.0) - vec3(1.0)), _3660);float _6896;float _4517 = (((-0.15658269822597503662109375) * _4409) + 1.57079601287841796875) * sqrt(1.0 - _4409);_4526 = 1.0 - _4413;float _4528 = (((-0.15658269822597503662109375) * _4413) + 1.57079601287841796875) * sqrt(_4526);float _4535 = abs(_4416);float _4543 = (((-0.15658269822597503662109375) * _4535) + 1.57079601287841796875) * sqrt(1.0 - _4535);float _6895;if (_4416 >= 0.0)_6895 = _4543;_6895 = 3.1415927410125732421875 - _4543;float _4466;if (min(_4517, _4528) <= (max(_4517, _4528) - _6895))_6896 = 1.0 - max(_4409, _4413);_4466 = _4517 + _4528;if (_4466 <= _6895)_6896 = 0.0;float _4480 = abs(_4517 - _4528);float _4492 = 1.0 - clamp((_6895 - _4480) / max(_4466 - _4480, 9.9999997473787516355514526367188e-05), 0.0, 1.0);_6896 = ((_4492 * _4492) * (((-2.0) * _4492) + 3.0)) * (1.0 - max(_4409, _4413));_6900 = min(1.0, mix(1.0, _6896 / _4526, smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _3797)));_6900 = 1.0;vec3 _6906;_6906 = textureLod(light_iblSpecular, _3607, frameUniforms.fz).xyz;float _4586 = _3607.y;float _4591 = _3607.z;float _4596 = _3607.x;_6906 = max((((((((frameUniforms.dz[0] + (frameUniforms.dz[1] * _4586)) + (frameUniforms.dz[2] * _4591)) + (frameUniforms.dz[3] * _4596)) + (frameUniforms.dz[4] * (_4586 * _4596))) + (frameUniforms.dz[5] * (_4586 * _4591))) + (frameUniforms.dz[6] * (((3.0 * _4591) * _4591) - 1.0))) + (frameUniforms.dz[7] * (_4591 * _4596))) + (frameUniforms.dz[8] * ((_4596 * _4596) - (_4586 * _4586))), vec3(0.0));highp uvec2 _4800 = uvec2((vec3(_3965, _3622.y, gl_FragCoord.z).xy * frameUniforms.i.xy) * vec2(frameUniforms.z, frameUniforms.v));uint _4782 = ((_4800.x * frameUniforms.r) + (_4800.y * frameUniforms.x.x)) + (uint(clamp((log2((frameUniforms.w.x * gl_FragCoord.z) + frameUniforms.w.y) * frameUniforms.w.z) + frameUniforms.w.w, 0.0, frameUniforms.w.w - 1.0)) * frameUniforms.x.y);uvec4 _4839 = texelFetch(light_froxels, ivec2(int(_4782 & 63u), int(_4782 >> 6u)), 0);uint _4842 = _4839.x;uint _4676 = _4842 + (_4839.y & 255u);uint _4679 = objectUniforms.e & 255u;vec3 _6922;vec4 _6928;highp vec3 _6999;_6999 = _6888;_6928 = _6890;_6922 = (((_3978 * textureLod(light_iblSpecular, mix(_3660, _3607, vec3(_3991)), (frameUniforms.fz * _3787) * (2.0 - _3787)).xyz) * (_3816 * _6900)) * frameUniforms.az) + ((((_3760 * _6906) * (vec3(1.0) - _3978)) * _3886) * frameUniforms.az);vec4 _6823;vec3 _7063;highp vec3 _7131;for (uint _6921 = _4842; _6921 < _4676; _6999 = _7131, _6928 = _6823, _6922 = _7063, _6921++)highp uvec4 _4986 = froxelRecordUniforms.a[_6921 >> 4u];highp uint _5003 = (_4986[(_6921 >> 2u) & 3u] >> ((_6921 & 3u) * 8u)) & 255u;highp vec2 _4887 = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_5003][2].x));highp uint _4904 = floatBitsToUint(lightsUniforms.a[_5003][3].z);highp uint _4907 = floatBitsToUint(lightsUniforms.a[_5003][3].w);highp vec3 _4912 = lightsUniforms.a[_5003][0].xyz - vertex_worldPosition.xyz;vec4 _6817 = _6928;_6817.x = _4887.x;vec4 _6819 = _6817;_6819.y = _4887.y;_6821.z = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_5003][2].y)).x;highp float _5011 = lightsUniforms.a[_5003][3].y * frameUniforms.bz;_6823 = _6821;_6823.w = _5011;highp vec3 _4927 = normalize(_4912);highp float _5021 = dot(_4912, _4912);float _5051 = _5021 * lightsUniforms.a[_5003][0].w;float _5056 = clamp(1.0 - (_5051 * _5051), 0.0, 1.0);highp vec3 _5027 = vertex_worldPosition.xyz - frameUniforms.j;float _5044 = ((_5056 * _5056) * clamp(frameUniforms.n.x - (dot(_5027, _5027) * frameUniforms.n.y), 0.0, 1.0)) / max(_5021, 9.9999997473787516355514526367188e-05);float _4938 = clamp(dot(_3607, _4927), 0.0, 1.0);uint _6935;uint _6936;bool _6937;bool _6938;float _6939;if ((_4904 & 1u) == 1u)highp float _5077 = clamp((dot(-lightsUniforms.a[_5003][1].xyz, _4927) * lightsUniforms.a[_5003][2].z) + lightsUniforms.a[_5003][2].w, 0.0, 1.0);_6939 = _5044 * (_5077 * _5077);_6938 = (_4907 & 65536u) != 0u;_6937 = (_4904 & 16u) != 0u;_6936 = (_4904 >> 8u) & 255u;_6935 = (_4904 >> 16u) & 255u;_6939 = _5044;_6938 = false;_6937 = false;_6936 = 0u;_6935 = 0u;if ((_4907 & _4679) == 0u)_7131 = _6999;_7063 = _6922;bool _4697 = _4938 <= 0.0;bool _4704;if (!_4697)_4704 = _6939 <= 0.0;_4704 = _4697;if (_4704)float _7023;highp vec3 _7134;if (_4938 > 0.0)float _6991;if (_6938)float _6990;highp float _5098 = dot(shadowUniforms.a[_6936].lightFromWorldZ, vec4(vertex_worldPosition.xyz, 1.0));highp vec4 _5187 = (shadowUniforms.a[_6936].lightFromWorldMatrix[0] * vertex_worldPosition.x) + ((shadowUniforms.a[_6936].lightFromWorldMatrix[1] * vertex_worldPosition.y) + ((shadowUniforms.a[_6936].lightFromWorldMatrix[2] * vertex_worldPosition.z) + shadowUniforms.a[_6936].lightFromWorldMatrix[3]));vec4 _5209 = texture(light_shadowMap, vec3(_5187.xy * (1.0 / _5187.w), float(_6935)));highp float _5219 = exp(frameUniforms.bzz * ((_5187.z * 2.0) - 1.0));highp float _5231 = frameUniforms.czz * _5219;highp float _5245 = _5209.x;highp float _5250 = max(_5209.y - (_5245 * _5245), _5231 * _5231);highp float _5252 = _5219 - _5245;_6990 = (_5219 <= _5245) ? 1.0 : clamp(((_5250 / (_5250 + (_5252 * _5252))) - frameUniforms.dzz) / (1.0 - frameUniforms.dzz), 0.0, 1.0);float _6989;highp vec3 _5301 = _5187.xyz * (1.0 / _5187.w);highp vec3 _5357 = dFdx(_5301);highp vec3 _5358 = dFdy(_5301);highp vec2 _5377 = inverse(transpose(mat2(vec2(_5357.xy), vec2(_5358.xy)))) * vec2(_5357.z, _5358.z);float _5403 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _5405 = cos(_5403);float _5407 = sin(_5403);mat2 _5420 = mat2(vec2(_5405, _5407), vec2(-_5407, _5405));highp vec2 _5317 = _5301.xy;highp float _5319 = _5301.z;highp vec2 _5322 = (vec2(1.0) / vec2(vec3(textureSize(light_shadowMap, 0)).xy)) * (shadowUniforms.a[_6936].bulbRadiusLs / _5098);float _6985;float _6986;_6986 = 0.0;_6985 = 0.0;for (uint _6984 = 0u; _6984 < 12u; )highp vec2 _5446 = _5420 * (_740[_6984] * _5322);vec4 _5454 = textureLod(light_shadowMap, vec3(_5317 + _5446, float(_6935)), 0.0);float _5455 = _5454.x;float _5462 = step(dot(_5377, _5446), _5455 - _5319);_6986 += (_5455 * _5462);_6985 += _5462;_6984++;if (_6986 == 0.0)_6989 = 1.0;float _5507 = (_6985 * 0.16666667163372039794921875) - 1.0;float _5509 = sign(_5507);float _5513 = 1.0 - (_5509 * _5507);_6989 = 1.0 - mix((0.5 * (_5509 - (((_5513 * _5513) * _5513) * _5509))) + 0.5, _6985 * 0.083333335816860198974609375, clamp((((shadowUniforms.a[_6936].nearOverFarMinusNear + (_6986 / _6985)) / (shadowUniforms.a[_6936].nearOverFarMinusNear + _5319)) - 1.0) * frameUniforms.u, 0.0, 1.0));_6990 = _6989;float _6982;highp vec2 _5555 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);highp vec2 _5557 = vec2(1.0) / _5555;highp vec3 _5561 = _5187.xyz * (1.0 / _5187.w);highp vec3 _5614 = dFdx(_5561);highp vec3 _5615 = dFdy(_5561);highp vec2 _5634 = inverse(transpose(mat2(vec2(_5614.xy), vec2(_5615.xy)))) * vec2(_5614.z, _5615.z);highp float _5642 = shadowUniforms.a[_6936].bulbRadiusLs / _5098;float _5660 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _5662 = cos(_5660);float _5664 = sin(_5660);mat2 _5677 = mat2(vec2(_5662, _5664), vec2(-_5664, _5662));highp vec2 _5569 = _5561.xy;highp float _5571 = _5561.z;highp vec2 _5574 = _5557 * _5642;float _6963;float _6964;_6964 = 0.0;_6963 = 0.0;for (uint _6962 = 0u; _6962 < 16u; )highp vec2 _5703 = _5677 * (_740[_6962] * _5574);vec4 _5711 = textureLod(light_shadowMap, vec3(_5569 + _5703, float(_6935)), 0.0);float _5712 = _5711.x;float _5719 = step(dot(_5634, _5703), _5712 - _5571);_6964 += (_5712 * _5719);_6963 += _5719;_6962++;if (_6964 == 0.0)_6982 = 1.0;highp vec2 _5600 = _5557 * (_5642 * ((((shadowUniforms.a[_6936].nearOverFarMinusNear + (_6964 / _6963)) / (shadowUniforms.a[_6936].nearOverFarMinusNear + _5571)) - 1.0) * frameUniforms.u));float _6967;_6967 = 0.0;for (uint _6966 = 0u; _6966 < 16u; )highp vec2 _5779 = _5677 * (_740[_6966] * _5600);highp vec2 _5784 = ((_5569 + _5779) * _5555) - vec2(0.5);highp vec2 _5786 = fract(_5784);highp ivec3 _5793 = ivec3(ivec2(_5784), int(_6935));vec4 _6844 = _7145;_6844.x = texelFetchOffset(light_shadowMap, _5793, 0, ivec2(0, 1)).x;vec4 _6846 = _6844;_6846.y = texelFetchOffset(light_shadowMap, _5793, 0, ivec2(1)).x;vec4 _6848 = _6846;_6848.z = texelFetchOffset(light_shadowMap, _5793, 0, ivec2(1, 0)).x;vec4 _6850 = _6848;_6850.w = texelFetchOffset(light_shadowMap, _5793, 0, ivec2(0)).x;vec4 _5839 = step(vec4(dot(_5634, _5779)), _6850 - vec4(_5571));highp float _5845 = _5786.x;_6967 += mix(mix(_5839.w, _5839.z, _5845), mix(_5839.x, _5839.y, _5845), _5786.y);_6966++;_6982 = 1.0 - (_6967 * 0.0625);_6990 = _6982;highp vec3 _5880 = _5187.xyz * (1.0 / _5187.w);highp vec2 _5893 = (_5880.xy * vec2(vec3(textureSize(light_shadowMap, 0)).xy)) - vec2(0.5);highp ivec3 _5899 = ivec3(ivec2(_5893), int(_6935));vec4 _6859 = _7145;_6859.x = texelFetchOffset(light_shadowMap, _5899, 0, ivec2(0, 1)).x;vec4 _6861 = _6859;_6861.y = texelFetchOffset(light_shadowMap, _5899, 0, ivec2(1)).x;vec4 _6863 = _6861;_6863.z = texelFetchOffset(light_shadowMap, _5899, 0, ivec2(1, 0)).x;vec4 _6865 = _6863;_6865.w = texelFetchOffset(light_shadowMap, _5899, 0, ivec2(0)).x;highp vec4 _5929 = step(vec4(0.0), _5880.zzzz - _6865);highp vec2 _5931 = fract(_5893);highp float _5937 = _5931.x;_6990 = mix(mix(_5929.w, _5929.z, _5937), mix(_5929.x, _5929.y, _5937), _5931.y);_6990 = 0.0;_6991 = _6990;_6991 = 1.0;float _7021;highp vec3 _7132;if (_6937 && (_6991 > 0.0))highp vec3 _7133;uint _5973 = (frameUniforms.iz >> 8u) & 255u;highp vec4 _6081 = frameUniforms.e * vec4(vertex_worldPosition.xyz, 1.0);highp vec4 _6088 = frameUniforms.e * vec4(vertex_worldPosition.xyz + (_4927 * frameUniforms.kz), 1.0);highp vec4 _6094 = _6081 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));highp vec3 _6100 = _6081.xyz * (1.0 / _6081.w);highp vec3 _6107 = _6088.xyz * (1.0 / _6088.w);highp float _6134 = _6100.z;highp vec3 _6137 = vec3((_6100.xy * 0.5) + vec2(0.5), _6134);highp vec3 _6142 = vec3((_6107.xy * 0.5) + vec2(0.5), _6107.z) - _6137;float _5983 = 1.0 / float(_5973);highp float _5991 = abs((_6094.xyz * (1.0 / _6094.w)).z - _6134) * _5983;uint _6992;highp float _6993;highp vec3 _6995;_6993 = (_5983 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _5983;_6992 = 0u;_6995 = _6999;highp vec3 _6016;highp vec3 _6994;float _7017;if (_6992 < _5973)_6016 = _6137 + (_6142 * _6993);if (abs(_5991 - (textureLod(light_structure, _6016.xy, 0.0).x - _6016.z)) < _5991)_7017 = 1.0;_6994 = _6016;_6993 += _5983;_6992++;_6995 = _6016;_7017 = 0.0;_6994 = _6995;highp vec2 _6051 = max((abs(_6994.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_7133 = _6994;_7022 = _6991 * (1.0 - (_7017 * clamp(1.0 - dot(_6051, _6051), 0.0, 1.0)));_7133 = _6999;_7022 = _6991;_7132 = _7133;_7021 = _7022;_7132 = _6999;_7021 = _6991;if (_7021 <= 0.0)_7131 = _7132;_7134 = _7132;_7134 = _6999;_7023 = 1.0;vec3 _6175 = normalize(_3614 + _4927);float _6178 = clamp(_4938, 0.0, 1.0);vec3 _6266 = cross(_3607, _6175);float _6272 = clamp(dot(_3607, _6175), 0.0, 1.0) * _3797;float _6279 = _3797 / (dot(_6266, _6266) + (_6272 * _6272));float _6320 = pow(1.0 - clamp(dot(_4927, _6175), 0.0, 1.0), 5.0);_7131 = _7134;_7063 = _6922 + ((((_3760 * 0.3183098733425140380859375) + (((vec3(_6320) + (_3777 * (1.0 - _6320))) * (min((_6279 * _6279) * 0.3183098733425140380859375, 65504.0) * min(0.5 / mix((2.0 * _6178) * _3667, _6178 + _3667, _3797), 65504.0))) * _3816)) * _6823.xyz) * (((_5011 * _6939) * _6178) * _7023));fragColor = vec4(_6922, 1.0);highp vec3 _3564 = vertex_worldPosition.xyz - frameUniforms.j;vec4 _6927;float _6380 = length(_3564);float _6383 = max(0.001000000047497451305389404296875, _3564.y);float _6393 = frameUniforms.qz * ((1.0 - exp((-frameUniforms.oz) * _6383)) / _6383);float _6409 = min(max(1.0 - exp2(-(_6393 * max(_6380 - frameUniforms.lz, 0.0))), 0.0), frameUniforms.mz);vec3 _6923;_6923 = frameUniforms.pz * (textureLod(light_iblSpecular, _3564, frameUniforms.fz).xyz * frameUniforms.az);_6923 = frameUniforms.pz;vec3 _6431 = _6923 * _6409;vec3 _6926;_6926 = _6431 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_3564, frameUniforms.q) / _6380, 0.0), frameUniforms.sz) * max(1.0 - exp2(-(_6393 * max(_6380 - frameUniforms.rz, 0.0))), 0.0)));_6926 = _6431;vec3 _6479 = (fragColor.xyz * (1.0 - _6409)) + _6926;vec4 _6883 = fragColor;_6883.x = _6479.x;vec4 _6885 = _6883;_6885.y = _6479.y;vec4 _6887 = _6885;_6887.z = _6479.z;_6927 = _6887;_6927 = fragColor;fragColor = _6927;const vec2 _762[64] = vec2[](vec2(0.5117490291595458984375, 0.54768598079681396484375), vec2(0.58929002285003662109375, 0.2572239935398101806640625), vec2(0.16501800715923309326171875, 0.57662999629974365234375), vec2(0.4076919853687286376953125, 0.7422850131988525390625), vec2(0.707011997699737548828125, 0.646522998809814453125), vec2(0.3146300017833709716796875, 0.466825008392333984375), vec2(0.80125701427459716796875, 0.4851860105991363525390625), vec2(0.41813600063323974609375, 0.14651699364185333251953125), vec2(0.579888999462127685546875, 0.03682839870452880859375), vec2(0.79800999164581298828125, 0.14011399447917938232421875), vec2(-0.041318498551845550537109375, 0.371455013751983642578125), vec2(-0.0529108010232448577880859375, 0.6273519992828369140625), vec2(0.082137502729892730712890625, 0.882071018218994140625), vec2(0.1730799973011016845703125, 0.301207005977630615234375), vec2(-0.12045200169086456298828125, 0.86721599102020263671875), vec2(0.3710959851741790771484375, 0.916454017162322998046875), vec2(-0.1783809959888458251953125, 0.1461009979248046875), vec2(-0.2764889895915985107421875, 0.550525009632110595703125), vec2(0.1254200041294097900390625, 0.126643002033233642578125), vec2(-0.2966539859771728515625, 0.286879003047943115234375), vec2(0.2617439925670623779296875, -0.0060497499071061611175537109375), vec2(-0.213416993618011474609375, 0.715776026248931884765625), vec2(0.4256840050220489501953125, -0.15321099758148193359375), vec2(-0.4800539910793304443359375, 0.3213570117950439453125), vec2(-0.071787796914577484130859375, -0.02505669929087162017822265625), vec2(-0.328774988651275634765625, -0.16966600716114044189453125), vec2(-0.3949230015277862548828125, 0.1308020055294036865234375), vec2(-0.55368101596832275390625, -0.17677700519561767578125), vec2(-0.7226150035858154296875, 0.120615996420383453369140625), vec2(-0.693064987659454345703125, 0.309017002582550048828125), vec2(0.603192985057830810546875, 0.791471004486083984375), vec2(-0.075494103133678436279296875, -0.297987997531890869140625), vec2(0.109302997589111328125, -0.1564719974994659423828125), vec2(0.2606050074100494384765625, -0.280111014842987060546875), vec2(0.129730999469757080078125, -0.4879539906978607177734375), vec2(-0.53731501102447509765625, 0.520493984222412109375), vec2(-0.42757999897003173828125, 0.800607025623321533203125), vec2(0.77309000492095947265625, -0.0728102028369903564453125), vec2(0.9087769985198974609375, 0.3283559978008270263671875), vec2(0.985341012477874755859375, 0.07591579854488372802734375), vec2(0.947535991668701171875, -0.118369996547698974609375), vec2(-0.103315003216266632080078125, -0.61074697971343994140625), vec2(0.3371709883213043212890625, -0.58399999141693115234375), vec2(0.2109189927577972412109375, -0.72005498409271240234375), vec2(0.418940007686614990234375, -0.3676899969577789306640625), vec2(-0.25422799587249755859375, -0.49368000030517578125), vec2(-0.428561985492706298828125, -0.404036998748779296875), vec2(-0.831731975078582763671875, -0.18961499631404876708984375), vec2(-0.9226419925689697265625, 0.088802598416805267333984375), vec2(-0.86591398715972900390625, 0.427794992923736572265625), vec2(0.706116974353790283203125, -0.3116619884967803955078125), vec2(0.545464992523193359375, -0.5209419727325439453125), vec2(-0.695738017559051513671875, 0.66449201107025146484375), vec2(0.389420986175537109375, -0.899007022380828857421875), vec2(0.488420009613037109375, -0.708054006099700927734375), vec2(0.7602980136871337890625, -0.62734997272491455078125), vec2(-0.3907879889011383056640625, -0.707387983798980712890625), vec2(-0.59104597568511962890625, -0.686721026897430419921875), vec2(-0.769903004169464111328125, -0.4137749969959259033203125), vec2(-0.60445702075958251953125, -0.50257098674774169921875), vec2(-0.557233989238739013671875, 0.0045136199332773685455322265625), vec2(0.14757199585437774658203125, -0.92435300350189208984375), vec2(-0.066248796880245208740234375, -0.8920810222625732421875), vec2(0.863831996917724609375, -0.407205998897552490234375));vec3 _8977;vec4 _8979;float _9476;vec4 _9477;vec3 _8324;bool _4364;highp vec3 _3924 = normalize(vertex_worldNormal);highp vec3 _3931 = normalize(frameUniforms.j - vertex_worldPosition.xyz);highp vec2 _3939 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);float _3984 = max(dot(_3924, _3931), 9.9999997473787516355514526367188e-05);vec3 _3977 = reflect(-_3931, _3924);vec4 _8744 = vec4(1.0);_8744.x = materialParams.a.x;vec4 _8746 = _8744;_8746.y = materialParams.a.y;vec4 _8748 = _8746;_8748.z = materialParams.a.z;float _4081 = 1.0 - materialParams.b;vec3 _4082 = _8748.xyz * _4081;vec3 _4099 = (_8748.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _4081);float _4109 = clamp(materialParams.c, 0.08900000154972076416015625, 1.0);float _4119 = _4109 * _4109;vec4 _4153 = textureLod(light_iblDFG, vec2(_3984, _4109), 0.0);vec3 _4138 = vec3(1.0) + (_4099 * ((1.0 / _4153.y) - 1.0));highp float _4287 = _3939.x;vec3 _4300 = mix(_4153.xxx, _4153.yyy, _4099);float _4313 = _4119 * _4119;float _8980;highp vec4 _8981;_4364 = frameUniforms.vz > 0.0;if (_4364)highp vec3 _4387 = vec3(_4287, _3939.y, 0.0);vec4 _4388 = textureLodOffset(light_ssao, _4387, 0.0, ivec2(0, 1));vec4 _4396 = textureLodOffset(light_ssao, _4387, 0.0, ivec2(1));vec4 _4404 = textureLodOffset(light_ssao, _4387, 0.0, ivec2(1, 0));vec4 _4412 = textureLodOffset(light_ssao, _4387, 0.0, ivec2(0));vec4 _8767 = _8979;_8767.x = (_4388.y * 0.996108949184417724609375) + (_4388.z * 0.00389105058275163173675537109375);vec4 _8773 = _8767;_8773.y = (_4396.y * 0.996108949184417724609375) + (_4396.z * 0.00389105058275163173675537109375);vec4 _8779 = _8773;_8779.z = (_4404.y * 0.996108949184417724609375) + (_4404.z * 0.00389105058275163173675537109375);vec4 _8785 = _8779;_8785.w = (_4412.y * 0.996108949184417724609375) + (_4412.z * 0.00389105058275163173675537109375);highp vec2 _4480 = fract((vec3(_4287, _3939.y, _9476).xy * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _4482 = _4480.x;float _4483 = 1.0 - _4482;float _4485 = _4480.y;vec4 _8789 = _8979;_8789.x = _4483 * _4485;vec4 _8793 = _8789;_8793.y = _4482 * _4485;float _4498 = 1.0 - _4485;vec4 _8797 = _8793;_8797.z = _4482 * _4498;vec4 _8801 = _8797;_8801.w = _4483 * _4498;vec4 _4528 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), vertex_worldPosition.xyz) + frameUniforms.a[3].z) - (_8785 * (-frameUniforms.gz))) * frameUniforms.vz;highp vec4 _4536 = max(vec4(6.103515625e-05), vec4(1.0) - (_4528 * _4528)) * _8801;highp vec4 _4550 = _4536 / vec4(((_4536.x + _4536.y) + _4536.z) + _4536.w);_8981 = _4550;_8980 = dot(vec4(_4388.x, _4396.x, _4404.x, _4412.x), _4550);_8981 = _8979;_8980 = textureLod(light_ssao, vec3(_4287, _3939.y, 0.0), 0.0).x;float _4208 = min(1.0, _8980);float _8989;vec3 _8983;highp vec3 _4636 = vec3(_4287, _3939.y, 1.0);vec4 _4637 = textureLodOffset(light_ssao, _4636, 0.0, ivec2(0, 1));vec4 _4644 = textureLodOffset(light_ssao, _4636, 0.0, ivec2(1));vec4 _4651 = textureLodOffset(light_ssao, _4636, 0.0, ivec2(1, 0));vec4 _4658 = textureLodOffset(light_ssao, _4636, 0.0, ivec2(0));vec3 _8823 = _8977;_8823.x = dot(vec4(_4637.x, _4644.x, _4651.x, _4658.x), _8981);vec3 _8825 = _8823;_8825.y = dot(vec4(_4637.y, _4644.y, _4651.y, _4658.y), _8981);vec3 _8827 = _8825;_8827.z = dot(vec4(_4637.z, _4644.z, _4651.z, _4658.z), _8981);_8983 = _8827;_8983 = textureLod(light_ssao, vec3(_4287, _3939.y, 1.0), 0.0).xyz;float _4848;float _4731 = sqrt(1.0 - _4208);float _4735 = exp2((-3.3219280242919921875) * _4313);float _4738 = dot(normalize((_8983 * 2.0) - vec3(1.0)), _3977);float _8985;float _4839 = (((-0.15658269822597503662109375) * _4731) + 1.57079601287841796875) * sqrt(1.0 - _4731);_4848 = 1.0 - _4735;float _4850 = (((-0.15658269822597503662109375) * _4735) + 1.57079601287841796875) * sqrt(_4848);float _4857 = abs(_4738);float _4865 = (((-0.15658269822597503662109375) * _4857) + 1.57079601287841796875) * sqrt(1.0 - _4857);float _8984;if (_4738 >= 0.0)_8984 = _4865;_8984 = 3.1415927410125732421875 - _4865;float _4788;if (min(_4839, _4850) <= (max(_4839, _4850) - _8984))_8985 = 1.0 - max(_4731, _4735);_4788 = _4839 + _4850;if (_4788 <= _8984)_8985 = 0.0;float _4802 = abs(_4839 - _4850);float _4814 = 1.0 - clamp((_8984 - _4802) / max(_4788 - _4802, 9.9999997473787516355514526367188e-05), 0.0, 1.0);_8985 = ((_4814 * _4814) * (((-2.0) * _4814) + 3.0)) * (1.0 - max(_4731, _4735));_8989 = min(1.0, mix(1.0, _8985 / _4848, smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _4119)));_8989 = 1.0;vec3 _8995;_8995 = textureLod(light_iblSpecular, _3924, frameUniforms.fz).xyz;float _4908 = _3924.y;float _4913 = _3924.z;float _4918 = _3924.x;_8995 = max((((((((frameUniforms.dz[0] + (frameUniforms.dz[1] * _4908)) + (frameUniforms.dz[2] * _4913)) + (frameUniforms.dz[3] * _4918)) + (frameUniforms.dz[4] * (_4908 * _4918))) + (frameUniforms.dz[5] * (_4908 * _4913))) + (frameUniforms.dz[6] * (((3.0 * _4913) * _4913) - 1.0))) + (frameUniforms.dz[7] * (_4913 * _4918))) + (frameUniforms.dz[8] * ((_4918 * _4918) - (_4908 * _4908))), vec3(0.0));uint _4996;vec4 _5072;vec3 _5075;vec3 _4278 = (((_4300 * textureLod(light_iblSpecular, mix(_3977, _3924, vec3(_4313)), (frameUniforms.fz * _4109) * (2.0 - _4109)).xyz) * (_4138 * _8989)) * frameUniforms.az) + ((((_4082 * _8995) * (vec3(1.0) - _4300)) * _4208) * frameUniforms.az);vec3 _9159;_5072 = frameUniforms.l;_5075 = frameUniforms.q;vec3 _9004;float _5105 = dot(_5075, _3977);highp vec3 _9003;if (_5105 < frameUniforms.m.x)_9003 = normalize((_5075 * frameUniforms.m.x) + (normalize(_3977 - (_5075 * _5105)) * frameUniforms.m.y));_9003 = _3977;_9004 = _9003;_9004 = _5075;float _5083 = clamp(dot(_3924, _9004), 0.0, 1.0);_4996 = objectUniforms.e & 255u;if (((frameUniforms.p & 255u) & _4996) == 0u)_9159 = _4278;if (_5083 <= 0.0)float _9138;if (_5083 > 0.0)bvec4 _5147 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * vertex_worldPosition.x) + ((frameUniforms.a[1] * vertex_worldPosition.y) + ((frameUniforms.a[2] * vertex_worldPosition.z) + frameUniforms.a[3]))).z));uint _5157 = clamp(uint(dot(vec4(_5147.x ? vec4(1.0).x : vec4(0.0).x, _5147.y ? vec4(1.0).y : vec4(0.0).y, _5147.z ? vec4(1.0).z : vec4(0.0).z, _5147.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);float _9091;if (((frameUniforms.iz & 1u) != 0u) && ((frameUniforms.uz & ((1u << _5157) << 8u)) != 0u))float _9090;highp vec4 _9047;if (_5157 == 0u)_9047 = vertex_lightSpacePosition;_9047 = (frameUniforms.g[_5157][0] * vertex_worldPosition.x) + ((frameUniforms.g[_5157][1] * vertex_worldPosition.y) + ((frameUniforms.g[_5157][2] * vertex_worldPosition.z) + frameUniforms.g[_5157][3]));vec4 _5362 = texture(light_shadowMap, vec3(_9047.xy * (1.0 / _9047.w), float(_5157)));highp float _5372 = exp(frameUniforms.bzz * ((_9047.z * 2.0) - 1.0));highp float _5384 = frameUniforms.czz * _5372;highp float _5398 = _5362.x;highp float _5403 = max(_5362.y - (_5398 * _5398), _5384 * _5384);highp float _5405 = _5372 - _5398;_9090 = (_5372 <= _5398) ? 1.0 : clamp(((_5403 / (_5403 + (_5405 * _5405))) - frameUniforms.dzz) / (1.0 - frameUniforms.dzz), 0.0, 1.0);float _9089;highp vec3 _5454 = _9047.xyz * (1.0 / _9047.w);highp vec3 _5510 = dFdx(_5454);highp vec3 _5511 = dFdy(_5454);highp vec2 _5530 = inverse(transpose(mat2(vec2(_5510.xy), vec2(_5511.xy)))) * vec2(_5510.z, _5511.z);float _5556 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _5558 = cos(_5556);float _5560 = sin(_5556);mat2 _5573 = mat2(vec2(_5558, _5560), vec2(-_5560, _5558));highp vec2 _5470 = _5454.xy;highp float _5472 = _5454.z;highp vec2 _5475 = (vec2(1.0) / vec2(vec3(textureSize(light_shadowMap, 0)).xy)) * frameUniforms.s;float _9085;float _9086;_9086 = 0.0;_9085 = 0.0;for (uint _9084 = 0u; _9084 < 12u; )highp vec2 _5599 = _5573 * (_762[_9084] * _5475);vec4 _5607 = textureLod(light_shadowMap, vec3(_5470 + _5599, float(_5157)), 0.0);float _5608 = _5607.x;float _5615 = step(dot(_5530, _5599), _5608 - _5472);_9086 += (_5608 * _5615);_9085 += _5615;_9084++;if (_9086 == 0.0)_9089 = 1.0;float _5488 = _9086 / _9085;float _5660 = (_9085 * 0.16666667163372039794921875) - 1.0;float _5662 = sign(_5660);float _5666 = 1.0 - (_5662 * _5660);_9089 = 1.0 - mix((0.5 * (_5662 - (((_5666 * _5666) * _5666) * _5662))) + 0.5, _9085 * 0.083333335816860198974609375, clamp(((_5488 - _5472) / (1.0 - _5488)) * frameUniforms.u, 0.0, 1.0));_9090 = _9089;float _9082;highp vec2 _5708 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);highp vec2 _5710 = vec2(1.0) / _5708;highp vec3 _5714 = _9047.xyz * (1.0 / _9047.w);highp vec3 _5767 = dFdx(_5714);highp vec3 _5768 = dFdy(_5714);highp vec2 _5787 = inverse(transpose(mat2(vec2(_5767.xy), vec2(_5768.xy)))) * vec2(_5767.z, _5768.z);float _5813 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _5815 = cos(_5813);float _5817 = sin(_5813);mat2 _5830 = mat2(vec2(_5815, _5817), vec2(-_5817, _5815));highp vec2 _5722 = _5714.xy;highp float _5724 = _5714.z;highp vec2 _5727 = _5710 * frameUniforms.s;float _9064;_9064 = 0.0;_9063 = 0.0;for (uint _9062 = 0u; _9062 < 16u; )highp vec2 _5856 = _5830 * (_762[_9062] * _5727);vec4 _5864 = textureLod(light_shadowMap, vec3(_5722 + _5856, float(_5157)), 0.0);float _5865 = _5864.x;float _5872 = step(dot(_5787, _5856), _5865 - _5724);_9064 += (_5865 * _5872);_9063 += _5872;_9062++;if (_9064 == 0.0)_9082 = 1.0;float _5740 = _9064 / _9063;highp vec2 _5753 = _5710 * (frameUniforms.s * (((_5740 - _5724) / (1.0 - _5740)) * frameUniforms.u));float _9067;_9067 = 0.0;for (uint _9066 = 0u; _9066 < 16u; )highp vec2 _5932 = _5830 * (_762[_9066] * _5753);highp vec2 _5937 = ((_5722 + _5932) * _5708) - vec2(0.5);highp vec2 _5939 = fract(_5937);highp ivec3 _5946 = ivec3(ivec2(_5937), int(_5157));vec4 _8848 = _9477;_8848.x = texelFetchOffset(light_shadowMap, _5946, 0, ivec2(0, 1)).x;vec4 _8850 = _8848;_8850.y = texelFetchOffset(light_shadowMap, _5946, 0, ivec2(1)).x;vec4 _8852 = _8850;_8852.z = texelFetchOffset(light_shadowMap, _5946, 0, ivec2(1, 0)).x;vec4 _8854 = _8852;_8854.w = texelFetchOffset(light_shadowMap, _5946, 0, ivec2(0)).x;vec4 _5992 = step(vec4(dot(_5787, _5932)), _8854 - vec4(_5724));highp float _5998 = _5939.x;_9067 += mix(mix(_5992.w, _5992.z, _5998), mix(_5992.x, _5992.y, _5998), _5939.y);_9066++;_9082 = 1.0 - (_9067 * 0.0625);_9090 = _9082;highp vec3 _6033 = _9047.xyz * (1.0 / _9047.w);highp vec2 _6046 = (_6033.xy * vec2(vec3(textureSize(light_shadowMap, 0)).xy)) - vec2(0.5);highp ivec3 _6052 = ivec3(ivec2(_6046), int(_5157));vec4 _8863 = _9477;_8863.x = texelFetchOffset(light_shadowMap, _6052, 0, ivec2(0, 1)).x;vec4 _8865 = _8863;_8865.y = texelFetchOffset(light_shadowMap, _6052, 0, ivec2(1)).x;vec4 _8867 = _8865;_8867.z = texelFetchOffset(light_shadowMap, _6052, 0, ivec2(1, 0)).x;vec4 _8869 = _8867;_8869.w = texelFetchOffset(light_shadowMap, _6052, 0, ivec2(0)).x;highp vec4 _6082 = step(vec4(0.0), _6033.zzzz - _8869);highp vec2 _6084 = fract(_6046);highp float _6090 = _6084.x;_9090 = mix(mix(_6082.w, _6082.z, _6090), mix(_6082.x, _6082.y, _6090), _6084.y);_9090 = 0.0;_9091 = _9090;_9091 = 1.0;float _9119;if (((frameUniforms.iz & 2u) != 0u) && (_9091 > 0.0))float _9133;uint _6126 = (frameUniforms.iz >> 8u) & 255u;highp vec4 _6234 = frameUniforms.e * vec4(vertex_worldPosition.xyz, 1.0);highp vec4 _6241 = frameUniforms.e * vec4(vertex_worldPosition.xyz + (_9004 * frameUniforms.kz), 1.0);highp vec4 _6247 = _6234 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));highp vec3 _6253 = _6234.xyz * (1.0 / _6234.w);highp vec3 _6260 = _6241.xyz * (1.0 / _6241.w);highp float _6287 = _6253.z;highp vec3 _6290 = vec3((_6253.xy * 0.5) + vec2(0.5), _6287);highp vec3 _6295 = vec3((_6260.xy * 0.5) + vec2(0.5), _6260.z) - _6290;float _6136 = 1.0 / float(_6126);highp float _6144 = abs((_6247.xyz * (1.0 / _6247.w)).z - _6287) * _6136;uint _9092;highp float _9093;highp vec3 _9095;_9093 = (_6136 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _6136;_9092 = 0u;_9095 = _8977;highp vec3 _6169;highp vec3 _9094;float _9117;if (_9092 < _6126)_6169 = _6290 + (_6295 * _9093);if (abs(_6144 - (textureLod(light_structure, _6169.xy, 0.0).x - _6169.z)) < _6144)_9117 = 1.0;_9094 = _6169;_9093 += _6136;_9092++;_9095 = _6169;_9117 = 0.0;_9094 = _9095;highp vec2 _6204 = max((abs(_9094.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_9133 = _9117 * clamp(1.0 - dot(_6204, _6204), 0.0, 1.0);_9133 = 0.0;_9119 = _9133;_9119 = 0.0;float _5056 = _9091 * (1.0 - _9119);if (_5056 <= 0.0)_9138 = _5056;_9138 = 1.0;vec3 _6328 = normalize(_3931 + _9004);float _6331 = clamp(_5083, 0.0, 1.0);vec3 _6419 = cross(_3924, _6328);float _6425 = clamp(dot(_3924, _6328), 0.0, 1.0) * _4119;float _6432 = _4119 / (dot(_6419, _6419) + (_6425 * _6425));float _6473 = pow(1.0 - clamp(dot(_9004, _6328), 0.0, 1.0), 5.0);_9159 = _4278 + ((((_4082 * 0.3183098733425140380859375) + (((vec3(_6473) + (_4099 * (1.0 - _6473))) * (min((_6432 * _6432) * 0.3183098733425140380859375, 65504.0) * min(0.5 / mix((2.0 * _6331) * _3984, _6331 + _3984, _4119), 65504.0))) * _4138)) * _5072.xyz) * ((_5072.w * _6331) * _9138));highp uvec2 _6641 = uvec2((vec3(_4287, _3939.y, gl_FragCoord.z).xy * frameUniforms.i.xy) * vec2(frameUniforms.z, frameUniforms.v));uint _6623 = ((_6641.x * frameUniforms.r) + (_6641.y * frameUniforms.x.x)) + (uint(clamp((log2((frameUniforms.w.x * gl_FragCoord.z) + frameUniforms.w.y) * frameUniforms.w.z) + frameUniforms.w.w, 0.0, frameUniforms.w.w - 1.0)) * frameUniforms.x.y);uvec4 _6680 = texelFetch(light_froxels, ivec2(int(_6623 & 63u), int(_6623 >> 6u)), 0);uint _6683 = _6680.x;uint _6517 = _6683 + (_6680.y & 255u);vec3 _9189;vec4 _9196;highp vec3 _9325;_9325 = _8977;_9196 = _8979;_9189 = _9159;vec4 _8911;vec3 _9413;highp vec3 _9465;for (uint _9188 = _6683; _9188 < _6517; _9325 = _9465, _9196 = _8911, _9189 = _9413, _9188++)highp uvec4 _6827 = froxelRecordUniforms.a[_9188 >> 4u];highp uint _6844 = (_6827[(_9188 >> 2u) & 3u] >> ((_9188 & 3u) * 8u)) & 255u;highp vec2 _6728 = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_6844][2].x));highp uint _6745 = floatBitsToUint(lightsUniforms.a[_6844][3].z);highp uint _6748 = floatBitsToUint(lightsUniforms.a[_6844][3].w);highp vec3 _6753 = lightsUniforms.a[_6844][0].xyz - vertex_worldPosition.xyz;vec4 _8905 = _9196;_8905.x = _6728.x;vec4 _8907 = _8905;_8907.y = _6728.y;vec4 _8909 = _8907;_8909.z = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_6844][2].y)).x;highp float _6852 = lightsUniforms.a[_6844][3].y * frameUniforms.bz;_8911 = _8909;_8911.w = _6852;highp vec3 _6768 = normalize(_6753);highp float _6862 = dot(_6753, _6753);float _6892 = _6862 * lightsUniforms.a[_6844][0].w;float _6897 = clamp(1.0 - (_6892 * _6892), 0.0, 1.0);highp vec3 _6868 = vertex_worldPosition.xyz - frameUniforms.j;float _6885 = ((_6897 * _6897) * clamp(frameUniforms.n.x - (dot(_6868, _6868) * frameUniforms.n.y), 0.0, 1.0)) / max(_6862, 9.9999997473787516355514526367188e-05);float _6779 = clamp(dot(_3924, _6768), 0.0, 1.0);uint _9224;uint _9225;bool _9226;bool _9227;float _9228;if ((_6745 & 1u) == 1u)highp float _6918 = clamp((dot(-lightsUniforms.a[_6844][1].xyz, _6768) * lightsUniforms.a[_6844][2].z) + lightsUniforms.a[_6844][2].w, 0.0, 1.0);_9228 = _6885 * (_6918 * _6918);_9227 = (_6748 & 65536u) != 0u;_9226 = (_6745 & 16u) != 0u;_9225 = (_6745 >> 8u) & 255u;_9224 = (_6745 >> 16u) & 255u;_9228 = _6885;_9227 = false;_9226 = false;_9225 = 0u;_9224 = 0u;if ((_6748 & _4996) == 0u)_9465 = _9325;_9413 = _9189;bool _6538 = _6779 <= 0.0;bool _6545;if (!_6538)_6545 = _9228 <= 0.0;_6545 = _6538;if (_6545)float _9371;highp vec3 _9468;if (_6779 > 0.0)float _9317;if (_9227)float _9316;highp float _6940 = dot(shadowUniforms.a[_9225].lightFromWorldZ, vec4(vertex_worldPosition.xyz, 1.0));highp vec4 _7030 = (shadowUniforms.a[_9225].lightFromWorldMatrix[0] * vertex_worldPosition.x) + ((shadowUniforms.a[_9225].lightFromWorldMatrix[1] * vertex_worldPosition.y) + ((shadowUniforms.a[_9225].lightFromWorldMatrix[2] * vertex_worldPosition.z) + shadowUniforms.a[_9225].lightFromWorldMatrix[3]));vec4 _7104 = texture(light_shadowMap, vec3(_7030.xy * (1.0 / _7030.w), float(_9224)));highp float _7114 = exp(frameUniforms.bzz * ((_7030.z * 2.0) - 1.0));highp float _7126 = frameUniforms.czz * _7114;highp float _7140 = _7104.x;highp float _7145 = max(_7104.y - (_7140 * _7140), _7126 * _7126);highp float _7147 = _7114 - _7140;_9316 = (_7114 <= _7140) ? 1.0 : clamp(((_7145 / (_7145 + (_7147 * _7147))) - frameUniforms.dzz) / (1.0 - frameUniforms.dzz), 0.0, 1.0);float _9315;highp vec3 _7196 = _7030.xyz * (1.0 / _7030.w);highp vec3 _7252 = dFdx(_7196);highp vec3 _7253 = dFdy(_7196);highp vec2 _7272 = inverse(transpose(mat2(vec2(_7252.xy), vec2(_7253.xy)))) * vec2(_7252.z, _7253.z);float _7298 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _7300 = cos(_7298);float _7302 = sin(_7298);mat2 _7315 = mat2(vec2(_7300, _7302), vec2(-_7302, _7300));highp vec2 _7212 = _7196.xy;highp float _7214 = _7196.z;highp vec2 _7217 = (vec2(1.0) / vec2(vec3(textureSize(light_shadowMap, 0)).xy)) * (shadowUniforms.a[_9225].bulbRadiusLs / _6940);float _9311;float _9312;_9312 = 0.0;_9311 = 0.0;for (uint _9310 = 0u; _9310 < 12u; )highp vec2 _7341 = _7315 * (_762[_9310] * _7217);vec4 _7349 = textureLod(light_shadowMap, vec3(_7212 + _7341, float(_9224)), 0.0);float _7350 = _7349.x;float _7357 = step(dot(_7272, _7341), _7350 - _7214);_9312 += (_7350 * _7357);_9311 += _7357;_9310++;if (_9312 == 0.0)_9315 = 1.0;float _7402 = (_9311 * 0.16666667163372039794921875) - 1.0;float _7404 = sign(_7402);float _7408 = 1.0 - (_7404 * _7402);_9315 = 1.0 - mix((0.5 * (_7404 - (((_7408 * _7408) * _7408) * _7404))) + 0.5, _9311 * 0.083333335816860198974609375, clamp((((shadowUniforms.a[_9225].nearOverFarMinusNear + (_9312 / _9311)) / (shadowUniforms.a[_9225].nearOverFarMinusNear + _7214)) - 1.0) * frameUniforms.u, 0.0, 1.0));_9316 = _9315;float _9308;highp vec2 _7450 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);highp vec2 _7452 = vec2(1.0) / _7450;highp vec3 _7456 = _7030.xyz * (1.0 / _7030.w);highp vec3 _7509 = dFdx(_7456);highp vec3 _7510 = dFdy(_7456);highp vec2 _7529 = inverse(transpose(mat2(vec2(_7509.xy), vec2(_7510.xy)))) * vec2(_7509.z, _7510.z);highp float _7537 = shadowUniforms.a[_9225].bulbRadiusLs / _6940;float _7555 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _7557 = cos(_7555);float _7559 = sin(_7555);mat2 _7572 = mat2(vec2(_7557, _7559), vec2(-_7559, _7557));highp vec2 _7464 = _7456.xy;highp float _7466 = _7456.z;highp vec2 _7469 = _7452 * _7537;float _9267;float _9268;_9268 = 0.0;_9267 = 0.0;for (uint _9266 = 0u; _9266 < 16u; )highp vec2 _7598 = _7572 * (_762[_9266] * _7469);vec4 _7606 = textureLod(light_shadowMap, vec3(_7464 + _7598, float(_9224)), 0.0);float _7607 = _7606.x;float _7614 = step(dot(_7529, _7598), _7607 - _7466);_9268 += (_7607 * _7614);_9267 += _7614;_9266++;if (_9268 == 0.0)_9308 = 1.0;highp vec2 _7495 = _7452 * (_7537 * ((((shadowUniforms.a[_9225].nearOverFarMinusNear + (_9268 / _9267)) / (shadowUniforms.a[_9225].nearOverFarMinusNear + _7466)) - 1.0) * frameUniforms.u));float _9271;_9271 = 0.0;for (uint _9270 = 0u; _9270 < 16u; )highp vec2 _7674 = _7572 * (_762[_9270] * _7495);highp vec2 _7679 = ((_7464 + _7674) * _7450) - vec2(0.5);highp vec2 _7681 = fract(_7679);highp ivec3 _7688 = ivec3(ivec2(_7679), int(_9224));vec4 _8932 = _9477;_8932.x = texelFetchOffset(light_shadowMap, _7688, 0, ivec2(0, 1)).x;vec4 _8934 = _8932;_8934.y = texelFetchOffset(light_shadowMap, _7688, 0, ivec2(1)).x;vec4 _8936 = _8934;_8936.z = texelFetchOffset(light_shadowMap, _7688, 0, ivec2(1, 0)).x;vec4 _8938 = _8936;_8938.w = texelFetchOffset(light_shadowMap, _7688, 0, ivec2(0)).x;vec4 _7734 = step(vec4(dot(_7529, _7674)), _8938 - vec4(_7466));highp float _7740 = _7681.x;_9271 += mix(mix(_7734.w, _7734.z, _7740), mix(_7734.x, _7734.y, _7740), _7681.y);_9270++;_9308 = 1.0 - (_9271 * 0.0625);_9316 = _9308;highp vec3 _7775 = _7030.xyz * (1.0 / _7030.w);highp vec2 _7788 = (_7775.xy * vec2(vec3(textureSize(light_shadowMap, 0)).xy)) - vec2(0.5);highp ivec3 _7794 = ivec3(ivec2(_7788), int(_9224));vec4 _8947 = _9477;_8947.x = texelFetchOffset(light_shadowMap, _7794, 0, ivec2(0, 1)).x;vec4 _8949 = _8947;_8949.y = texelFetchOffset(light_shadowMap, _7794, 0, ivec2(1)).x;vec4 _8951 = _8949;_8951.z = texelFetchOffset(light_shadowMap, _7794, 0, ivec2(1, 0)).x;vec4 _8953 = _8951;_8953.w = texelFetchOffset(light_shadowMap, _7794, 0, ivec2(0)).x;highp vec4 _7824 = step(vec4(0.0), _7775.zzzz - _8953);highp vec2 _7826 = fract(_7788);highp float _7832 = _7826.x;_9316 = mix(mix(_7824.w, _7824.z, _7832), mix(_7824.x, _7824.y, _7832), _7826.y);_9316 = 0.0;_9317 = _9316;_9317 = 1.0;float _9369;highp vec3 _9466;if (_9226 && (_9317 > 0.0))float _9370;highp vec3 _9467;uint _7868 = (frameUniforms.iz >> 8u) & 255u;highp vec4 _7976 = frameUniforms.e * vec4(vertex_worldPosition.xyz, 1.0);highp vec4 _7983 = frameUniforms.e * vec4(vertex_worldPosition.xyz + (_6768 * frameUniforms.kz), 1.0);highp vec4 _7989 = _7976 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));highp vec3 _7995 = _7976.xyz * (1.0 / _7976.w);highp vec3 _8002 = _7983.xyz * (1.0 / _7983.w);highp float _8029 = _7995.z;highp vec3 _8032 = vec3((_7995.xy * 0.5) + vec2(0.5), _8029);highp vec3 _8037 = vec3((_8002.xy * 0.5) + vec2(0.5), _8002.z) - _8032;float _7878 = 1.0 / float(_7868);highp float _7886 = abs((_7989.xyz * (1.0 / _7989.w)).z - _8029) * _7878;uint _9318;highp float _9319;highp vec3 _9321;_9319 = (_7878 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _7878;_9318 = 0u;_9321 = _9325;highp vec3 _7911;highp vec3 _9320;float _9365;if (_9318 < _7868)_7911 = _8032 + (_8037 * _9319);if (abs(_7886 - (textureLod(light_structure, _7911.xy, 0.0).x - _7911.z)) < _7886)_9365 = 1.0;_9320 = _7911;_9319 += _7878;_9318++;_9321 = _7911;_9365 = 0.0;_9320 = _9321;highp vec2 _7946 = max((abs(_9320.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_9467 = _9320;_9370 = _9317 * (1.0 - (_9365 * clamp(1.0 - dot(_7946, _7946), 0.0, 1.0)));_9467 = _9325;_9370 = _9317;_9466 = _9467;_9369 = _9370;_9466 = _9325;_9369 = _9317;if (_9369 <= 0.0)_9465 = _9466;_9468 = _9466;_9371 = _9369;_9468 = _9325;_9371 = 1.0;vec3 _8070 = normalize(_3931 + _6768);float _8073 = clamp(_6779, 0.0, 1.0);vec3 _8161 = cross(_3924, _8070);float _8167 = clamp(dot(_3924, _8070), 0.0, 1.0) * _4119;float _8174 = _4119 / (dot(_8161, _8161) + (_8167 * _8167));float _8215 = pow(1.0 - clamp(dot(_6768, _8070), 0.0, 1.0), 5.0);_9465 = _9468;_9413 = _9189 + ((((_4082 * 0.3183098733425140380859375) + (((vec3(_8215) + (_4099 * (1.0 - _8215))) * (min((_8174 * _8174) * 0.3183098733425140380859375, 65504.0) * min(0.5 / mix((2.0 * _8073) * _3984, _8073 + _3984, _4119), 65504.0))) * _4138)) * _8911.xyz) * (((_6852 * _9228) * _8073) * _9371));fragColor = vec4(_9189, 1.0);bvec4 _8257 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * vertex_worldPosition.x) + ((frameUniforms.a[1] * vertex_worldPosition.y) + ((frameUniforms.a[2] * vertex_worldPosition.z) + frameUniforms.a[3]))).z));uint _8267 = clamp(uint(dot(vec4(_8257.x ? vec4(1.0).x : vec4(0.0).x, _8257.y ? vec4(1.0).y : vec4(0.0).y, _8257.z ? vec4(1.0).z : vec4(0.0).z, _8257.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);vec3 _9190;if (_8267 == 0u)_9190 = vec3(0.0, 1.0, 0.0);if (_8267 == 1u)_9190 = vec3(0.0, 0.0, 1.0);if (_8267 == 2u)_9190 = vec3(1.0, 1.0, 0.0);if (_8267 == 3u)_9190 = vec3(1.0, 0.0, 0.0);if (_8267 == 4u)_9190 = vec3(1.0, 0.0, 1.0);if (_8267 == 5u)_9190 = vec3(0.0, 1.0, 1.0);_9190 = _8324;vec4 _3850 = fragColor;vec3 _3852 = _3850.xyz * _9190;fragColor.x = _3852.x;fragColor.y = _3852.y;fragColor.z = _3852.z;highp vec3 _3863 = vertex_worldPosition.xyz - frameUniforms.j;vec4 _9195;float _8359 = length(_3863);float _8362 = max(0.001000000047497451305389404296875, _3863.y);float _8372 = frameUniforms.qz * ((1.0 - exp((-frameUniforms.oz) * _8362)) / _8362);float _8388 = min(max(1.0 - exp2(-(_8372 * max(_8359 - frameUniforms.lz, 0.0))), 0.0), frameUniforms.mz);vec3 _9191;_9191 = frameUniforms.pz * (textureLod(light_iblSpecular, _3863, frameUniforms.fz).xyz * frameUniforms.az);_9191 = frameUniforms.pz;vec3 _8410 = _9191 * _8388;vec3 _9194;_9194 = _8410 + ((_5072.xyz * frameUniforms.l.w) * (pow(max(dot(_3863, _5075) / _8359, 0.0), frameUniforms.sz) * max(1.0 - exp2(-(_8372 * max(_8359 - frameUniforms.rz, 0.0))), 0.0)));_9194 = _8410;vec3 _8458 = (fragColor.xyz * (1.0 - _8388)) + _9194;vec4 _8972 = fragColor;_8972.x = _8458.x;vec4 _8974 = _8972;_8974.y = _8458.y;vec4 _8976 = _8974;_8976.z = _8458.z;_9195 = _8976;_9195 = fragColor;fragColor = _9195;#version 410#extension GL_ARB_shading_language_packing : enablelayout(location = 4) out vec4 vertex_worldPosition;layout(location = 5) out vec3 vertex_worldNormal;layout(location = 7) out vec4 vertex_position;vec4 _234 = (objectUniforms.a[0] * mesh_position.x) + ((objectUniforms.a[1] * mesh_position.y) + ((objectUniforms.a[2] * mesh_position.z) + objectUniforms.a[3]));vertex_worldPosition.x = _234.x;vertex_worldPosition.y = _234.y;vertex_worldPosition.z = _234.z;gl_Position = frameUniforms.e * _234;struct SSAOInterpolationCachevec4 weights;vec2 uv;uniform sampler2DArray light_ssao;uniform sampler2D light_iblDFG;uniform samplerCube light_iblSpecular;layout(location = 5) in vec3 vertex_worldNormal;layout(location = 4) in vec4 vertex_worldPosition;layout(location = 7) in vec4 vertex_position;vec3 shading_position;vec3 _2436;vec4 _2438;vec4 _2446;float _2453;float evaluateSSAO(inout SSAOInterpolationCache cache)if (frameUniforms.vz > 0.0)vec2 _497 = cache.uv;vec4 _509 = textureGather(light_ssao, vec3(cache.uv, 0.0), 1);vec4 _517 = textureGather(light_ssao, vec3(cache.uv, 0.0), 2);vec4 _2391 = _2446;_2391.x = (_509.x * 0.996108949184417724609375) + (_517.x * 0.00389105058275163173675537109375);vec4 _2397 = _2391;_2397.y = (_509.y * 0.996108949184417724609375) + (_517.y * 0.00389105058275163173675537109375);vec4 _2403 = _2397;_2403.z = (_509.z * 0.996108949184417724609375) + (_517.z * 0.00389105058275163173675537109375);vec4 _2409 = _2403;_2409.w = (_509.w * 0.996108949184417724609375) + (_517.w * 0.00389105058275163173675537109375);vec2 _564 = fract((cache.uv * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _567 = _564.x;float _568 = 1.0 - _567;float _570 = _564.y;vec4 _2413 = _2446;_2413.x = _568 * _570;vec4 _2417 = _2413;_2417.y = _567 * _570;float _583 = 1.0 - _570;vec4 _2421 = _2417;_2421.z = _567 * _583;vec4 _2425 = _2421;_2425.w = _568 * _583;vec4 _617 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_2409 * (-frameUniforms.gz))) * frameUniforms.vz;vec4 _627 = max(vec4(6.103515625e-05), vec4(1.0) - (_617 * _617)) * _2425;cache.weights = _627 / vec4(((_627.x + _627.y) + _627.z) + _627.w);return dot(textureGather(light_ssao, vec3(_497, 0.0)), cache.weights);return textureLod(light_ssao, vec3(cache.uv, 0.0), 0.0).x;float sphericalCapsIntersection(float cosCap1, float cosCap2, float cosDistance)float _2087 = (((-0.15658269822597503662109375) * cosCap1) + 1.57079601287841796875) * sqrt(1.0 - cosCap1);float _2098 = (((-0.15658269822597503662109375) * cosCap2) + 1.57079601287841796875) * sqrt(1.0 - cosCap2);float _2105 = abs(cosDistance);float _2113 = (((-0.15658269822597503662109375) * _2105) + 1.57079601287841796875) * sqrt(1.0 - _2105);float _2447;if (cosDistance >= 0.0)_2447 = _2113;_2447 = 3.1415927410125732421875 - _2113;float _705;if (min(_2087, _2098) <= (max(_2087, _2098) - _2447))return 1.0 - max(cosCap1, cosCap2);_705 = _2087 + _2098;if (_705 <= _2447)return 0.0;float _715 = abs(_2087 - _2098);float _728 = 1.0 - clamp((_2447 - _715) / max(_705 - _715, 9.9999997473787516355514526367188e-05), 0.0, 1.0);return ((_728 * _728) * (((-2.0) * _728) + 3.0)) * (1.0 - max(cosCap1, cosCap2));vec3 diffuseIrradiance(vec3 n)ivec2 _1028 = textureSize(light_iblSpecular, int(frameUniforms.fz));vec3 _1043 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _1050 = _1043 * (1.0 / float(_1028.x));vec3 _1054 = cross(_1043, n) * (1.0 / float(_1028.y));vec3 _1057 = n - _1050;vec3 _1062 = n + _1050;return (((textureLod(light_iblSpecular, _1057 - _1054, frameUniforms.fz).xyz + textureLod(light_iblSpecular, _1062 - _1054, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _1062 + _1054, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _1057 + _1054, frameUniforms.fz).xyz) * 0.25;return max((((((((frameUniforms.dz[0] + (frameUniforms.dz[1] * n.y)) + (frameUniforms.dz[2] * n.z)) + (frameUniforms.dz[3] * n.x)) + (frameUniforms.dz[4] * (n.y * n.x))) + (frameUniforms.dz[5] * (n.y * n.z))) + (frameUniforms.dz[6] * (((3.0 * n.z) * n.z) - 1.0))) + (frameUniforms.dz[7] * (n.z * n.x))) + (frameUniforms.dz[8] * ((n.x * n.x) - (n.y * n.y))), vec3(0.0));vec3 _1419 = normalize(vertex_worldNormal);shading_position = vertex_worldPosition.xyz;vec3 _1426 = normalize(frameUniforms.j - shading_position);float _1479 = max(dot(_1419, _1426), 9.9999997473787516355514526367188e-05);vec3 _1472 = reflect(-_1426, _1419);vec4 _2374 = vec4(1.0);_2374.x = materialParams.a.x;vec4 _2376 = _2374;_2376.y = materialParams.a.y;vec4 _2378 = _2376;_2378.z = materialParams.a.z;float _1566 = 1.0 - materialParams.b;vec3 _1567 = _2378.xyz * _1566;vec3 _1584 = (_2378.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _1566);float _1594 = clamp(materialParams.c, 0.04500000178813934326171875, 1.0);float _1604 = _1594 * _1594;vec4 _1638 = textureLod(light_iblDFG, vec2(_1479, _1594), 0.0);vec3 _1785 = mix(_1638.xxx, _1638.yyy, _1584);float _1798 = _1604 * _1604;SSAOInterpolationCache _1647 = SSAOInterpolationCache(_2438, vec3((vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5), _2453).xy);float _1689 = evaluateSSAO(_1647);float _1693 = min(1.0, _1689);float _1915 = clamp((pow(_1479 + _1693, exp2(((-16.0) * _1604) - 1.0)) - 1.0) + _1693, 0.0, 1.0);float _2441;vec3 _2439;vec3 _1862 = vec3(_1647.uv, 1.0);vec3 _2381 = _2436;_2381.x = dot(textureGather(light_ssao, _1862), _1647.weights);vec3 _2383 = _2381;_2383.y = dot(textureGather(light_ssao, _1862, 1), _1647.weights);vec3 _2385 = _2383;_2385.z = dot(textureGather(light_ssao, _1862, 2), _1647.weights);_2439 = _2385;_2439 = textureLod(light_ssao, vec3(_1647.uv, 1.0), 0.0).xyz;float _1938 = exp2((-3.3219280242919921875) * _1798);float _1927 = sqrt(1.0 - _1693);float _1928 = _1938;float _1929 = dot(normalize((_2439 * 2.0) - vec3(1.0)), _1472);_2441 = min(_1915, mix(1.0, sphericalCapsIntersection(_1927, _1928, _1929) / (1.0 - _1938), smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _1604)));_2441 = _1915;fragColor = vec4(((((_1785 * textureLod(light_iblSpecular, mix(_1472, _1419, vec3(_1798)), (frameUniforms.fz * _1594) * (2.0 - _1594)).xyz) * ((vec3(1.0) + (_1584 * ((1.0 / _1638.y) - 1.0))) * 1.0)) * max(vec3(_2441), ((((((_1584 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2441) + ((_1584 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2441) + ((_1584 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2441)) * frameUniforms.az) + (((((_1567 * diffuseIrradiance(_1419)) * (vec3(1.0) - _1785)) * 1.0) * max(vec3(_1693), ((((((_1567 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _1693) + ((_1567 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _1693) + ((_1567 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _1693)) * frameUniforms.az), 1.0);struct MaterialInputsvec4 baseColor;float roughness;float metallic;float reflectance;float ambientOcclusion;vec4 emissive;vec3 sheenColor;float sheenRoughness;float clearCoat;float clearCoatRoughness;float anisotropy;vec3 anisotropyDirection;struct PixelParamsvec3 diffuseColor;float perceptualRoughness;float perceptualRoughnessUnclamped;vec3 f0;vec3 dfg;vec3 energyCompensation;vec3 shading_view;vec3 shading_normal;float shading_NoV;vec3 _3119;float _3120;vec4 _3121;vec4 _3129;float _3140;vec2 _814 = cache.uv;vec4 _826 = textureGather(light_ssao, vec3(cache.uv, 0.0), 1);vec4 _834 = textureGather(light_ssao, vec3(cache.uv, 0.0), 2);vec4 _3074 = _3129;_3074.x = (_826.x * 0.996108949184417724609375) + (_834.x * 0.00389105058275163173675537109375);vec4 _3080 = _3074;_3080.y = (_826.y * 0.996108949184417724609375) + (_834.y * 0.00389105058275163173675537109375);vec4 _3086 = _3080;_3086.z = (_826.z * 0.996108949184417724609375) + (_834.z * 0.00389105058275163173675537109375);vec4 _3092 = _3086;_3092.w = (_826.w * 0.996108949184417724609375) + (_834.w * 0.00389105058275163173675537109375);vec2 _881 = fract((cache.uv * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _884 = _881.x;float _885 = 1.0 - _884;float _887 = _881.y;vec4 _3096 = _3129;_3096.x = _885 * _887;vec4 _3100 = _3096;_3100.y = _884 * _887;float _900 = 1.0 - _887;vec4 _3104 = _3100;_3104.z = _884 * _900;vec4 _3108 = _3104;_3108.w = _885 * _900;vec4 _934 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_3092 * (-frameUniforms.gz))) * frameUniforms.vz;vec4 _944 = max(vec4(6.103515625e-05), vec4(1.0) - (_934 * _934)) * _3108;cache.weights = _944 / vec4(((_944.x + _944.y) + _944.z) + _944.w);return dot(textureGather(light_ssao, vec3(_814, 0.0)), cache.weights);float _2472 = (((-0.15658269822597503662109375) * cosCap1) + 1.57079601287841796875) * sqrt(1.0 - cosCap1);float _2483 = (((-0.15658269822597503662109375) * cosCap2) + 1.57079601287841796875) * sqrt(1.0 - cosCap2);float _2490 = abs(cosDistance);float _2498 = (((-0.15658269822597503662109375) * _2490) + 1.57079601287841796875) * sqrt(1.0 - _2490);float _3130;_3130 = _2498;_3130 = 3.1415927410125732421875 - _2498;float _1022;if (min(_2472, _2483) <= (max(_2472, _2483) - _3130))_1022 = _2472 + _2483;if (_1022 <= _3130)float _1032 = abs(_2472 - _2483);float _1045 = 1.0 - clamp((_3130 - _1032) / max(_1022 - _1032, 9.9999997473787516355514526367188e-05), 0.0, 1.0);return ((_1045 * _1045) * (((-2.0) * _1045) + 3.0)) * (1.0 - max(cosCap1, cosCap2));ivec2 _1344 = textureSize(light_iblSpecular, int(frameUniforms.fz));vec3 _1359 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _1366 = _1359 * (1.0 / float(_1344.x));vec3 _1370 = cross(_1359, n) * (1.0 / float(_1344.y));vec3 _1373 = n - _1366;vec3 _1378 = n + _1366;return (((textureLod(light_iblSpecular, _1373 - _1370, frameUniforms.fz).xyz + textureLod(light_iblSpecular, _1378 - _1370, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _1378 + _1370, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _1373 + _1370, frameUniforms.fz).xyz) * 0.25;void evaluateDirectionalLight(MaterialInputs material, PixelParams pixel, inout vec3 color)float _2630 = clamp(dot(shading_normal, frameUniforms.q), 0.0, 1.0);return;if (_2630 <= 0.0)vec3 _2659 = normalize(shading_view + frameUniforms.q);float _2662 = clamp(_2630, 0.0, 1.0);float _2666 = clamp(dot(shading_normal, _2659), 0.0, 1.0);float _2754 = _2666 * pixel.roughness;float _2761 = pixel.roughness / ((1.0 - (_2666 * _2666)) + (_2754 * _2754));float _2784 = pixel.roughness * pixel.roughness;float _2831 = 1.0 - clamp(dot(frameUniforms.q, _2659), 0.0, 1.0);float _2840 = _2831 * _2831;color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_2840 * _2840) * _2831))) * (((_2761 * _2761) * 0.3183098733425140380859375) * (0.5 / ((_2662 * sqrt(((shading_NoV - (_2784 * shading_NoV)) * shading_NoV) + _2784)) + (shading_NoV * sqrt(((_2662 - (_2784 * _2662)) * _2662) + _2784)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * (frameUniforms.l.w * _2662));shading_view = normalize(frameUniforms.j - shading_position);shading_normal = normalize(vertex_worldNormal);shading_NoV = max(dot(shading_normal, shading_view), 9.9999997473787516355514526367188e-05);vec3 _1852 = reflect(-shading_view, shading_normal);vec4 _3057 = vec4(1.0);_3057.x = materialParams.a.x;vec4 _3059 = _3057;_3059.y = materialParams.a.y;vec4 _3061 = _3059;_3061.z = materialParams.a.z;float _1951 = 1.0 - materialParams.b;vec3 _1952 = _3061.xyz * _1951;vec3 _1969 = (_3061.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _1951);float _1979 = clamp(materialParams.c, 0.04500000178813934326171875, 1.0);float _1989 = _1979 * _1979;vec4 _2023 = textureLod(light_iblDFG, vec2(shading_NoV, _1979), 0.0);vec3 _2008 = vec3(1.0) + (_1969 * ((1.0 / _2023.y) - 1.0));vec3 _2170 = mix(_2023.xxx, _2023.yyy, _1969);float _2183 = _1989 * _1989;SSAOInterpolationCache _2032 = SSAOInterpolationCache(_3121, vec3((vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5), _3140).xy);float _2074 = evaluateSSAO(_2032);float _2078 = min(1.0, _2074);float _2300 = clamp((pow(shading_NoV + _2078, exp2(((-16.0) * _1989) - 1.0)) - 1.0) + _2078, 0.0, 1.0);float _3124;vec3 _3122;vec3 _2247 = vec3(_2032.uv, 1.0);vec3 _3064 = _3119;_3064.x = dot(textureGather(light_ssao, _2247), _2032.weights);vec3 _3066 = _3064;_3066.y = dot(textureGather(light_ssao, _2247, 1), _2032.weights);vec3 _3068 = _3066;_3068.z = dot(textureGather(light_ssao, _2247, 2), _2032.weights);_3122 = _3068;_3122 = textureLod(light_ssao, vec3(_2032.uv, 1.0), 0.0).xyz;float _2323 = exp2((-3.3219280242919921875) * _2183);float _2312 = sqrt(1.0 - _2078);float _2313 = _2323;float _2314 = dot(normalize((_3122 * 2.0) - vec3(1.0)), _1852);_3124 = min(_2300, mix(1.0, sphericalCapsIntersection(_2312, _2313, _2314) / (1.0 - _2323), smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _1989)));_3124 = _2300;vec3 _1873 = ((((_2170 * textureLod(light_iblSpecular, mix(_1852, shading_normal, vec3(_2183)), (frameUniforms.fz * _1979) * (2.0 - _1979)).xyz) * (_2008 * 1.0)) * max(vec3(_3124), ((((((_1969 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _3124) + ((_1969 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _3124) + ((_1969 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _3124)) * frameUniforms.az) + (((((_1952 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _2170)) * 1.0) * max(vec3(_2078), ((((((_1952 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2078) + ((_1952 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2078) + ((_1952 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2078)) * frameUniforms.az);evaluateDirectionalLight(MaterialInputs(_3061, materialParams.c, materialParams.b, materialParams.d, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _3119, _3120, _3120, _3120, _3120, _3119), PixelParams(_1952, _1979, materialParams.c, _1969, _1989, _2023.xyz, _2008), _1873);fragColor = vec4(_1873, 1.0);uvec4 a[1024];mat4 a[256];uniform usampler2D light_froxels;vec3 _3882;vec4 _3884;vec4 _3914;float _3921;vec2 _881 = cache.uv;vec4 _893 = textureGather(light_ssao, vec3(cache.uv, 0.0), 1);vec4 _901 = textureGather(light_ssao, vec3(cache.uv, 0.0), 2);vec4 _3837 = _3914;_3837.x = (_893.x * 0.996108949184417724609375) + (_901.x * 0.00389105058275163173675537109375);vec4 _3843 = _3837;_3843.y = (_893.y * 0.996108949184417724609375) + (_901.y * 0.00389105058275163173675537109375);vec4 _3849 = _3843;_3849.z = (_893.z * 0.996108949184417724609375) + (_901.z * 0.00389105058275163173675537109375);vec4 _3855 = _3849;_3855.w = (_893.w * 0.996108949184417724609375) + (_901.w * 0.00389105058275163173675537109375);vec2 _948 = fract((cache.uv * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _951 = _948.x;float _952 = 1.0 - _951;float _954 = _948.y;vec4 _3859 = _3914;_3859.x = _952 * _954;vec4 _3863 = _3859;_3863.y = _951 * _954;float _967 = 1.0 - _954;vec4 _3867 = _3863;_3867.z = _951 * _967;vec4 _3871 = _3867;_3871.w = _952 * _967;vec4 _1001 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_3855 * (-frameUniforms.gz))) * frameUniforms.vz;vec4 _1011 = max(vec4(6.103515625e-05), vec4(1.0) - (_1001 * _1001)) * _3871;cache.weights = _1011 / vec4(((_1011.x + _1011.y) + _1011.z) + _1011.w);return dot(textureGather(light_ssao, vec3(_881, 0.0)), cache.weights);float _3463 = (((-0.15658269822597503662109375) * cosCap1) + 1.57079601287841796875) * sqrt(1.0 - cosCap1);float _3474 = (((-0.15658269822597503662109375) * cosCap2) + 1.57079601287841796875) * sqrt(1.0 - cosCap2);float _3481 = abs(cosDistance);float _3489 = (((-0.15658269822597503662109375) * _3481) + 1.57079601287841796875) * sqrt(1.0 - _3481);float _3915;_3915 = _3489;_3915 = 3.1415927410125732421875 - _3489;float _1089;if (min(_3463, _3474) <= (max(_3463, _3474) - _3915))_1089 = _3463 + _3474;if (_1089 <= _3915)float _1099 = abs(_3463 - _3474);float _1112 = 1.0 - clamp((_3915 - _1099) / max(_1089 - _1099, 9.9999997473787516355514526367188e-05), 0.0, 1.0);return ((_1112 * _1112) * (((-2.0) * _1112) + 3.0)) * (1.0 - max(cosCap1, cosCap2));ivec2 _1410 = textureSize(light_iblSpecular, int(frameUniforms.fz));vec3 _1425 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _1432 = _1425 * (1.0 / float(_1410.x));vec3 _1436 = cross(_1425, n) * (1.0 / float(_1410.y));vec3 _1439 = n - _1432;vec3 _1444 = n + _1432;return (((textureLod(light_iblSpecular, _1439 - _1436, frameUniforms.fz).xyz + textureLod(light_iblSpecular, _1444 - _1436, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _1444 + _1436, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _1439 + _1436, frameUniforms.fz).xyz) * 0.25;vec3 _2187 = normalize(vertex_worldNormal);vec3 _2194 = normalize(frameUniforms.j - shading_position);vec2 _2202 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);float _2247 = max(dot(_2187, _2194), 9.9999997473787516355514526367188e-05);vec3 _2240 = reflect(-_2194, _2187);vec4 _3792 = vec4(1.0);_3792.x = materialParams.a.x;vec4 _3794 = _3792;_3794.y = materialParams.a.y;vec4 _3796 = _3794;_3796.z = materialParams.a.z;float _2339 = 1.0 - materialParams.b;vec3 _2340 = _3796.xyz * _2339;vec3 _2357 = (_3796.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _2339);float _2367 = clamp(materialParams.c, 0.04500000178813934326171875, 1.0);float _2377 = _2367 * _2367;vec4 _2411 = textureLod(light_iblDFG, vec2(_2247, _2367), 0.0);vec3 _2396 = vec3(1.0) + (_2357 * ((1.0 / _2411.y) - 1.0));float _2545 = _2202.x;vec3 _2558 = mix(_2411.xxx, _2411.yyy, _2357);float _2571 = _2377 * _2377;SSAOInterpolationCache _2420 = SSAOInterpolationCache(_3884, vec3(_2545, _2202.y, _3921).xy);float _2462 = evaluateSSAO(_2420);float _2466 = min(1.0, _2462);float _2688 = clamp((pow(_2247 + _2466, exp2(((-16.0) * _2377) - 1.0)) - 1.0) + _2466, 0.0, 1.0);float _3887;vec3 _3885;vec3 _2635 = vec3(_2420.uv, 1.0);vec3 _3799 = _3882;_3799.x = dot(textureGather(light_ssao, _2635), _2420.weights);vec3 _3801 = _3799;_3801.y = dot(textureGather(light_ssao, _2635, 1), _2420.weights);vec3 _3803 = _3801;_3803.z = dot(textureGather(light_ssao, _2635, 2), _2420.weights);_3885 = _3803;_3885 = textureLod(light_ssao, vec3(_2420.uv, 1.0), 0.0).xyz;float _2711 = exp2((-3.3219280242919921875) * _2571);float _2700 = sqrt(1.0 - _2466);float _2701 = _2711;float _2702 = dot(normalize((_3885 * 2.0) - vec3(1.0)), _2240);_3887 = min(_2688, mix(1.0, sphericalCapsIntersection(_2700, _2701, _2702) / (1.0 - _2711), smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _2377)));_3887 = _2688;uvec2 _2910 = uvec2((vec3(_2545, _2202.y, gl_FragCoord.z).xy * frameUniforms.i.xy) * vec2(frameUniforms.z, frameUniforms.v));uint _2892 = ((_2910.x * frameUniforms.r) + (_2910.y * frameUniforms.x.x)) + (uint(clamp((log2((frameUniforms.w.x * gl_FragCoord.z) + frameUniforms.w.y) * frameUniforms.w.z) + frameUniforms.w.w, 0.0, frameUniforms.w.w - 1.0)) * frameUniforms.x.y);uvec4 _2949 = texelFetch(light_froxels, ivec2(int(_2892 & 63u), int(_2892 >> 6u)), 0);uint _2952 = _2949.x;uint _2824 = _2952 + (_2949.y & 255u);uint _2827 = objectUniforms.e & 255u;vec3 _3896;vec4 _3897;_3897 = _3884;_3896 = ((((_2558 * textureLod(light_iblSpecular, mix(_2240, _2187, vec3(_2571)), (frameUniforms.fz * _2367) * (2.0 - _2367)).xyz) * (_2396 * 1.0)) * max(vec3(_3887), ((((((_2357 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _3887) + ((_2357 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _3887) + ((_2357 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _3887)) * frameUniforms.az) + (((((_2340 * diffuseIrradiance(_2187)) * (vec3(1.0) - _2558)) * 1.0) * max(vec3(_2466), ((((((_2340 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2466) + ((_2340 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2466) + ((_2340 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2466)) * frameUniforms.az);vec4 _3830;vec3 _3910;for (uint _3895 = _2952; _3895 < _2824; _3897 = _3830, _3896 = _3910, _3895++)uvec4 _3094 = froxelRecordUniforms.a[_3895 >> 4u];uint _3110 = (_3094[(_3895 >> 2u) & 3u] >> ((_3895 & 3u) * 8u)) & 255u;vec2 _2996 = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_3110][2].x));vec3 _3021 = lightsUniforms.a[_3110][0].xyz - shading_position;vec4 _3824 = _3897;_3824.x = _2996.x;vec4 _3826 = _3824;_3826.y = _2996.y;vec4 _3828 = _3826;_3828.z = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_3110][2].y)).x;float _3116 = lightsUniforms.a[_3110][3].y * frameUniforms.bz;_3830 = _3828;_3830.w = _3116;vec3 _3036 = normalize(_3021);float _3125 = dot(_3021, _3021);float _3155 = _3125 * lightsUniforms.a[_3110][0].w;float _3160 = clamp(1.0 - (_3155 * _3155), 0.0, 1.0);vec3 _3131 = shading_position - frameUniforms.j;float _3148 = ((_3160 * _3160) * clamp(frameUniforms.n.x - (dot(_3131, _3131) * frameUniforms.n.y), 0.0, 1.0)) / max(_3125, 9.9999997473787516355514526367188e-05);float _3047 = clamp(dot(_2187, _3036), 0.0, 1.0);float _3904;if ((floatBitsToUint(lightsUniforms.a[_3110][3].z) & 1u) == 1u)float _3181 = clamp((dot(-lightsUniforms.a[_3110][1].xyz, _3036) * lightsUniforms.a[_3110][2].z) + lightsUniforms.a[_3110][2].w, 0.0, 1.0);_3904 = _3148 * (_3181 * _3181);_3904 = _3148;if ((floatBitsToUint(lightsUniforms.a[_3110][3].w) & _2827) == 0u)_3910 = _3896;bool _2845 = _3047 <= 0.0;bool _2852;if (!_2845)_2852 = _3904 <= 0.0;_2852 = _2845;if (_2852)vec3 _3205 = normalize(_2194 + _3036);float _3208 = clamp(_3047, 0.0, 1.0);float _3212 = clamp(dot(_2187, _3205), 0.0, 1.0);float _3300 = _3212 * _2377;float _3307 = _2377 / ((1.0 - (_3212 * _3212)) + (_3300 * _3300));float _3377 = 1.0 - clamp(dot(_3036, _3205), 0.0, 1.0);float _3386 = _3377 * _3377;_3910 = _3896 + ((((_2340 * 0.3183098733425140380859375) + (((_2357 + ((vec3(clamp(dot(_2357, vec3(16.5)), 0.0, 1.0)) - _2357) * ((_3386 * _3386) * _3377))) * (((_3307 * _3307) * 0.3183098733425140380859375) * (0.5 / ((_3208 * sqrt(((_2247 - (_2571 * _2247)) * _2247) + _2571)) + (_2247 * sqrt(((_3208 - (_2571 * _3208)) * _3208) + _2571)))))) * _2396)) * _3830.xyz) * ((_3116 * _3904) * _3208));fragColor = vec4(_3896, 1.0);vec3 _4252;float _4253;vec4 _4254;vec4 _4284;float _4295;vec2 _892 = cache.uv;vec4 _904 = textureGather(light_ssao, vec3(cache.uv, 0.0), 1);vec4 _912 = textureGather(light_ssao, vec3(cache.uv, 0.0), 2);vec4 _4207 = _4284;_4207.x = (_904.x * 0.996108949184417724609375) + (_912.x * 0.00389105058275163173675537109375);vec4 _4213 = _4207;_4213.y = (_904.y * 0.996108949184417724609375) + (_912.y * 0.00389105058275163173675537109375);vec4 _4219 = _4213;_4219.z = (_904.z * 0.996108949184417724609375) + (_912.z * 0.00389105058275163173675537109375);vec4 _4225 = _4219;_4225.w = (_904.w * 0.996108949184417724609375) + (_912.w * 0.00389105058275163173675537109375);vec2 _959 = fract((cache.uv * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _962 = _959.x;float _963 = 1.0 - _962;float _965 = _959.y;vec4 _4229 = _4284;_4229.x = _963 * _965;vec4 _4233 = _4229;_4233.y = _962 * _965;float _978 = 1.0 - _965;vec4 _4237 = _4233;_4237.z = _962 * _978;vec4 _4241 = _4237;_4241.w = _963 * _978;vec4 _1012 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_4225 * (-frameUniforms.gz))) * frameUniforms.vz;vec4 _1022 = max(vec4(6.103515625e-05), vec4(1.0) - (_1012 * _1012)) * _4241;cache.weights = _1022 / vec4(((_1022.x + _1022.y) + _1022.z) + _1022.w);return dot(textureGather(light_ssao, vec3(_892, 0.0)), cache.weights);float _3538 = (((-0.15658269822597503662109375) * cosCap1) + 1.57079601287841796875) * sqrt(1.0 - cosCap1);float _3549 = (((-0.15658269822597503662109375) * cosCap2) + 1.57079601287841796875) * sqrt(1.0 - cosCap2);float _3556 = abs(cosDistance);float _3564 = (((-0.15658269822597503662109375) * _3556) + 1.57079601287841796875) * sqrt(1.0 - _3556);float _4285;_4285 = _3564;_4285 = 3.1415927410125732421875 - _3564;float _1100;if (min(_3538, _3549) <= (max(_3538, _3549) - _4285))_1100 = _3538 + _3549;if (_1100 <= _4285)float _1110 = abs(_3538 - _3549);float _1123 = 1.0 - clamp((_4285 - _1110) / max(_1100 - _1110, 9.9999997473787516355514526367188e-05), 0.0, 1.0);return ((_1123 * _1123) * (((-2.0) * _1123) + 3.0)) * (1.0 - max(cosCap1, cosCap2));ivec2 _1421 = textureSize(light_iblSpecular, int(frameUniforms.fz));vec3 _1436 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _1443 = _1436 * (1.0 / float(_1421.x));vec3 _1447 = cross(_1436, n) * (1.0 / float(_1421.y));vec3 _1450 = n - _1443;vec3 _1455 = n + _1443;return (((textureLod(light_iblSpecular, _1450 - _1447, frameUniforms.fz).xyz + textureLod(light_iblSpecular, _1455 - _1447, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _1455 + _1447, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _1450 + _1447, frameUniforms.fz).xyz) * 0.25;float _3696 = clamp(dot(shading_normal, frameUniforms.q), 0.0, 1.0);if (_3696 <= 0.0)vec3 _3725 = normalize(shading_view + frameUniforms.q);float _3728 = clamp(_3696, 0.0, 1.0);float _3732 = clamp(dot(shading_normal, _3725), 0.0, 1.0);float _3820 = _3732 * pixel.roughness;float _3827 = pixel.roughness / ((1.0 - (_3732 * _3732)) + (_3820 * _3820));float _3850 = pixel.roughness * pixel.roughness;float _3897 = 1.0 - clamp(dot(frameUniforms.q, _3725), 0.0, 1.0);float _3906 = _3897 * _3897;color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_3906 * _3906) * _3897))) * (((_3827 * _3827) * 0.3183098733425140380859375) * (0.5 / ((_3728 * sqrt(((shading_NoV - (_3850 * shading_NoV)) * shading_NoV) + _3850)) + (shading_NoV * sqrt(((_3728 - (_3850 * _3728)) * _3728) + _3850)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * (frameUniforms.l.w * _3728));vec2 _2272 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);vec3 _2310 = reflect(-shading_view, shading_normal);vec4 _4162 = vec4(1.0);_4162.x = materialParams.a.x;vec4 _4164 = _4162;_4164.y = materialParams.a.y;vec4 _4166 = _4164;_4166.z = materialParams.a.z;float _2414 = 1.0 - materialParams.b;vec3 _2415 = _4166.xyz * _2414;vec3 _2432 = (_4166.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _2414);float _2442 = clamp(materialParams.c, 0.04500000178813934326171875, 1.0);float _2452 = _2442 * _2442;vec4 _2486 = textureLod(light_iblDFG, vec2(shading_NoV, _2442), 0.0);vec3 _2471 = vec3(1.0) + (_2432 * ((1.0 / _2486.y) - 1.0));float _2620 = _2272.x;vec3 _2633 = mix(_2486.xxx, _2486.yyy, _2432);float _2646 = _2452 * _2452;SSAOInterpolationCache _2495 = SSAOInterpolationCache(_4254, vec3(_2620, _2272.y, _4295).xy);float _2537 = evaluateSSAO(_2495);float _2541 = min(1.0, _2537);float _2763 = clamp((pow(shading_NoV + _2541, exp2(((-16.0) * _2452) - 1.0)) - 1.0) + _2541, 0.0, 1.0);float _4257;vec3 _4255;vec3 _2710 = vec3(_2495.uv, 1.0);vec3 _4169 = _4252;_4169.x = dot(textureGather(light_ssao, _2710), _2495.weights);vec3 _4171 = _4169;_4171.y = dot(textureGather(light_ssao, _2710, 1), _2495.weights);vec3 _4173 = _4171;_4173.z = dot(textureGather(light_ssao, _2710, 2), _2495.weights);_4255 = _4173;_4255 = textureLod(light_ssao, vec3(_2495.uv, 1.0), 0.0).xyz;float _2786 = exp2((-3.3219280242919921875) * _2646);float _2775 = sqrt(1.0 - _2541);float _2776 = _2786;float _2777 = dot(normalize((_4255 * 2.0) - vec3(1.0)), _2310);_4257 = min(_2763, mix(1.0, sphericalCapsIntersection(_2775, _2776, _2777) / (1.0 - _2786), smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _2452)));_4257 = _2763;vec3 _2331 = ((((_2633 * textureLod(light_iblSpecular, mix(_2310, shading_normal, vec3(_2646)), (frameUniforms.fz * _2442) * (2.0 - _2442)).xyz) * (_2471 * 1.0)) * max(vec3(_4257), ((((((_2432 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _4257) + ((_2432 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _4257) + ((_2432 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _4257)) * frameUniforms.az) + (((((_2415 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _2633)) * 1.0) * max(vec3(_2541), ((((((_2415 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2541) + ((_2415 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2541) + ((_2415 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2541)) * frameUniforms.az);evaluateDirectionalLight(MaterialInputs(_4166, materialParams.c, materialParams.b, materialParams.d, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _4252, _4253, _4253, _4253, _4253, _4252), PixelParams(_2415, _2442, materialParams.c, _2432, _2452, _2486.xyz, _2471), _2331);uvec2 _2985 = uvec2((vec3(_2620, _2272.y, gl_FragCoord.z).xy * frameUniforms.i.xy) * vec2(frameUniforms.z, frameUniforms.v));uint _2967 = ((_2985.x * frameUniforms.r) + (_2985.y * frameUniforms.x.x)) + (uint(clamp((log2((frameUniforms.w.x * gl_FragCoord.z) + frameUniforms.w.y) * frameUniforms.w.z) + frameUniforms.w.w, 0.0, frameUniforms.w.w - 1.0)) * frameUniforms.x.y);uvec4 _3024 = texelFetch(light_froxels, ivec2(int(_2967 & 63u), int(_2967 >> 6u)), 0);uint _3027 = _3024.x;uint _2899 = _3027 + (_3024.y & 255u);uint _2902 = objectUniforms.e & 255u;vec3 _4266;vec4 _4267;_4267 = _4254;_4266 = _2331;vec4 _4200;vec3 _4280;for (uint _4265 = _3027; _4265 < _2899; _4267 = _4200, _4266 = _4280, _4265++)uvec4 _3169 = froxelRecordUniforms.a[_4265 >> 4u];uint _3185 = (_3169[(_4265 >> 2u) & 3u] >> ((_4265 & 3u) * 8u)) & 255u;vec2 _3071 = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_3185][2].x));vec3 _3096 = lightsUniforms.a[_3185][0].xyz - shading_position;vec4 _4194 = _4267;_4194.x = _3071.x;vec4 _4196 = _4194;_4196.y = _3071.y;vec4 _4198 = _4196;_4198.z = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_3185][2].y)).x;float _3191 = lightsUniforms.a[_3185][3].y * frameUniforms.bz;_4200 = _4198;_4200.w = _3191;vec3 _3111 = normalize(_3096);float _3200 = dot(_3096, _3096);float _3230 = _3200 * lightsUniforms.a[_3185][0].w;float _3235 = clamp(1.0 - (_3230 * _3230), 0.0, 1.0);vec3 _3206 = shading_position - frameUniforms.j;float _3223 = ((_3235 * _3235) * clamp(frameUniforms.n.x - (dot(_3206, _3206) * frameUniforms.n.y), 0.0, 1.0)) / max(_3200, 9.9999997473787516355514526367188e-05);float _3122 = clamp(dot(shading_normal, _3111), 0.0, 1.0);float _4274;if ((floatBitsToUint(lightsUniforms.a[_3185][3].z) & 1u) == 1u)float _3256 = clamp((dot(-lightsUniforms.a[_3185][1].xyz, _3111) * lightsUniforms.a[_3185][2].z) + lightsUniforms.a[_3185][2].w, 0.0, 1.0);_4274 = _3223 * (_3256 * _3256);_4274 = _3223;if ((floatBitsToUint(lightsUniforms.a[_3185][3].w) & _2902) == 0u)_4280 = _4266;bool _2920 = _3122 <= 0.0;bool _2927;if (!_2920)_2927 = _4274 <= 0.0;_2927 = _2920;if (_2927)vec3 _3280 = normalize(shading_view + _3111);float _3283 = clamp(_3122, 0.0, 1.0);float _3287 = clamp(dot(shading_normal, _3280), 0.0, 1.0);float _3375 = _3287 * _2452;float _3382 = _2452 / ((1.0 - (_3287 * _3287)) + (_3375 * _3375));float _3452 = 1.0 - clamp(dot(_3111, _3280), 0.0, 1.0);float _3461 = _3452 * _3452;_4280 = _4266 + ((((_2415 * 0.3183098733425140380859375) + (((_2432 + ((vec3(clamp(dot(_2432, vec3(16.5)), 0.0, 1.0)) - _2432) * ((_3461 * _3461) * _3452))) * (((_3382 * _3382) * 0.3183098733425140380859375) * (0.5 / ((_3283 * sqrt(((shading_NoV - (_2646 * shading_NoV)) * shading_NoV) + _2646)) + (shading_NoV * sqrt(((_3283 - (_2646 * _3283)) * _3283) + _2646)))))) * _2471)) * _4200.xyz) * ((_3191 * _4274) * _3283));fragColor = vec4(_4266, 1.0);layout(location = 11) out vec4 vertex_lightSpacePosition;vec4 _283 = (objectUniforms.a[0] * mesh_position.x) + ((objectUniforms.a[1] * mesh_position.y) + ((objectUniforms.a[2] * mesh_position.z) + objectUniforms.a[3]));vertex_worldPosition.x = _283.x;vertex_worldPosition.y = _283.y;vertex_worldPosition.z = _283.z;float _305 = clamp(dot(vertex_worldNormal, frameUniforms.q), 0.0, 1.0);vec3 _315 = vertex_worldPosition.xyz + (vertex_worldNormal * (sqrt(1.0 - (_305 * _305)) * frameUniforms.t));vertex_lightSpacePosition = (frameUniforms.g[0][0] * _315.x) + ((frameUniforms.g[0][1] * _315.y) + ((frameUniforms.g[0][2] * _315.z) + frameUniforms.g[0][3]));gl_Position = frameUniforms.e * _283;uniform sampler2D light_structure;uniform sampler2DArrayShadow light_shadowMap;layout(location = 11) in vec4 vertex_lightSpacePosition;vec3 _4660;float _4661;vec4 _4662;vec4 _4670;vec3 _4674;float _4703;vec3 _4704;vec3 _760;vec2 _1642 = cache.uv;vec4 _1654 = textureGather(light_ssao, vec3(cache.uv, 0.0), 1);vec4 _1662 = textureGather(light_ssao, vec3(cache.uv, 0.0), 2);vec4 _4571 = _4670;_4571.x = (_1654.x * 0.996108949184417724609375) + (_1662.x * 0.00389105058275163173675537109375);vec4 _4577 = _4571;_4577.y = (_1654.y * 0.996108949184417724609375) + (_1662.y * 0.00389105058275163173675537109375);vec4 _4583 = _4577;_4583.z = (_1654.z * 0.996108949184417724609375) + (_1662.z * 0.00389105058275163173675537109375);vec4 _4589 = _4583;_4589.w = (_1654.w * 0.996108949184417724609375) + (_1662.w * 0.00389105058275163173675537109375);vec2 _1709 = fract((cache.uv * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _1712 = _1709.x;float _1713 = 1.0 - _1712;float _1715 = _1709.y;vec4 _4593 = _4670;_4593.x = _1713 * _1715;vec4 _4597 = _4593;_4597.y = _1712 * _1715;float _1728 = 1.0 - _1715;vec4 _4601 = _4597;_4601.z = _1712 * _1728;vec4 _4605 = _4601;_4605.w = _1713 * _1728;vec4 _1761 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_4589 * (-frameUniforms.gz))) * frameUniforms.vz;vec4 _1771 = max(vec4(6.103515625e-05), vec4(1.0) - (_1761 * _1761)) * _4605;cache.weights = _1771 / vec4(((_1771.x + _1771.y) + _1771.z) + _1771.w);return dot(textureGather(light_ssao, vec3(_1642, 0.0)), cache.weights);float _3419 = (((-0.15658269822597503662109375) * cosCap1) + 1.57079601287841796875) * sqrt(1.0 - cosCap1);float _3430 = (((-0.15658269822597503662109375) * cosCap2) + 1.57079601287841796875) * sqrt(1.0 - cosCap2);float _3437 = abs(cosDistance);float _3445 = (((-0.15658269822597503662109375) * _3437) + 1.57079601287841796875) * sqrt(1.0 - _3437);float _4671;_4671 = _3445;_4671 = 3.1415927410125732421875 - _3445;float _1849;if (min(_3419, _3430) <= (max(_3419, _3430) - _4671))_1849 = _3419 + _3430;if (_1849 <= _4671)float _1859 = abs(_3419 - _3430);float _1872 = 1.0 - clamp((_4671 - _1859) / max(_1849 - _1859, 9.9999997473787516355514526367188e-05), 0.0, 1.0);return ((_1872 * _1872) * (((-2.0) * _1872) + 3.0)) * (1.0 - max(cosCap1, cosCap2));ivec2 _2165 = textureSize(light_iblSpecular, int(frameUniforms.fz));vec3 _2179 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _2186 = _2179 * (1.0 / float(_2165.x));vec3 _2190 = cross(_2179, n) * (1.0 / float(_2165.y));vec3 _2193 = n - _2186;vec3 _2198 = n + _2186;return (((textureLod(light_iblSpecular, _2193 - _2190, frameUniforms.fz).xyz + textureLod(light_iblSpecular, _2198 - _2190, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _2198 + _2190, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _2193 + _2190, frameUniforms.fz).xyz) * 0.25;vec4 getCascadeLightSpacePosition(uint cascade)if (cascade == 0u)return vertex_lightSpacePosition;float _4306 = clamp(dot(shading_normal, frameUniforms.q), 0.0, 1.0);vec3 _4316 = shading_position + (shading_normal * (sqrt(1.0 - (_4306 * _4306)) * frameUniforms.t));return (frameUniforms.g[cascade][0] * _4316.x) + ((frameUniforms.g[cascade][1] * _4316.y) + ((frameUniforms.g[cascade][2] * _4316.z) + frameUniforms.g[cascade][3]));float _3577 = clamp(dot(shading_normal, frameUniforms.q), 0.0, 1.0);if (_3577 <= 0.0)float _4694;if (_3577 > 0.0)bvec4 _3600 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z));uint _3610 = clamp(uint(dot(vec4(_3600.x ? vec4(1.0).x : vec4(0.0).x, _3600.y ? vec4(1.0).y : vec4(0.0).y, _3600.z ? vec4(1.0).z : vec4(0.0).z, _3600.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);float _4677;if (((frameUniforms.iz & 1u) != 0u) && ((frameUniforms.uz & ((1u << _3610) << 8u)) != 0u))uint _3634 = _3610;vec4 _3638 = getCascadeLightSpacePosition(_3634);vec3 _3664 = _3638.xyz * (1.0 / _3638.w);vec2 _3671 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);vec2 _3673 = vec2(1.0) / _3671;vec2 _3678 = clamp(_3664.xy, vec2(-1.0), vec2(2.0));vec3 _4619 = _4704;_4619.x = _3678.x;vec3 _4621 = _4619;_4621.y = _3678.y;vec2 _3688 = (_4621.xy * _3671) + vec2(0.5);vec2 _3694 = (floor(_3688) - vec2(0.5)) * _3673;vec2 _3696 = fract(_3688);float _3698 = _3696.x;float _3699 = 2.0 * _3698;float _3700 = 3.0 - _3699;float _3704 = 1.0 + _3699;float _3707 = _3696.y;float _3708 = 2.0 * _3707;float _3709 = 3.0 - _3708;float _3713 = 1.0 + _3708;vec2 _3746 = vec2(((2.0 - _3698) / _3700) - 1.0, (_3698 / _3704) + 1.0) * _3673.x;vec2 _3750 = vec2(((2.0 - _3707) / _3709) - 1.0, (_3707 / _3713) + 1.0) * _3673.y;float _3758 = _3746.x;float _3760 = _3750.x;float _3824 = float(_3610);float _3826 = clamp(_3664.z, 0.0, 1.0);float _3775 = _3746.y;float _3794 = _3750.y;_4677 = (((((_3700 * _3709) * texture(light_shadowMap, vec4(vec4(_3694 + vec2(_3758, _3760), _3824, _3826).xyz, _3826))) + ((_3704 * _3709) * texture(light_shadowMap, vec4(vec4(_3694 + vec2(_3775, _3760), _3824, _3826).xyz, _3826)))) + ((_3700 * _3713) * texture(light_shadowMap, vec4(vec4(_3694 + vec2(_3758, _3794), _3824, _3826).xyz, _3826)))) + ((_3704 * _3713) * texture(light_shadowMap, vec4(vec4(_3694 + vec2(_3775, _3794), _3824, _3826).xyz, _3826)))) * 0.0625;_4677 = 1.0;float _4686;if (((frameUniforms.iz & 2u) != 0u) && (_4677 > 0.0))float _4689;uint _3888 = (frameUniforms.iz >> 8u) & 255u;vec4 _3996 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _4003 = frameUniforms.e * vec4(shading_position + (frameUniforms.q * frameUniforms.kz), 1.0);vec4 _4009 = _3996 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));vec3 _4015 = _3996.xyz * (1.0 / _3996.w);vec3 _4022 = _4003.xyz * (1.0 / _4003.w);float _4049 = _4015.z;vec3 _4052 = vec3((_4015.xy * 0.5) + vec2(0.5), _4049);vec3 _4057 = vec3((_4022.xy * 0.5) + vec2(0.5), _4022.z) - _4052;float _3898 = 1.0 / float(_3888);float _3906 = abs((_4009.xyz * (1.0 / _4009.w)).z - _4049) * _3898;float _3918 = (_3898 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _3898;vec3 _4681;_4681 = _4674;vec3 _3931;vec3 _4680;float _4684;uint _4678 = 0u;float _4679 = _3918;if (_4678 < _3888)_3931 = _4052 + (_4057 * _4679);if (abs(_3906 - (textureLod(light_structure, _3931.xy, 0.0).x - _3931.z)) < _3906)_4684 = 1.0;_4680 = _3931;_4679 += _3898;_4678++;_4681 = _3931;_4684 = 0.0;_4680 = _4681;vec2 _3966 = max((abs(_4680.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_4689 = _4684 * clamp(1.0 - dot(_3966, _3966), 0.0, 1.0);_4689 = 0.0;_4686 = _4689;_4686 = 0.0;float _2503 = _4677 * (1.0 - _4686);if (_2503 <= 0.0)_4694 = _2503;_4694 = 1.0;vec3 _4090 = normalize(shading_view + frameUniforms.q);float _4093 = clamp(_3577, 0.0, 1.0);float _4097 = clamp(dot(shading_normal, _4090), 0.0, 1.0);float _4185 = _4097 * pixel.roughness;float _4192 = pixel.roughness / ((1.0 - (_4097 * _4097)) + (_4185 * _4185));float _4215 = pixel.roughness * pixel.roughness;float _4262 = 1.0 - clamp(dot(frameUniforms.q, _4090), 0.0, 1.0);float _4271 = _4262 * _4262;color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_4271 * _4271) * _4262))) * (((_4192 * _4192) * 0.3183098733425140380859375) * (0.5 / ((_4093 * sqrt(((shading_NoV - (_4215 * shading_NoV)) * shading_NoV) + _4215)) + (shading_NoV * sqrt(((_4093 - (_4215 * _4093)) * _4093) + _4215)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _4093) * _4694));vec3 uintToColorDebug(uint v)if (v == 0u)return vec3(0.0, 1.0, 0.0);if (v == 1u)return vec3(0.0, 0.0, 1.0);if (v == 2u)return vec3(1.0, 1.0, 0.0);if (v == 3u)return vec3(1.0, 0.0, 0.0);if (v == 4u)return vec3(1.0, 0.0, 1.0);if (v == 5u)return vec3(0.0, 1.0, 1.0);vec3 _2752 = reflect(-shading_view, shading_normal);vec4 _4553 = vec4(1.0);_4553.x = materialParams.a.x;vec4 _4555 = _4553;_4555.y = materialParams.a.y;vec4 _4557 = _4555;_4557.z = materialParams.a.z;float _2851 = 1.0 - materialParams.b;vec3 _2852 = _4557.xyz * _2851;vec3 _2869 = (_4557.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _2851);float _2879 = clamp(materialParams.c, 0.04500000178813934326171875, 1.0);float _2889 = _2879 * _2879;vec4 _2923 = textureLod(light_iblDFG, vec2(shading_NoV, _2879), 0.0);vec3 _2908 = vec3(1.0) + (_2869 * ((1.0 / _2923.y) - 1.0));vec3 _3070 = mix(_2923.xxx, _2923.yyy, _2869);float _3083 = _2889 * _2889;SSAOInterpolationCache _2932 = SSAOInterpolationCache(_4662, vec3((vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5), _4703).xy);float _2974 = evaluateSSAO(_2932);float _2978 = min(1.0, _2974);float _3200 = clamp((pow(shading_NoV + _2978, exp2(((-16.0) * _2889) - 1.0)) - 1.0) + _2978, 0.0, 1.0);float _4665;vec3 _4663;vec3 _3147 = vec3(_2932.uv, 1.0);vec3 _4560 = _4660;_4560.x = dot(textureGather(light_ssao, _3147), _2932.weights);vec3 _4562 = _4560;_4562.y = dot(textureGather(light_ssao, _3147, 1), _2932.weights);vec3 _4564 = _4562;_4564.z = dot(textureGather(light_ssao, _3147, 2), _2932.weights);_4663 = _4564;_4663 = textureLod(light_ssao, vec3(_2932.uv, 1.0), 0.0).xyz;float _3223 = exp2((-3.3219280242919921875) * _3083);float _3212 = sqrt(1.0 - _2978);float _3213 = _3223;float _3214 = dot(normalize((_4663 * 2.0) - vec3(1.0)), _2752);_4665 = min(_3200, mix(1.0, sphericalCapsIntersection(_3212, _3213, _3214) / (1.0 - _3223), smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _2889)));_4665 = _3200;vec3 _2773 = ((((_3070 * textureLod(light_iblSpecular, mix(_2752, shading_normal, vec3(_3083)), (frameUniforms.fz * _2879) * (2.0 - _2879)).xyz) * (_2908 * 1.0)) * max(vec3(_4665), ((((((_2869 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _4665) + ((_2869 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _4665) + ((_2869 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _4665)) * frameUniforms.az) + (((((_2852 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _3070)) * 1.0) * max(vec3(_2978), ((((((_2852 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2978) + ((_2852 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2978) + ((_2852 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2978)) * frameUniforms.az);evaluateDirectionalLight(MaterialInputs(_4557, materialParams.c, materialParams.b, materialParams.d, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _4660, _4661, _4661, _4661, _4661, _4660), PixelParams(_2852, _2879, materialParams.c, _2869, _2889, _2923.xyz, _2908), _2773);fragColor = vec4(_2773, 1.0);bvec4 _3336 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z));uint param = clamp(uint(dot(vec4(_3336.x ? vec4(1.0).x : vec4(0.0).x, _3336.y ? vec4(1.0).y : vec4(0.0).y, _3336.z ? vec4(1.0).z : vec4(0.0).z, _3336.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);vec4 _2660 = fragColor;vec3 _2662 = _2660.xyz * uintToColorDebug(param);fragColor.x = _2662.x;fragColor.y = _2662.y;fragColor.z = _2662.z;mat4 lightFromWorldMatrix;vec3 direction;vec4 lightFromWorldZ;vec3 _5296;vec4 _5298;vec4 _5385;float _5394;vec3 _5395;vec4 _5251 = _5385;_5251.x = (_1654.x * 0.996108949184417724609375) + (_1662.x * 0.00389105058275163173675537109375);vec4 _5257 = _5251;_5257.y = (_1654.y * 0.996108949184417724609375) + (_1662.y * 0.00389105058275163173675537109375);vec4 _5263 = _5257;_5263.z = (_1654.z * 0.996108949184417724609375) + (_1662.z * 0.00389105058275163173675537109375);vec4 _5269 = _5263;_5269.w = (_1654.w * 0.996108949184417724609375) + (_1662.w * 0.00389105058275163173675537109375);vec4 _5273 = _5385;_5273.x = _1713 * _1715;_5277.y = _1712 * _1715;_5281.z = _1712 * _1728;vec4 _5285 = _5281;_5285.w = _1713 * _1728;vec4 _1761 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_5269 * (-frameUniforms.gz))) * frameUniforms.vz;vec4 _1771 = max(vec4(6.103515625e-05), vec4(1.0) - (_1761 * _1761)) * _5285;float _4802 = (((-0.15658269822597503662109375) * cosCap1) + 1.57079601287841796875) * sqrt(1.0 - cosCap1);float _4813 = (((-0.15658269822597503662109375) * cosCap2) + 1.57079601287841796875) * sqrt(1.0 - cosCap2);float _4820 = abs(cosDistance);float _4828 = (((-0.15658269822597503662109375) * _4820) + 1.57079601287841796875) * sqrt(1.0 - _4820);float _5386;_5386 = _4828;_5386 = 3.1415927410125732421875 - _4828;if (min(_4802, _4813) <= (max(_4802, _4813) - _5386))_1849 = _4802 + _4813;if (_1849 <= _5386)float _1859 = abs(_4802 - _4813);float _1872 = 1.0 - clamp((_5386 - _1859) / max(_1849 - _1859, 9.9999997473787516355514526367188e-05), 0.0, 1.0);vec3 _2180 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _2187 = _2180 * (1.0 / float(_2165.x));vec3 _2191 = cross(_2180, n) * (1.0 / float(_2165.y));vec3 _2194 = n - _2187;vec3 _2199 = n + _2187;return (((textureLod(light_iblSpecular, _2194 - _2191, frameUniforms.fz).xyz + textureLod(light_iblSpecular, _2199 - _2191, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _2199 + _2191, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _2194 + _2191, frameUniforms.fz).xyz) * 0.25;vec3 _2974 = normalize(vertex_worldNormal);vec3 _2981 = normalize(frameUniforms.j - shading_position);vec2 _2989 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);float _3034 = max(dot(_2974, _2981), 9.9999997473787516355514526367188e-05);vec3 _3027 = reflect(-_2981, _2974);vec4 _5163 = vec4(1.0);_5163.x = materialParams.a.x;vec4 _5165 = _5163;_5165.y = materialParams.a.y;vec4 _5167 = _5165;_5167.z = materialParams.a.z;float _3126 = 1.0 - materialParams.b;vec3 _3127 = _5167.xyz * _3126;vec3 _3144 = (_5167.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _3126);float _3154 = clamp(materialParams.c, 0.04500000178813934326171875, 1.0);float _3164 = _3154 * _3154;vec4 _3198 = textureLod(light_iblDFG, vec2(_3034, _3154), 0.0);vec3 _3183 = vec3(1.0) + (_3144 * ((1.0 / _3198.y) - 1.0));float _3332 = _2989.x;vec3 _3345 = mix(_3198.xxx, _3198.yyy, _3144);float _3358 = _3164 * _3164;SSAOInterpolationCache _3207 = SSAOInterpolationCache(_5298, vec3(_3332, _2989.y, _5394).xy);float _3249 = evaluateSSAO(_3207);float _3253 = min(1.0, _3249);float _3475 = clamp((pow(_3034 + _3253, exp2(((-16.0) * _3164) - 1.0)) - 1.0) + _3253, 0.0, 1.0);float _5301;vec3 _5299;vec3 _3422 = vec3(_3207.uv, 1.0);vec3 _5170 = _5296;_5170.x = dot(textureGather(light_ssao, _3422), _3207.weights);vec3 _5172 = _5170;_5172.y = dot(textureGather(light_ssao, _3422, 1), _3207.weights);vec3 _5174 = _5172;_5174.z = dot(textureGather(light_ssao, _3422, 2), _3207.weights);_5299 = _5174;_5299 = textureLod(light_ssao, vec3(_3207.uv, 1.0), 0.0).xyz;float _3498 = exp2((-3.3219280242919921875) * _3358);float _3487 = sqrt(1.0 - _3253);float _3488 = _3498;float _3489 = dot(normalize((_5299 * 2.0) - vec3(1.0)), _3027);_5301 = min(_3475, mix(1.0, sphericalCapsIntersection(_3487, _3488, _3489) / (1.0 - _3498), smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _3164)));_5301 = _3475;uvec2 _3735 = uvec2((vec3(_3332, _2989.y, gl_FragCoord.z).xy * frameUniforms.i.xy) * vec2(frameUniforms.z, frameUniforms.v));uint _3717 = ((_3735.x * frameUniforms.r) + (_3735.y * frameUniforms.x.x)) + (uint(clamp((log2((frameUniforms.w.x * gl_FragCoord.z) + frameUniforms.w.y) * frameUniforms.w.z) + frameUniforms.w.w, 0.0, frameUniforms.w.w - 1.0)) * frameUniforms.x.y);uvec4 _3774 = texelFetch(light_froxels, ivec2(int(_3717 & 63u), int(_3717 >> 6u)), 0);uint _3777 = _3774.x;uint _3612 = _3777 + (_3774.y & 255u);uint _3615 = objectUniforms.e & 255u;vec3 _5310;vec4 _5311;vec3 _5333;_5333 = _5296;_5311 = _5298;_5310 = ((((_3345 * textureLod(light_iblSpecular, mix(_3027, _2974, vec3(_3358)), (frameUniforms.fz * _3154) * (2.0 - _3154)).xyz) * (_3183 * 1.0)) * max(vec3(_5301), ((((((_3144 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _5301) + ((_3144 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _5301) + ((_3144 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _5301)) * frameUniforms.az) + (((((_3127 * diffuseIrradiance(_2974)) * (vec3(1.0) - _3345)) * 1.0) * max(vec3(_3253), ((((((_3127 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _3253) + ((_3127 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _3253) + ((_3127 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _3253)) * frameUniforms.az);vec4 _5201;vec3 _5363;vec3 _5381;for (uint _5309 = _3777; _5309 < _3612; _5333 = _5381, _5311 = _5201, _5310 = _5363, _5309++)uvec4 _3919 = froxelRecordUniforms.a[_5309 >> 4u];uint _3935 = (_3919[(_5309 >> 2u) & 3u] >> ((_5309 & 3u) * 8u)) & 255u;vec2 _3821 = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_3935][2].x));uint _3838 = floatBitsToUint(lightsUniforms.a[_3935][3].z);uint _3841 = floatBitsToUint(lightsUniforms.a[_3935][3].w);vec3 _3846 = lightsUniforms.a[_3935][0].xyz - shading_position;vec4 _5195 = _5311;_5195.x = _3821.x;vec4 _5197 = _5195;_5197.y = _3821.y;vec4 _5199 = _5197;_5199.z = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_3935][2].y)).x;float _3941 = lightsUniforms.a[_3935][3].y * frameUniforms.bz;_5201 = _5199;_5201.w = _3941;vec3 _3861 = normalize(_3846);float _3950 = dot(_3846, _3846);float _3980 = _3950 * lightsUniforms.a[_3935][0].w;float _3985 = clamp(1.0 - (_3980 * _3980), 0.0, 1.0);vec3 _3956 = shading_position - frameUniforms.j;float _3973 = ((_3985 * _3985) * clamp(frameUniforms.n.x - (dot(_3956, _3956) * frameUniforms.n.y), 0.0, 1.0)) / max(_3950, 9.9999997473787516355514526367188e-05);float _3872 = clamp(dot(_2974, _3861), 0.0, 1.0);uint _5314;uint _5315;bool _5316;bool _5317;float _5318;if ((_3838 & 1u) == 1u)float _4006 = clamp((dot(-lightsUniforms.a[_3935][1].xyz, _3861) * lightsUniforms.a[_3935][2].z) + lightsUniforms.a[_3935][2].w, 0.0, 1.0);_5318 = _3973 * (_4006 * _4006);_5317 = (_3841 & 65536u) != 0u;_5316 = (_3838 & 16u) != 0u;_5315 = (_3838 >> 8u) & 255u;_5314 = (_3838 >> 16u) & 255u;_5318 = _3973;_5317 = false;_5316 = false;_5315 = 0u;_5314 = 0u;if ((_3841 & _3615) == 0u)_5381 = _5333;_5363 = _5310;bool _3633 = _3872 <= 0.0;bool _3640;if (!_3633)_3640 = _5318 <= 0.0;_3640 = _3633;if (_3640)float _5343;vec3 _5384;if (_3872 > 0.0)float _5325;if (_5317)float _4068 = clamp(dot(_2974, shadowUniforms.a[_5315].direction), 0.0, 1.0);vec3 _4078 = shading_position + (_2974 * (sqrt(1.0 - (_4068 * _4068)) * (shadowUniforms.a[_5315].normalBias * dot(shadowUniforms.a[_5315].lightFromWorldZ, vec4(shading_position, 1.0)))));vec4 _4095 = (shadowUniforms.a[_5315].lightFromWorldMatrix[0] * _4078.x) + ((shadowUniforms.a[_5315].lightFromWorldMatrix[1] * _4078.y) + ((shadowUniforms.a[_5315].lightFromWorldMatrix[2] * _4078.z) + shadowUniforms.a[_5315].lightFromWorldMatrix[3]));vec3 _4118 = _4095.xyz * (1.0 / _4095.w);vec2 _4125 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);vec2 _4127 = vec2(1.0) / _4125;vec2 _4132 = clamp(_4118.xy, vec2(-1.0), vec2(2.0));vec3 _5205 = _5395;_5205.x = _4132.x;vec3 _5207 = _5205;_5207.y = _4132.y;vec2 _4142 = (_5207.xy * _4125) + vec2(0.5);vec2 _4148 = (floor(_4142) - vec2(0.5)) * _4127;vec2 _4150 = fract(_4142);float _4152 = _4150.x;float _4153 = 2.0 * _4152;float _4154 = 3.0 - _4153;float _4158 = 1.0 + _4153;float _4161 = _4150.y;float _4162 = 2.0 * _4161;float _4163 = 3.0 - _4162;float _4167 = 1.0 + _4162;vec2 _4200 = vec2(((2.0 - _4152) / _4154) - 1.0, (_4152 / _4158) + 1.0) * _4127.x;vec2 _4204 = vec2(((2.0 - _4161) / _4163) - 1.0, (_4161 / _4167) + 1.0) * _4127.y;float _4212 = _4200.x;float _4214 = _4204.x;float _4278 = float(_5314);float _4280 = clamp(_4118.z, 0.0, 1.0);float _4229 = _4200.y;float _4248 = _4204.y;_5325 = (((((_4154 * _4163) * texture(light_shadowMap, vec4(vec4(_4148 + vec2(_4212, _4214), _4278, _4280).xyz, _4280))) + ((_4158 * _4163) * texture(light_shadowMap, vec4(vec4(_4148 + vec2(_4229, _4214), _4278, _4280).xyz, _4280)))) + ((_4154 * _4167) * texture(light_shadowMap, vec4(vec4(_4148 + vec2(_4212, _4248), _4278, _4280).xyz, _4280)))) + ((_4158 * _4167) * texture(light_shadowMap, vec4(vec4(_4148 + vec2(_4229, _4248), _4278, _4280).xyz, _4280)))) * 0.0625;_5325 = 1.0;float _5341;vec3 _5382;if (_5316 && (_5325 > 0.0))float _5342;vec3 _5383;uint _4342 = (frameUniforms.iz >> 8u) & 255u;vec4 _4450 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _4457 = frameUniforms.e * vec4(shading_position + (_3861 * frameUniforms.kz), 1.0);vec4 _4463 = _4450 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));vec3 _4469 = _4450.xyz * (1.0 / _4450.w);vec3 _4476 = _4457.xyz * (1.0 / _4457.w);float _4503 = _4469.z;vec3 _4506 = vec3((_4469.xy * 0.5) + vec2(0.5), _4503);vec3 _4511 = vec3((_4476.xy * 0.5) + vec2(0.5), _4476.z) - _4506;float _4352 = 1.0 / float(_4342);float _4360 = abs((_4463.xyz * (1.0 / _4463.w)).z - _4503) * _4352;float _4372 = (_4352 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _4352;vec3 _5329;_5329 = _5333;vec3 _4385;vec3 _5328;float _5337;uint _5326 = 0u;float _5327 = _4372;if (_5326 < _4342)_4385 = _4506 + (_4511 * _5327);if (abs(_4360 - (textureLod(light_structure, _4385.xy, 0.0).x - _4385.z)) < _4360)_5337 = 1.0;_5328 = _4385;_5327 += _4352;_5326++;_5329 = _4385;_5337 = 0.0;_5328 = _5329;vec2 _4420 = max((abs(_5328.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_5383 = _5328;_5342 = _5325 * (1.0 - (_5337 * clamp(1.0 - dot(_4420, _4420), 0.0, 1.0)));_5383 = _5333;_5342 = _5325;_5382 = _5383;_5341 = _5342;_5382 = _5333;_5341 = _5325;if (_5341 <= 0.0)_5381 = _5382;_5384 = _5382;_5343 = _5341;_5384 = _5333;_5343 = 1.0;vec3 _4544 = normalize(_2981 + _3861);float _4547 = clamp(_3872, 0.0, 1.0);float _4551 = clamp(dot(_2974, _4544), 0.0, 1.0);float _4639 = _4551 * _3164;float _4646 = _3164 / ((1.0 - (_4551 * _4551)) + (_4639 * _4639));float _4716 = 1.0 - clamp(dot(_3861, _4544), 0.0, 1.0);float _4725 = _4716 * _4716;_5381 = _5384;_5363 = _5310 + ((((_3127 * 0.3183098733425140380859375) + (((_3144 + ((vec3(clamp(dot(_3144, vec3(16.5)), 0.0, 1.0)) - _3144) * ((_4725 * _4725) * _4716))) * (((_4646 * _4646) * 0.3183098733425140380859375) * (0.5 / ((_4547 * sqrt(((_3034 - (_3358 * _3034)) * _3034) + _3358)) + (_3034 * sqrt(((_4547 - (_3358 * _4547)) * _4547) + _3358)))))) * _3183)) * _5201.xyz) * (((_3941 * _5318) * _4547) * _5343));fragColor = vec4(_5310, 1.0);vec3 _6575;float _6576;vec4 _6577;vec4 _6652;vec3 _6656;float _6683;vec3 _6684;vec3 _825;vec2 _1762 = cache.uv;vec4 _1774 = textureGather(light_ssao, vec3(cache.uv, 0.0), 1);vec4 _1782 = textureGather(light_ssao, vec3(cache.uv, 0.0), 2);vec4 _6486 = _6652;_6486.x = (_1774.x * 0.996108949184417724609375) + (_1782.x * 0.00389105058275163173675537109375);vec4 _6492 = _6486;_6492.y = (_1774.y * 0.996108949184417724609375) + (_1782.y * 0.00389105058275163173675537109375);vec4 _6498 = _6492;_6498.z = (_1774.z * 0.996108949184417724609375) + (_1782.z * 0.00389105058275163173675537109375);vec4 _6504 = _6498;_6504.w = (_1774.w * 0.996108949184417724609375) + (_1782.w * 0.00389105058275163173675537109375);vec2 _1829 = fract((cache.uv * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _1832 = _1829.x;float _1833 = 1.0 - _1832;float _1835 = _1829.y;vec4 _6508 = _6652;_6508.x = _1833 * _1835;vec4 _6512 = _6508;_6512.y = _1832 * _1835;float _1848 = 1.0 - _1835;vec4 _6516 = _6512;_6516.z = _1832 * _1848;vec4 _6520 = _6516;_6520.w = _1833 * _1848;vec4 _1881 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_6504 * (-frameUniforms.gz))) * frameUniforms.vz;vec4 _1891 = max(vec4(6.103515625e-05), vec4(1.0) - (_1881 * _1881)) * _6520;cache.weights = _1891 / vec4(((_1891.x + _1891.y) + _1891.z) + _1891.w);return dot(textureGather(light_ssao, vec3(_1762, 0.0)), cache.weights);float _5112 = (((-0.15658269822597503662109375) * cosCap1) + 1.57079601287841796875) * sqrt(1.0 - cosCap1);float _5123 = (((-0.15658269822597503662109375) * cosCap2) + 1.57079601287841796875) * sqrt(1.0 - cosCap2);float _5130 = abs(cosDistance);float _5138 = (((-0.15658269822597503662109375) * _5130) + 1.57079601287841796875) * sqrt(1.0 - _5130);_6653 = _5138;_6653 = 3.1415927410125732421875 - _5138;float _1969;if (min(_5112, _5123) <= (max(_5112, _5123) - _6653))_1969 = _5112 + _5123;if (_1969 <= _6653)float _1979 = abs(_5112 - _5123);float _1992 = 1.0 - clamp((_6653 - _1979) / max(_1969 - _1979, 9.9999997473787516355514526367188e-05), 0.0, 1.0);return ((_1992 * _1992) * (((-2.0) * _1992) + 3.0)) * (1.0 - max(cosCap1, cosCap2));ivec2 _2284 = textureSize(light_iblSpecular, int(frameUniforms.fz));vec3 _2298 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _2305 = _2298 * (1.0 / float(_2284.x));vec3 _2309 = cross(_2298, n) * (1.0 / float(_2284.y));vec3 _2312 = n - _2305;vec3 _2317 = n + _2305;return (((textureLod(light_iblSpecular, _2312 - _2309, frameUniforms.fz).xyz + textureLod(light_iblSpecular, _2317 - _2309, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _2317 + _2309, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _2312 + _2309, frameUniforms.fz).xyz) * 0.25;float _6078 = clamp(dot(shading_normal, frameUniforms.q), 0.0, 1.0);vec3 _6088 = shading_position + (shading_normal * (sqrt(1.0 - (_6078 * _6078)) * frameUniforms.t));return (frameUniforms.g[cascade][0] * _6088.x) + ((frameUniforms.g[cascade][1] * _6088.y) + ((frameUniforms.g[cascade][2] * _6088.z) + frameUniforms.g[cascade][3]));float _5270 = clamp(dot(shading_normal, frameUniforms.q), 0.0, 1.0);if (_5270 <= 0.0)if (_5270 > 0.0)bvec4 _5293 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z));uint _5303 = clamp(uint(dot(vec4(_5293.x ? vec4(1.0).x : vec4(0.0).x, _5293.y ? vec4(1.0).y : vec4(0.0).y, _5293.z ? vec4(1.0).z : vec4(0.0).z, _5293.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);float _6658;if (((frameUniforms.iz & 1u) != 0u) && ((frameUniforms.uz & ((1u << _5303) << 8u)) != 0u))uint _5327 = _5303;vec4 _5345 = getCascadeLightSpacePosition(_5327);vec3 _5436 = _5345.xyz * (1.0 / _5345.w);vec2 _5443 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);vec2 _5445 = vec2(1.0) / _5443;vec2 _5450 = clamp(_5436.xy, vec2(-1.0), vec2(2.0));vec3 _6534 = _6684;_6534.x = _5450.x;vec3 _6536 = _6534;_6536.y = _5450.y;vec2 _5460 = (_6536.xy * _5443) + vec2(0.5);vec2 _5466 = (floor(_5460) - vec2(0.5)) * _5445;vec2 _5468 = fract(_5460);float _5470 = _5468.x;float _5471 = 2.0 * _5470;float _5472 = 3.0 - _5471;float _5476 = 1.0 + _5471;float _5479 = _5468.y;float _5480 = 2.0 * _5479;float _5481 = 3.0 - _5480;float _5485 = 1.0 + _5480;vec2 _5518 = vec2(((2.0 - _5470) / _5472) - 1.0, (_5470 / _5476) + 1.0) * _5445.x;vec2 _5522 = vec2(((2.0 - _5479) / _5481) - 1.0, (_5479 / _5485) + 1.0) * _5445.y;float _5530 = _5518.x;float _5532 = _5522.x;float _5596 = float(_5303);float _5598 = clamp(_5436.z, 0.0, 1.0);float _5547 = _5518.y;float _5566 = _5522.y;_6658 = (((((_5472 * _5481) * texture(light_shadowMap, vec4(vec4(_5466 + vec2(_5530, _5532), _5596, _5598).xyz, _5598))) + ((_5476 * _5481) * texture(light_shadowMap, vec4(vec4(_5466 + vec2(_5547, _5532), _5596, _5598).xyz, _5598)))) + ((_5472 * _5485) * texture(light_shadowMap, vec4(vec4(_5466 + vec2(_5530, _5566), _5596, _5598).xyz, _5598)))) + ((_5476 * _5485) * texture(light_shadowMap, vec4(vec4(_5466 + vec2(_5547, _5566), _5596, _5598).xyz, _5598)))) * 0.0625;_6658 = 1.0;float _6667;if (((frameUniforms.iz & 2u) != 0u) && (_6658 > 0.0))float _6670;uint _5660 = (frameUniforms.iz >> 8u) & 255u;vec4 _5768 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _5775 = frameUniforms.e * vec4(shading_position + (frameUniforms.q * frameUniforms.kz), 1.0);vec4 _5781 = _5768 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));vec3 _5787 = _5768.xyz * (1.0 / _5768.w);vec3 _5794 = _5775.xyz * (1.0 / _5775.w);float _5821 = _5787.z;vec3 _5824 = vec3((_5787.xy * 0.5) + vec2(0.5), _5821);vec3 _5829 = vec3((_5794.xy * 0.5) + vec2(0.5), _5794.z) - _5824;float _5670 = 1.0 / float(_5660);float _5678 = abs((_5781.xyz * (1.0 / _5781.w)).z - _5821) * _5670;float _5690 = (_5670 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _5670;vec3 _6662;_6662 = _6656;vec3 _5703;vec3 _6661;float _6665;uint _6659 = 0u;float _6660 = _5690;if (_6659 < _5660)_5703 = _5824 + (_5829 * _6660);if (abs(_5678 - (textureLod(light_structure, _5703.xy, 0.0).x - _5703.z)) < _5678)_6665 = 1.0;_6661 = _5703;_6660 += _5670;_6659++;_6662 = _5703;_6665 = 0.0;_6661 = _6662;vec2 _5738 = max((abs(_6661.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_6670 = _6665 * clamp(1.0 - dot(_5738, _5738), 0.0, 1.0);_6670 = 0.0;_6667 = _6670;_6667 = 0.0;float _2622 = _6658 * (1.0 - _6667);if (_2622 <= 0.0)_6675 = _2622;_6675 = 1.0;vec3 _5862 = normalize(shading_view + frameUniforms.q);float _5865 = clamp(_5270, 0.0, 1.0);float _5869 = clamp(dot(shading_normal, _5862), 0.0, 1.0);float _5957 = _5869 * pixel.roughness;float _5964 = pixel.roughness / ((1.0 - (_5869 * _5869)) + (_5957 * _5957));float _5987 = pixel.roughness * pixel.roughness;float _6034 = 1.0 - clamp(dot(frameUniforms.q, _5862), 0.0, 1.0);float _6043 = _6034 * _6034;color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_6043 * _6043) * _6034))) * (((_5964 * _5964) * 0.3183098733425140380859375) * (0.5 / ((_5865 * sqrt(((shading_NoV - (_5987 * shading_NoV)) * shading_NoV) + _5987)) + (shading_NoV * sqrt(((_5865 - (_5987 * _5865)) * _5865) + _5987)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _5865) * _6675));vec2 _3245 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);vec3 _3283 = reflect(-shading_view, shading_normal);vec4 _6397 = vec4(1.0);_6397.x = materialParams.a.x;vec4 _6399 = _6397;_6399.y = materialParams.a.y;vec4 _6401 = _6399;_6401.z = materialParams.a.z;float _3387 = 1.0 - materialParams.b;vec3 _3388 = _6401.xyz * _3387;vec3 _3405 = (_6401.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _3387);float _3415 = clamp(materialParams.c, 0.04500000178813934326171875, 1.0);float _3425 = _3415 * _3415;vec4 _3459 = textureLod(light_iblDFG, vec2(shading_NoV, _3415), 0.0);vec3 _3444 = vec3(1.0) + (_3405 * ((1.0 / _3459.y) - 1.0));float _3593 = _3245.x;vec3 _3606 = mix(_3459.xxx, _3459.yyy, _3405);float _3619 = _3425 * _3425;SSAOInterpolationCache _3468 = SSAOInterpolationCache(_6577, vec3(_3593, _3245.y, _6683).xy);float _3510 = evaluateSSAO(_3468);float _3514 = min(1.0, _3510);float _3736 = clamp((pow(shading_NoV + _3514, exp2(((-16.0) * _3425) - 1.0)) - 1.0) + _3514, 0.0, 1.0);float _6580;vec3 _6578;vec3 _3683 = vec3(_3468.uv, 1.0);vec3 _6404 = _6575;_6404.x = dot(textureGather(light_ssao, _3683), _3468.weights);vec3 _6406 = _6404;_6406.y = dot(textureGather(light_ssao, _3683, 1), _3468.weights);vec3 _6408 = _6406;_6408.z = dot(textureGather(light_ssao, _3683, 2), _3468.weights);_6578 = _6408;_6578 = textureLod(light_ssao, vec3(_3468.uv, 1.0), 0.0).xyz;float _3759 = exp2((-3.3219280242919921875) * _3619);float _3748 = sqrt(1.0 - _3514);float _3749 = _3759;float _3750 = dot(normalize((_6578 * 2.0) - vec3(1.0)), _3283);_6580 = min(_3736, mix(1.0, sphericalCapsIntersection(_3748, _3749, _3750) / (1.0 - _3759), smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _3425)));_6580 = _3736;vec3 _3304 = ((((_3606 * textureLod(light_iblSpecular, mix(_3283, shading_normal, vec3(_3619)), (frameUniforms.fz * _3415) * (2.0 - _3415)).xyz) * (_3444 * 1.0)) * max(vec3(_6580), ((((((_3405 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _6580) + ((_3405 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _6580) + ((_3405 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _6580)) * frameUniforms.az) + (((((_3388 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _3606)) * 1.0) * max(vec3(_3514), ((((((_3388 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _3514) + ((_3388 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _3514) + ((_3388 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _3514)) * frameUniforms.az);evaluateDirectionalLight(MaterialInputs(_6401, materialParams.c, materialParams.b, materialParams.d, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _6575, _6576, _6576, _6576, _6576, _6575), PixelParams(_3388, _3415, materialParams.c, _3405, _3425, _3459.xyz, _3444), _3304);uvec2 _3996 = uvec2((vec3(_3593, _3245.y, gl_FragCoord.z).xy * frameUniforms.i.xy) * vec2(frameUniforms.z, frameUniforms.v));uint _3978 = ((_3996.x * frameUniforms.r) + (_3996.y * frameUniforms.x.x)) + (uint(clamp((log2((frameUniforms.w.x * gl_FragCoord.z) + frameUniforms.w.y) * frameUniforms.w.z) + frameUniforms.w.w, 0.0, frameUniforms.w.w - 1.0)) * frameUniforms.x.y);uvec4 _4035 = texelFetch(light_froxels, ivec2(int(_3978 & 63u), int(_3978 >> 6u)), 0);uint _4038 = _4035.x;uint _3873 = _4038 + (_4035.y & 255u);uint _3876 = objectUniforms.e & 255u;vec4 _6590;vec3 _6607;_6607 = _6575;_6590 = _6577;_6589 = _3304;vec4 _6435;vec3 _6637;vec3 _6648;for (uint _6588 = _4038; _6588 < _3873; _6607 = _6648, _6590 = _6435, _6589 = _6637, _6588++)uvec4 _4180 = froxelRecordUniforms.a[_6588 >> 4u];uint _4196 = (_4180[(_6588 >> 2u) & 3u] >> ((_6588 & 3u) * 8u)) & 255u;vec2 _4082 = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_4196][2].x));uint _4099 = floatBitsToUint(lightsUniforms.a[_4196][3].z);uint _4102 = floatBitsToUint(lightsUniforms.a[_4196][3].w);vec3 _4107 = lightsUniforms.a[_4196][0].xyz - shading_position;vec4 _6429 = _6590;_6429.x = _4082.x;vec4 _6431 = _6429;_6431.y = _4082.y;vec4 _6433 = _6431;_6433.z = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_4196][2].y)).x;float _4202 = lightsUniforms.a[_4196][3].y * frameUniforms.bz;_6435 = _6433;_6435.w = _4202;vec3 _4122 = normalize(_4107);float _4211 = dot(_4107, _4107);float _4241 = _4211 * lightsUniforms.a[_4196][0].w;float _4246 = clamp(1.0 - (_4241 * _4241), 0.0, 1.0);vec3 _4217 = shading_position - frameUniforms.j;float _4234 = ((_4246 * _4246) * clamp(frameUniforms.n.x - (dot(_4217, _4217) * frameUniforms.n.y), 0.0, 1.0)) / max(_4211, 9.9999997473787516355514526367188e-05);float _4133 = clamp(dot(shading_normal, _4122), 0.0, 1.0);uint _6593;uint _6594;bool _6595;bool _6596;float _6597;if ((_4099 & 1u) == 1u)float _4267 = clamp((dot(-lightsUniforms.a[_4196][1].xyz, _4122) * lightsUniforms.a[_4196][2].z) + lightsUniforms.a[_4196][2].w, 0.0, 1.0);_6597 = _4234 * (_4267 * _4267);_6596 = (_4102 & 65536u) != 0u;_6595 = (_4099 & 16u) != 0u;_6594 = (_4099 >> 8u) & 255u;_6593 = (_4099 >> 16u) & 255u;_6597 = _4234;_6596 = false;_6595 = false;_6594 = 0u;_6593 = 0u;if ((_4102 & _3876) == 0u)_6648 = _6607;_6637 = _6589;bool _3894 = _4133 <= 0.0;bool _3901;if (!_3894)_3901 = _6597 <= 0.0;_3901 = _3894;if (_3901)float _6617;vec3 _6651;if (_4133 > 0.0)float _6599;if (_6596)float _4331 = clamp(dot(shading_normal, shadowUniforms.a[_6594].direction), 0.0, 1.0);vec3 _4341 = shading_position + (shading_normal * (sqrt(1.0 - (_4331 * _4331)) * (shadowUniforms.a[_6594].normalBias * dot(shadowUniforms.a[_6594].lightFromWorldZ, vec4(shading_position, 1.0)))));vec4 _4358 = (shadowUniforms.a[_6594].lightFromWorldMatrix[0] * _4341.x) + ((shadowUniforms.a[_6594].lightFromWorldMatrix[1] * _4341.y) + ((shadowUniforms.a[_6594].lightFromWorldMatrix[2] * _4341.z) + shadowUniforms.a[_6594].lightFromWorldMatrix[3]));vec3 _4381 = _4358.xyz * (1.0 / _4358.w);vec2 _4388 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);vec2 _4390 = vec2(1.0) / _4388;vec2 _4395 = clamp(_4381.xy, vec2(-1.0), vec2(2.0));vec3 _6439 = _6684;_6439.x = _4395.x;vec3 _6441 = _6439;_6441.y = _4395.y;vec2 _4405 = (_6441.xy * _4388) + vec2(0.5);vec2 _4411 = (floor(_4405) - vec2(0.5)) * _4390;vec2 _4413 = fract(_4405);float _4415 = _4413.x;float _4416 = 2.0 * _4415;float _4417 = 3.0 - _4416;float _4421 = 1.0 + _4416;float _4424 = _4413.y;float _4425 = 2.0 * _4424;float _4426 = 3.0 - _4425;float _4430 = 1.0 + _4425;vec2 _4463 = vec2(((2.0 - _4415) / _4417) - 1.0, (_4415 / _4421) + 1.0) * _4390.x;vec2 _4467 = vec2(((2.0 - _4424) / _4426) - 1.0, (_4424 / _4430) + 1.0) * _4390.y;float _4475 = _4463.x;float _4477 = _4467.x;float _4541 = float(_6593);float _4543 = clamp(_4381.z, 0.0, 1.0);float _4492 = _4463.y;float _4511 = _4467.y;_6599 = (((((_4417 * _4426) * texture(light_shadowMap, vec4(vec4(_4411 + vec2(_4475, _4477), _4541, _4543).xyz, _4543))) + ((_4421 * _4426) * texture(light_shadowMap, vec4(vec4(_4411 + vec2(_4492, _4477), _4541, _4543).xyz, _4543)))) + ((_4417 * _4430) * texture(light_shadowMap, vec4(vec4(_4411 + vec2(_4475, _4511), _4541, _4543).xyz, _4543)))) + ((_4421 * _4430) * texture(light_shadowMap, vec4(vec4(_4411 + vec2(_4492, _4511), _4541, _4543).xyz, _4543)))) * 0.0625;_6599 = 1.0;float _6615;vec3 _6649;if (_6595 && (_6599 > 0.0))float _6616;vec3 _6650;uint _4605 = (frameUniforms.iz >> 8u) & 255u;vec4 _4713 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _4720 = frameUniforms.e * vec4(shading_position + (_4122 * frameUniforms.kz), 1.0);vec4 _4726 = _4713 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));vec3 _4732 = _4713.xyz * (1.0 / _4713.w);vec3 _4739 = _4720.xyz * (1.0 / _4720.w);float _4766 = _4732.z;vec3 _4769 = vec3((_4732.xy * 0.5) + vec2(0.5), _4766);vec3 _4774 = vec3((_4739.xy * 0.5) + vec2(0.5), _4739.z) - _4769;float _4615 = 1.0 / float(_4605);float _4623 = abs((_4726.xyz * (1.0 / _4726.w)).z - _4766) * _4615;float _4635 = (_4615 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _4615;vec3 _6603;_6603 = _6607;vec3 _4648;vec3 _6602;float _6611;uint _6600 = 0u;float _6601 = _4635;if (_6600 < _4605)_4648 = _4769 + (_4774 * _6601);if (abs(_4623 - (textureLod(light_structure, _4648.xy, 0.0).x - _4648.z)) < _4623)_6611 = 1.0;_6602 = _4648;_6601 += _4615;_6600++;_6603 = _4648;_6611 = 0.0;_6602 = _6603;vec2 _4683 = max((abs(_6602.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_6650 = _6602;_6616 = _6599 * (1.0 - (_6611 * clamp(1.0 - dot(_4683, _4683), 0.0, 1.0)));_6650 = _6607;_6616 = _6599;_6649 = _6650;_6615 = _6616;_6649 = _6607;_6615 = _6599;if (_6615 <= 0.0)_6648 = _6649;_6651 = _6649;_6617 = _6615;_6651 = _6607;_6617 = 1.0;vec3 _4807 = normalize(shading_view + _4122);float _4810 = clamp(_4133, 0.0, 1.0);float _4814 = clamp(dot(shading_normal, _4807), 0.0, 1.0);float _4902 = _4814 * _3425;float _4909 = _3425 / ((1.0 - (_4814 * _4814)) + (_4902 * _4902));float _4979 = 1.0 - clamp(dot(_4122, _4807), 0.0, 1.0);float _4988 = _4979 * _4979;_6648 = _6651;_6637 = _6589 + ((((_3388 * 0.3183098733425140380859375) + (((_3405 + ((vec3(clamp(dot(_3405, vec3(16.5)), 0.0, 1.0)) - _3405) * ((_4988 * _4988) * _4979))) * (((_4909 * _4909) * 0.3183098733425140380859375) * (0.5 / ((_4810 * sqrt(((shading_NoV - (_3619 * shading_NoV)) * shading_NoV) + _3619)) + (shading_NoV * sqrt(((_4810 - (_3619 * _4810)) * _4810) + _3619)))))) * _3444)) * _6435.xyz) * (((_4202 * _6597) * _4810) * _6617));fragColor = vec4(_6589, 1.0);bvec4 _5029 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z));uint param = clamp(uint(dot(vec4(_5029.x ? vec4(1.0).x : vec4(0.0).x, _5029.y ? vec4(1.0).y : vec4(0.0).y, _5029.z ? vec4(1.0).z : vec4(0.0).z, _5029.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);vec4 _3212 = fragColor;vec3 _3214 = _3212.xyz * uintToColorDebug(param);fragColor.x = _3214.x;fragColor.y = _3214.y;fragColor.z = _3214.z;vec4 a[256];uniform sampler2DArray morphTargetBuffer_positions;mat3 _1159;vec4 _1172;ivec3 _1171;_1171 = ivec3(gl_VertexID % 2048, gl_VertexID / 2048, 0);for (uint _1149 = 0u; _1149 < objectUniforms.c; )ivec3 _1082 = _1171;_1082.z = int(_1149);_1171 = _1082;_1150 += (texelFetch(morphTargetBuffer_positions, _1082, 0) * morphingUniforms.a[_1149].x);_1149++;_1151 = mesh_position;bool _533 = (objectUniforms.d & 1u) != 0u;vec4 _1152;if (_533)mat4x3 _625 = transpose(bonesUniforms.a[mesh_bone_indices.x].transform);mat4x3 _652 = transpose(bonesUniforms.a[mesh_bone_indices.y].transform);mat4x3 _679 = transpose(bonesUniforms.a[mesh_bone_indices.z].transform);mat4x3 _706 = transpose(bonesUniforms.a[mesh_bone_indices.w].transform);vec3 _618 = (((((_625[0] * _1151.x) + ((_625[1] * _1151.y) + ((_625[2] * _1151.z) + _625[3]))) * mesh_bone_weights.x) + (((_652[0] * _1151.x) + ((_652[1] * _1151.y) + ((_652[2] * _1151.z) + _652[3]))) * mesh_bone_weights.y)) + (((_679[0] * _1151.x) + ((_679[1] * _1151.y) + ((_679[2] * _1151.z) + _679[3]))) * mesh_bone_weights.z)) + (((_706[0] * _1151.x) + ((_706[1] * _1151.y) + ((_706[2] * _1151.z) + _706[3]))) * mesh_bone_weights.w);vec4 _1112 = _1172;_1112.x = _618.x;vec4 _1114 = _1112;_1114.y = _618.y;vec4 _1116 = _1114;_1116.z = _618.z;_1152 = _1116;_1152 = _1151;vec4 _741 = (objectUniforms.a[0] * _1152.x) + ((objectUniforms.a[1] * _1152.y) + ((objectUniforms.a[2] * _1152.z) + objectUniforms.a[3]));vec3 _752 = (vec3(0.0, 0.0, 1.0) + ((vec3(2.0, -2.0, -2.0) * mesh_tangents.x) * mesh_tangents.zwx)) + ((vec3(2.0, 2.0, -2.0) * mesh_tangents.y) * mesh_tangents.wzy);vec3 _1170;vec2 _803 = unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.x].cof.y);mat3 _1119 = _1159;_1119[0] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.x].cof.x), _803.x);mat3 _1122 = _1119;_1122[1] = vec3(_803.y, unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.x].cof.z));mat3 _1124 = _1122;_1124[2] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.x].cof.w), (bonesUniforms.a[mesh_bone_indices.x].transform[0].x * bonesUniforms.a[mesh_bone_indices.x].transform[1].y) - (bonesUniforms.a[mesh_bone_indices.x].transform[0].y * bonesUniforms.a[mesh_bone_indices.x].transform[1].x));vec2 _872 = unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.y].cof.y);mat3 _1127 = _1159;_1127[0] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.y].cof.x), _872.x);mat3 _1130 = _1127;_1130[1] = vec3(_872.y, unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.y].cof.z));mat3 _1132 = _1130;_1132[2] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.y].cof.w), (bonesUniforms.a[mesh_bone_indices.y].transform[0].x * bonesUniforms.a[mesh_bone_indices.y].transform[1].y) - (bonesUniforms.a[mesh_bone_indices.y].transform[0].y * bonesUniforms.a[mesh_bone_indices.y].transform[1].x));vec2 _941 = unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.z].cof.y);mat3 _1135 = _1159;_1135[0] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.z].cof.x), _941.x);mat3 _1138 = _1135;_1138[1] = vec3(_941.y, unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.z].cof.z));mat3 _1140 = _1138;_1140[2] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.z].cof.w), (bonesUniforms.a[mesh_bone_indices.z].transform[0].x * bonesUniforms.a[mesh_bone_indices.z].transform[1].y) - (bonesUniforms.a[mesh_bone_indices.z].transform[0].y * bonesUniforms.a[mesh_bone_indices.z].transform[1].x));vec2 _1010 = unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.w].cof.y);mat3 _1143 = _1159;_1143[0] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.w].cof.x), _1010.x);mat3 _1146 = _1143;_1146[1] = vec3(_1010.y, unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.w].cof.z));mat3 _1148 = _1146;_1148[2] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.w].cof.w), (bonesUniforms.a[mesh_bone_indices.w].transform[0].x * bonesUniforms.a[mesh_bone_indices.w].transform[1].y) - (bonesUniforms.a[mesh_bone_indices.w].transform[0].y * bonesUniforms.a[mesh_bone_indices.w].transform[1].x));_1170 = (((normalize(_1124 * _752) * mesh_bone_weights.x) + (normalize(_1132 * _752) * mesh_bone_weights.y)) + (normalize(_1140 * _752) * mesh_bone_weights.z)) + (normalize(_1148 * _752) * mesh_bone_weights.w);_1170 = _752;vertex_worldPosition.x = _741.x;vertex_worldPosition.y = _741.y;vertex_worldPosition.z = _741.z;vertex_worldNormal = objectUniforms.b * _1170;gl_Position = frameUniforms.e * _741;mat3 _1243;vec4 _1256;vec4 _1235;vec4 _1234;ivec3 _1255;_1255 = ivec3(gl_VertexID % 2048, gl_VertexID / 2048, 0);_1234 = mesh_position;for (uint _1233 = 0u; _1233 < objectUniforms.c; )ivec3 _1166 = _1255;_1166.z = int(_1233);_1255 = _1166;_1234 += (texelFetch(morphTargetBuffer_positions, _1166, 0) * morphingUniforms.a[_1233].x);_1233++;_1235 = _1234;_1235 = mesh_position;bool _580 = (objectUniforms.d & 1u) != 0u;vec4 _1236;if (_580)mat4x3 _672 = transpose(bonesUniforms.a[mesh_bone_indices.x].transform);mat4x3 _699 = transpose(bonesUniforms.a[mesh_bone_indices.y].transform);mat4x3 _726 = transpose(bonesUniforms.a[mesh_bone_indices.z].transform);mat4x3 _753 = transpose(bonesUniforms.a[mesh_bone_indices.w].transform);vec3 _665 = (((((_672[0] * _1235.x) + ((_672[1] * _1235.y) + ((_672[2] * _1235.z) + _672[3]))) * mesh_bone_weights.x) + (((_699[0] * _1235.x) + ((_699[1] * _1235.y) + ((_699[2] * _1235.z) + _699[3]))) * mesh_bone_weights.y)) + (((_726[0] * _1235.x) + ((_726[1] * _1235.y) + ((_726[2] * _1235.z) + _726[3]))) * mesh_bone_weights.z)) + (((_753[0] * _1235.x) + ((_753[1] * _1235.y) + ((_753[2] * _1235.z) + _753[3]))) * mesh_bone_weights.w);vec4 _1196 = _1256;_1196.x = _665.x;vec4 _1198 = _1196;_1198.y = _665.y;vec4 _1200 = _1198;_1200.z = _665.z;_1236 = _1200;_1236 = _1235;vec4 _788 = (objectUniforms.a[0] * _1236.x) + ((objectUniforms.a[1] * _1236.y) + ((objectUniforms.a[2] * _1236.z) + objectUniforms.a[3]));vec3 _799 = (vec3(0.0, 0.0, 1.0) + ((vec3(2.0, -2.0, -2.0) * mesh_tangents.x) * mesh_tangents.zwx)) + ((vec3(2.0, 2.0, -2.0) * mesh_tangents.y) * mesh_tangents.wzy);vec3 _1254;vec2 _850 = unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.x].cof.y);mat3 _1203 = _1243;_1203[0] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.x].cof.x), _850.x);mat3 _1206 = _1203;_1206[1] = vec3(_850.y, unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.x].cof.z));mat3 _1208 = _1206;_1208[2] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.x].cof.w), (bonesUniforms.a[mesh_bone_indices.x].transform[0].x * bonesUniforms.a[mesh_bone_indices.x].transform[1].y) - (bonesUniforms.a[mesh_bone_indices.x].transform[0].y * bonesUniforms.a[mesh_bone_indices.x].transform[1].x));vec2 _919 = unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.y].cof.y);mat3 _1211 = _1243;_1211[0] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.y].cof.x), _919.x);mat3 _1214 = _1211;_1214[1] = vec3(_919.y, unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.y].cof.z));mat3 _1216 = _1214;_1216[2] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.y].cof.w), (bonesUniforms.a[mesh_bone_indices.y].transform[0].x * bonesUniforms.a[mesh_bone_indices.y].transform[1].y) - (bonesUniforms.a[mesh_bone_indices.y].transform[0].y * bonesUniforms.a[mesh_bone_indices.y].transform[1].x));vec2 _988 = unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.z].cof.y);mat3 _1219 = _1243;_1219[0] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.z].cof.x), _988.x);mat3 _1222 = _1219;_1222[1] = vec3(_988.y, unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.z].cof.z));mat3 _1224 = _1222;_1224[2] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.z].cof.w), (bonesUniforms.a[mesh_bone_indices.z].transform[0].x * bonesUniforms.a[mesh_bone_indices.z].transform[1].y) - (bonesUniforms.a[mesh_bone_indices.z].transform[0].y * bonesUniforms.a[mesh_bone_indices.z].transform[1].x));vec2 _1057 = unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.w].cof.y);mat3 _1227 = _1243;_1227[0] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.w].cof.x), _1057.x);mat3 _1230 = _1227;_1230[1] = vec3(_1057.y, unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.w].cof.z));mat3 _1232 = _1230;_1232[2] = vec3(unpackHalf2x16(bonesUniforms.a[mesh_bone_indices.w].cof.w), (bonesUniforms.a[mesh_bone_indices.w].transform[0].x * bonesUniforms.a[mesh_bone_indices.w].transform[1].y) - (bonesUniforms.a[mesh_bone_indices.w].transform[0].y * bonesUniforms.a[mesh_bone_indices.w].transform[1].x));_1254 = (((normalize(_1208 * _799) * mesh_bone_weights.x) + (normalize(_1216 * _799) * mesh_bone_weights.y)) + (normalize(_1224 * _799) * mesh_bone_weights.z)) + (normalize(_1232 * _799) * mesh_bone_weights.w);_1254 = _799;vertex_worldPosition.x = _788.x;vertex_worldPosition.y = _788.y;vertex_worldPosition.z = _788.z;vertex_worldNormal = objectUniforms.b * _1254;float _1118 = clamp(dot(vertex_worldNormal, frameUniforms.q), 0.0, 1.0);vec3 _1128 = vertex_worldPosition.xyz + (vertex_worldNormal * (sqrt(1.0 - (_1118 * _1118)) * frameUniforms.t));vertex_lightSpacePosition = (frameUniforms.g[0][0] * _1128.x) + ((frameUniforms.g[0][1] * _1128.y) + ((frameUniforms.g[0][2] * _1128.z) + frameUniforms.g[0][3]));gl_Position = frameUniforms.e * _788;vec4 _625;ivec3 _624;_624 = ivec3(gl_VertexID % 2048, gl_VertexID / 2048, 0);for (uint _620 = 0u; _620 < objectUniforms.c; )ivec3 _585 = _624;_585.z = int(_620);_624 = _585;_621 += (texelFetch(morphTargetBuffer_positions, _585, 0) * morphingUniforms.a[_620].x);_620++;_622 = mesh_position;vec4 _623;mat4x3 _455 = transpose(bonesUniforms.a[mesh_bone_indices.x].transform);mat4x3 _482 = transpose(bonesUniforms.a[mesh_bone_indices.y].transform);mat4x3 _509 = transpose(bonesUniforms.a[mesh_bone_indices.z].transform);mat4x3 _536 = transpose(bonesUniforms.a[mesh_bone_indices.w].transform);vec3 _448 = (((((_455[0] * _622.x) + ((_455[1] * _622.y) + ((_455[2] * _622.z) + _455[3]))) * mesh_bone_weights.x) + (((_482[0] * _622.x) + ((_482[1] * _622.y) + ((_482[2] * _622.z) + _482[3]))) * mesh_bone_weights.y)) + (((_509[0] * _622.x) + ((_509[1] * _622.y) + ((_509[2] * _622.z) + _509[3]))) * mesh_bone_weights.z)) + (((_536[0] * _622.x) + ((_536[1] * _622.y) + ((_536[2] * _622.z) + _536[3]))) * mesh_bone_weights.w);vec4 _615 = _625;_615.x = _448.x;vec4 _617 = _615;_617.y = _448.y;vec4 _619 = _617;_619.z = _448.z;_623 = _619;_623 = _622;gl_Position = frameUniforms.e * ((objectUniforms.a[0] * _623.x) + ((objectUniforms.a[1] * _623.y) + ((objectUniforms.a[2] * _623.z) + objectUniforms.a[3])));vec3 _2753;vec4 _2755;vec4 _2768;float _2775;vec2 _664 = cache.uv;vec4 _676 = textureGather(light_ssao, vec3(cache.uv, 0.0), 1);vec4 _684 = textureGather(light_ssao, vec3(cache.uv, 0.0), 2);vec4 _2708 = _2768;_2708.x = (_676.x * 0.996108949184417724609375) + (_684.x * 0.00389105058275163173675537109375);vec4 _2714 = _2708;_2714.y = (_676.y * 0.996108949184417724609375) + (_684.y * 0.00389105058275163173675537109375);vec4 _2720 = _2714;_2720.z = (_676.z * 0.996108949184417724609375) + (_684.z * 0.00389105058275163173675537109375);vec4 _2726 = _2720;_2726.w = (_676.w * 0.996108949184417724609375) + (_684.w * 0.00389105058275163173675537109375);vec2 _731 = fract((cache.uv * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _734 = _731.x;float _735 = 1.0 - _734;float _737 = _731.y;vec4 _2730 = _2768;_2730.x = _735 * _737;vec4 _2734 = _2730;_2734.y = _734 * _737;float _750 = 1.0 - _737;vec4 _2738 = _2734;_2738.z = _734 * _750;vec4 _2742 = _2738;_2742.w = _735 * _750;vec4 _784 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_2726 * (-frameUniforms.gz))) * frameUniforms.vz;vec4 _794 = max(vec4(6.103515625e-05), vec4(1.0) - (_784 * _784)) * _2742;cache.weights = _794 / vec4(((_794.x + _794.y) + _794.z) + _794.w);return dot(textureGather(light_ssao, vec3(_664, 0.0)), cache.weights);float _2397 = (((-0.15658269822597503662109375) * cosCap1) + 1.57079601287841796875) * sqrt(1.0 - cosCap1);float _2408 = (((-0.15658269822597503662109375) * cosCap2) + 1.57079601287841796875) * sqrt(1.0 - cosCap2);float _2415 = abs(cosDistance);float _2423 = (((-0.15658269822597503662109375) * _2415) + 1.57079601287841796875) * sqrt(1.0 - _2415);float _2769;_2769 = _2423;_2769 = 3.1415927410125732421875 - _2423;float _872;if (min(_2397, _2408) <= (max(_2397, _2408) - _2769))_872 = _2397 + _2408;if (_872 <= _2769)float _882 = abs(_2397 - _2408);float _895 = 1.0 - clamp((_2769 - _882) / max(_872 - _882, 9.9999997473787516355514526367188e-05), 0.0, 1.0);return ((_895 * _895) * (((-2.0) * _895) + 3.0)) * (1.0 - max(cosCap1, cosCap2));ivec2 _1190 = textureSize(light_iblSpecular, int(frameUniforms.fz));vec3 _1205 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _1212 = _1205 * (1.0 / float(_1190.x));vec3 _1216 = cross(_1205, n) * (1.0 / float(_1190.y));vec3 _1219 = n - _1212;vec3 _1224 = n + _1212;return (((textureLod(light_iblSpecular, _1219 - _1216, frameUniforms.fz).xyz + textureLod(light_iblSpecular, _1224 - _1216, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _1224 + _1216, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _1219 + _1216, frameUniforms.fz).xyz) * 0.25;vec3 _1589 = normalize(vertex_worldNormal);vec3 _1596 = normalize(frameUniforms.j - shading_position);float _1649 = max(dot(_1589, _1596), 9.9999997473787516355514526367188e-05);vec3 _1642 = reflect(-_1596, _1589);vec4 _2684 = vec4(1.0);_2684.x = materialParams.a.x;vec4 _2686 = _2684;_2686.y = materialParams.a.y;vec4 _2688 = _2686;_2688.z = materialParams.a.z;float _1736 = 1.0 - materialParams.b;vec3 _1737 = _2688.xyz * _1736;vec3 _1754 = (_2688.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _1736);float _1764 = clamp(materialParams.c, 0.04500000178813934326171875, 1.0);float _1774 = _1764 * _1764;vec4 _1808 = textureLod(light_iblDFG, vec2(_1649, _1764), 0.0);vec3 _1955 = mix(_1808.xxx, _1808.yyy, _1754);float _1968 = _1774 * _1774;SSAOInterpolationCache _1817 = SSAOInterpolationCache(_2755, vec3((vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5), _2775).xy);float _1859 = evaluateSSAO(_1817);float _1863 = min(1.0, _1859);float _2085 = clamp((pow(_1649 + _1863, exp2(((-16.0) * _1774) - 1.0)) - 1.0) + _1863, 0.0, 1.0);float _2758;vec3 _2756;vec3 _2032 = vec3(_1817.uv, 1.0);vec3 _2691 = _2753;_2691.x = dot(textureGather(light_ssao, _2032), _1817.weights);vec3 _2693 = _2691;_2693.y = dot(textureGather(light_ssao, _2032, 1), _1817.weights);vec3 _2695 = _2693;_2695.z = dot(textureGather(light_ssao, _2032, 2), _1817.weights);_2756 = _2695;_2756 = textureLod(light_ssao, vec3(_1817.uv, 1.0), 0.0).xyz;float _2108 = exp2((-3.3219280242919921875) * _1968);float _2097 = sqrt(1.0 - _1863);float _2098 = _2108;float _2099 = dot(normalize((_2756 * 2.0) - vec3(1.0)), _1642);_2758 = min(_2085, mix(1.0, sphericalCapsIntersection(_2097, _2098, _2099) / (1.0 - _2108), smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _1774)));_2758 = _2085;fragColor = vec4(((((_1955 * textureLod(light_iblSpecular, mix(_1642, _1589, vec3(_1968)), (frameUniforms.fz * _1764) * (2.0 - _1764)).xyz) * ((vec3(1.0) + (_1754 * ((1.0 / _1808.y) - 1.0))) * 1.0)) * max(vec3(_2758), ((((((_1754 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2758) + ((_1754 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2758) + ((_1754 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2758)) * frameUniforms.az) + (((((_1737 * diffuseIrradiance(_1589)) * (vec3(1.0) - _1955)) * 1.0) * max(vec3(_1863), ((((((_1737 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _1863) + ((_1737 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _1863) + ((_1737 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _1863)) * frameUniforms.az), 1.0);vec3 _1552 = shading_position - frameUniforms.j;vec4 _2767;float _2239 = length(_1552);float _2242 = max(0.001000000047497451305389404296875, _1552.y);float _2252 = frameUniforms.qz * ((1.0 - exp((-frameUniforms.oz) * _2242)) / _2242);float _2268 = min(max(1.0 - exp2(-(_2252 * max(_2239 - frameUniforms.lz, 0.0))), 0.0), frameUniforms.mz);vec3 _2763;_2763 = frameUniforms.pz * (textureLod(light_iblSpecular, _1552, frameUniforms.fz).xyz * frameUniforms.az);_2763 = frameUniforms.pz;vec3 _2290 = _2763 * _2268;vec3 _2766;_2766 = _2290 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_1552, frameUniforms.q) / _2239, 0.0), frameUniforms.sz) * max(1.0 - exp2(-(_2252 * max(_2239 - frameUniforms.rz, 0.0))), 0.0)));_2766 = _2290;vec3 _2338 = (fragColor.xyz * (1.0 - _2268)) + _2766;vec4 _2698 = fragColor;_2698.x = _2338.x;vec4 _2700 = _2698;_2700.y = _2338.y;vec4 _2702 = _2700;_2702.z = _2338.z;_2767 = _2702;_2767 = fragColor;fragColor = _2767;vec3 _3433;float _3434;vec4 _3435;vec4 _3448;float _3459;vec2 _981 = cache.uv;vec4 _993 = textureGather(light_ssao, vec3(cache.uv, 0.0), 1);vec4 _1001 = textureGather(light_ssao, vec3(cache.uv, 0.0), 2);vec4 _3388 = _3448;_3388.x = (_993.x * 0.996108949184417724609375) + (_1001.x * 0.00389105058275163173675537109375);vec4 _3394 = _3388;_3394.y = (_993.y * 0.996108949184417724609375) + (_1001.y * 0.00389105058275163173675537109375);vec4 _3400 = _3394;_3400.z = (_993.z * 0.996108949184417724609375) + (_1001.z * 0.00389105058275163173675537109375);vec4 _3406 = _3400;_3406.w = (_993.w * 0.996108949184417724609375) + (_1001.w * 0.00389105058275163173675537109375);vec2 _1048 = fract((cache.uv * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _1051 = _1048.x;float _1052 = 1.0 - _1051;float _1054 = _1048.y;vec4 _3410 = _3448;_3410.x = _1052 * _1054;vec4 _3414 = _3410;_3414.y = _1051 * _1054;float _1067 = 1.0 - _1054;vec4 _3418 = _3414;_3418.z = _1051 * _1067;vec4 _3422 = _3418;_3422.w = _1052 * _1067;vec4 _1101 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_3406 * (-frameUniforms.gz))) * frameUniforms.vz;vec4 _1111 = max(vec4(6.103515625e-05), vec4(1.0) - (_1101 * _1101)) * _3422;cache.weights = _1111 / vec4(((_1111.x + _1111.y) + _1111.z) + _1111.w);return dot(textureGather(light_ssao, vec3(_981, 0.0)), cache.weights);float _2779 = (((-0.15658269822597503662109375) * cosCap1) + 1.57079601287841796875) * sqrt(1.0 - cosCap1);float _2790 = (((-0.15658269822597503662109375) * cosCap2) + 1.57079601287841796875) * sqrt(1.0 - cosCap2);float _2797 = abs(cosDistance);float _2805 = (((-0.15658269822597503662109375) * _2797) + 1.57079601287841796875) * sqrt(1.0 - _2797);float _3449;_3449 = _2805;_3449 = 3.1415927410125732421875 - _2805;float _1189;if (min(_2779, _2790) <= (max(_2779, _2790) - _3449))_1189 = _2779 + _2790;if (_1189 <= _3449)float _1199 = abs(_2779 - _2790);float _1212 = 1.0 - clamp((_3449 - _1199) / max(_1189 - _1199, 9.9999997473787516355514526367188e-05), 0.0, 1.0);return ((_1212 * _1212) * (((-2.0) * _1212) + 3.0)) * (1.0 - max(cosCap1, cosCap2));ivec2 _1506 = textureSize(light_iblSpecular, int(frameUniforms.fz));vec3 _1521 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _1528 = _1521 * (1.0 / float(_1506.x));vec3 _1532 = cross(_1521, n) * (1.0 / float(_1506.y));vec3 _1535 = n - _1528;vec3 _1540 = n + _1528;return (((textureLod(light_iblSpecular, _1535 - _1532, frameUniforms.fz).xyz + textureLod(light_iblSpecular, _1540 - _1532, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _1540 + _1532, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _1535 + _1532, frameUniforms.fz).xyz) * 0.25;float _2937 = clamp(dot(shading_normal, frameUniforms.q), 0.0, 1.0);if (_2937 <= 0.0)vec3 _2966 = normalize(shading_view + frameUniforms.q);float _2969 = clamp(_2937, 0.0, 1.0);float _2973 = clamp(dot(shading_normal, _2966), 0.0, 1.0);float _3061 = _2973 * pixel.roughness;float _3068 = pixel.roughness / ((1.0 - (_2973 * _2973)) + (_3061 * _3061));float _3091 = pixel.roughness * pixel.roughness;float _3138 = 1.0 - clamp(dot(frameUniforms.q, _2966), 0.0, 1.0);float _3147 = _3138 * _3138;color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_3147 * _3147) * _3138))) * (((_3068 * _3068) * 0.3183098733425140380859375) * (0.5 / ((_2969 * sqrt(((shading_NoV - (_3091 * shading_NoV)) * shading_NoV) + _3091)) + (shading_NoV * sqrt(((_2969 - (_3091 * _2969)) * _2969) + _3091)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * (frameUniforms.l.w * _2969));vec3 _2019 = reflect(-shading_view, shading_normal);vec4 _3364 = vec4(1.0);_3364.x = materialParams.a.x;vec4 _3366 = _3364;_3366.y = materialParams.a.y;vec4 _3368 = _3366;_3368.z = materialParams.a.z;float _2118 = 1.0 - materialParams.b;vec3 _2119 = _3368.xyz * _2118;vec3 _2136 = (_3368.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _2118);float _2146 = clamp(materialParams.c, 0.04500000178813934326171875, 1.0);float _2156 = _2146 * _2146;vec4 _2190 = textureLod(light_iblDFG, vec2(shading_NoV, _2146), 0.0);vec3 _2175 = vec3(1.0) + (_2136 * ((1.0 / _2190.y) - 1.0));vec3 _2337 = mix(_2190.xxx, _2190.yyy, _2136);float _2350 = _2156 * _2156;SSAOInterpolationCache _2199 = SSAOInterpolationCache(_3435, vec3((vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5), _3459).xy);float _2241 = evaluateSSAO(_2199);float _2245 = min(1.0, _2241);float _2467 = clamp((pow(shading_NoV + _2245, exp2(((-16.0) * _2156) - 1.0)) - 1.0) + _2245, 0.0, 1.0);float _3438;vec3 _3436;vec3 _2414 = vec3(_2199.uv, 1.0);vec3 _3371 = _3433;_3371.x = dot(textureGather(light_ssao, _2414), _2199.weights);vec3 _3373 = _3371;_3373.y = dot(textureGather(light_ssao, _2414, 1), _2199.weights);vec3 _3375 = _3373;_3375.z = dot(textureGather(light_ssao, _2414, 2), _2199.weights);_3436 = _3375;_3436 = textureLod(light_ssao, vec3(_2199.uv, 1.0), 0.0).xyz;float _2490 = exp2((-3.3219280242919921875) * _2350);float _2479 = sqrt(1.0 - _2245);float _2480 = _2490;float _2481 = dot(normalize((_3436 * 2.0) - vec3(1.0)), _2019);_3438 = min(_2467, mix(1.0, sphericalCapsIntersection(_2479, _2480, _2481) / (1.0 - _2490), smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _2156)));_3438 = _2467;vec3 _2040 = ((((_2337 * textureLod(light_iblSpecular, mix(_2019, shading_normal, vec3(_2350)), (frameUniforms.fz * _2146) * (2.0 - _2146)).xyz) * (_2175 * 1.0)) * max(vec3(_3438), ((((((_2136 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _3438) + ((_2136 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _3438) + ((_2136 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _3438)) * frameUniforms.az) + (((((_2119 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _2337)) * 1.0) * max(vec3(_2245), ((((((_2119 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2245) + ((_2119 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2245) + ((_2119 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2245)) * frameUniforms.az);evaluateDirectionalLight(MaterialInputs(_3368, materialParams.c, materialParams.b, materialParams.d, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _3433, _3434, _3434, _3434, _3434, _3433), PixelParams(_2119, _2146, materialParams.c, _2136, _2156, _2190.xyz, _2175), _2040);fragColor = vec4(_2040, 1.0);vec3 _1933 = shading_position - frameUniforms.j;vec4 _3447;float _2621 = length(_1933);float _2624 = max(0.001000000047497451305389404296875, _1933.y);float _2634 = frameUniforms.qz * ((1.0 - exp((-frameUniforms.oz) * _2624)) / _2624);float _2650 = min(max(1.0 - exp2(-(_2634 * max(_2621 - frameUniforms.lz, 0.0))), 0.0), frameUniforms.mz);vec3 _3443;_3443 = frameUniforms.pz * (textureLod(light_iblSpecular, _1933, frameUniforms.fz).xyz * frameUniforms.az);_3443 = frameUniforms.pz;vec3 _2672 = _3443 * _2650;vec3 _3446;_3446 = _2672 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_1933, frameUniforms.q) / _2621, 0.0), frameUniforms.sz) * max(1.0 - exp2(-(_2634 * max(_2621 - frameUniforms.rz, 0.0))), 0.0)));_3446 = _2672;vec3 _2720 = (fragColor.xyz * (1.0 - _2650)) + _3446;vec4 _3378 = fragColor;_3378.x = _2720.x;vec4 _3380 = _3378;_3380.y = _2720.y;vec4 _3382 = _3380;_3382.z = _2720.z;_3447 = _3382;_3447 = fragColor;fragColor = _3447;vec3 _4187;vec4 _4189;vec4 _4224;float _4231;vec2 _1037 = cache.uv;vec4 _1049 = textureGather(light_ssao, vec3(cache.uv, 0.0), 1);vec4 _1057 = textureGather(light_ssao, vec3(cache.uv, 0.0), 2);vec4 _4142 = _4224;_4142.x = (_1049.x * 0.996108949184417724609375) + (_1057.x * 0.00389105058275163173675537109375);vec4 _4148 = _4142;_4148.y = (_1049.y * 0.996108949184417724609375) + (_1057.y * 0.00389105058275163173675537109375);vec4 _4154 = _4148;_4154.z = (_1049.z * 0.996108949184417724609375) + (_1057.z * 0.00389105058275163173675537109375);vec4 _4160 = _4154;_4160.w = (_1049.w * 0.996108949184417724609375) + (_1057.w * 0.00389105058275163173675537109375);vec2 _1104 = fract((cache.uv * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _1107 = _1104.x;float _1108 = 1.0 - _1107;float _1110 = _1104.y;vec4 _4164 = _4224;_4164.x = _1108 * _1110;vec4 _4168 = _4164;_4168.y = _1107 * _1110;float _1123 = 1.0 - _1110;vec4 _4172 = _4168;_4172.z = _1107 * _1123;vec4 _4176 = _4172;_4176.w = _1108 * _1123;vec4 _1157 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_4160 * (-frameUniforms.gz))) * frameUniforms.vz;vec4 _1167 = max(vec4(6.103515625e-05), vec4(1.0) - (_1157 * _1157)) * _4176;cache.weights = _1167 / vec4(((_1167.x + _1167.y) + _1167.z) + _1167.w);return dot(textureGather(light_ssao, vec3(_1037, 0.0)), cache.weights);float _3761 = (((-0.15658269822597503662109375) * cosCap1) + 1.57079601287841796875) * sqrt(1.0 - cosCap1);float _3772 = (((-0.15658269822597503662109375) * cosCap2) + 1.57079601287841796875) * sqrt(1.0 - cosCap2);float _3779 = abs(cosDistance);float _3787 = (((-0.15658269822597503662109375) * _3779) + 1.57079601287841796875) * sqrt(1.0 - _3779);float _4225;_4225 = _3787;_4225 = 3.1415927410125732421875 - _3787;float _1245;if (min(_3761, _3772) <= (max(_3761, _3772) - _4225))_1245 = _3761 + _3772;if (_1245 <= _4225)float _1255 = abs(_3761 - _3772);float _1268 = 1.0 - clamp((_4225 - _1255) / max(_1245 - _1255, 9.9999997473787516355514526367188e-05), 0.0, 1.0);return ((_1268 * _1268) * (((-2.0) * _1268) + 3.0)) * (1.0 - max(cosCap1, cosCap2));ivec2 _1561 = textureSize(light_iblSpecular, int(frameUniforms.fz));vec3 _1576 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _1583 = _1576 * (1.0 / float(_1561.x));vec3 _1587 = cross(_1576, n) * (1.0 / float(_1561.y));vec3 _1590 = n - _1583;vec3 _1595 = n + _1583;return (((textureLod(light_iblSpecular, _1590 - _1587, frameUniforms.fz).xyz + textureLod(light_iblSpecular, _1595 - _1587, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _1595 + _1587, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _1590 + _1587, frameUniforms.fz).xyz) * 0.25;vec3 _2345 = normalize(vertex_worldNormal);vec3 _2352 = normalize(frameUniforms.j - shading_position);vec2 _2360 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);float _2405 = max(dot(_2345, _2352), 9.9999997473787516355514526367188e-05);vec3 _2398 = reflect(-_2352, _2345);vec4 _4090 = vec4(1.0);_4090.x = materialParams.a.x;vec4 _4092 = _4090;_4092.y = materialParams.a.y;vec4 _4094 = _4092;_4094.z = materialParams.a.z;float _2497 = 1.0 - materialParams.b;vec3 _2498 = _4094.xyz * _2497;vec3 _2515 = (_4094.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _2497);float _2525 = clamp(materialParams.c, 0.04500000178813934326171875, 1.0);float _2535 = _2525 * _2525;vec4 _2569 = textureLod(light_iblDFG, vec2(_2405, _2525), 0.0);vec3 _2554 = vec3(1.0) + (_2515 * ((1.0 / _2569.y) - 1.0));float _2703 = _2360.x;vec3 _2716 = mix(_2569.xxx, _2569.yyy, _2515);float _2729 = _2535 * _2535;SSAOInterpolationCache _2578 = SSAOInterpolationCache(_4189, vec3(_2703, _2360.y, _4231).xy);float _2620 = evaluateSSAO(_2578);float _2624 = min(1.0, _2620);float _2846 = clamp((pow(_2405 + _2624, exp2(((-16.0) * _2535) - 1.0)) - 1.0) + _2624, 0.0, 1.0);float _4192;vec3 _4190;vec3 _2793 = vec3(_2578.uv, 1.0);vec3 _4097 = _4187;_4097.x = dot(textureGather(light_ssao, _2793), _2578.weights);vec3 _4099 = _4097;_4099.y = dot(textureGather(light_ssao, _2793, 1), _2578.weights);vec3 _4101 = _4099;_4101.z = dot(textureGather(light_ssao, _2793, 2), _2578.weights);_4190 = _4101;_4190 = textureLod(light_ssao, vec3(_2578.uv, 1.0), 0.0).xyz;float _2869 = exp2((-3.3219280242919921875) * _2729);float _2858 = sqrt(1.0 - _2624);float _2859 = _2869;float _2860 = dot(normalize((_4190 * 2.0) - vec3(1.0)), _2398);_4192 = min(_2846, mix(1.0, sphericalCapsIntersection(_2858, _2859, _2860) / (1.0 - _2869), smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _2535)));_4192 = _2846;uvec2 _3068 = uvec2((vec3(_2703, _2360.y, gl_FragCoord.z).xy * frameUniforms.i.xy) * vec2(frameUniforms.z, frameUniforms.v));uint _3050 = ((_3068.x * frameUniforms.r) + (_3068.y * frameUniforms.x.x)) + (uint(clamp((log2((frameUniforms.w.x * gl_FragCoord.z) + frameUniforms.w.y) * frameUniforms.w.z) + frameUniforms.w.w, 0.0, frameUniforms.w.w - 1.0)) * frameUniforms.x.y);uvec4 _3107 = texelFetch(light_froxels, ivec2(int(_3050 & 63u), int(_3050 >> 6u)), 0);uint _3110 = _3107.x;uint _2982 = _3110 + (_3107.y & 255u);uint _2985 = objectUniforms.e & 255u;vec3 _4201;vec4 _4207;_4207 = _4189;_4201 = ((((_2716 * textureLod(light_iblSpecular, mix(_2398, _2345, vec3(_2729)), (frameUniforms.fz * _2525) * (2.0 - _2525)).xyz) * (_2554 * 1.0)) * max(vec3(_4192), ((((((_2515 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _4192) + ((_2515 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _4192) + ((_2515 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _4192)) * frameUniforms.az) + (((((_2498 * diffuseIrradiance(_2345)) * (vec3(1.0) - _2716)) * 1.0) * max(vec3(_2624), ((((((_2498 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2624) + ((_2498 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2624) + ((_2498 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2624)) * frameUniforms.az);vec4 _4128;vec3 _4220;for (uint _4200 = _3110; _4200 < _2982; _4207 = _4128, _4201 = _4220, _4200++)uvec4 _3252 = froxelRecordUniforms.a[_4200 >> 4u];uint _3268 = (_3252[(_4200 >> 2u) & 3u] >> ((_4200 & 3u) * 8u)) & 255u;vec2 _3154 = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_3268][2].x));vec3 _3179 = lightsUniforms.a[_3268][0].xyz - shading_position;vec4 _4122 = _4207;_4122.x = _3154.x;vec4 _4124 = _4122;_4124.y = _3154.y;vec4 _4126 = _4124;_4126.z = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_3268][2].y)).x;float _3274 = lightsUniforms.a[_3268][3].y * frameUniforms.bz;_4128 = _4126;_4128.w = _3274;vec3 _3194 = normalize(_3179);float _3283 = dot(_3179, _3179);float _3313 = _3283 * lightsUniforms.a[_3268][0].w;float _3318 = clamp(1.0 - (_3313 * _3313), 0.0, 1.0);vec3 _3289 = shading_position - frameUniforms.j;float _3306 = ((_3318 * _3318) * clamp(frameUniforms.n.x - (dot(_3289, _3289) * frameUniforms.n.y), 0.0, 1.0)) / max(_3283, 9.9999997473787516355514526367188e-05);float _3205 = clamp(dot(_2345, _3194), 0.0, 1.0);float _4214;if ((floatBitsToUint(lightsUniforms.a[_3268][3].z) & 1u) == 1u)float _3339 = clamp((dot(-lightsUniforms.a[_3268][1].xyz, _3194) * lightsUniforms.a[_3268][2].z) + lightsUniforms.a[_3268][2].w, 0.0, 1.0);_4214 = _3306 * (_3339 * _3339);_4214 = _3306;if ((floatBitsToUint(lightsUniforms.a[_3268][3].w) & _2985) == 0u)_4220 = _4201;bool _3003 = _3205 <= 0.0;bool _3010;if (!_3003)_3010 = _4214 <= 0.0;_3010 = _3003;if (_3010)vec3 _3363 = normalize(_2352 + _3194);float _3366 = clamp(_3205, 0.0, 1.0);float _3370 = clamp(dot(_2345, _3363), 0.0, 1.0);float _3458 = _3370 * _2535;float _3465 = _2535 / ((1.0 - (_3370 * _3370)) + (_3458 * _3458));float _3535 = 1.0 - clamp(dot(_3194, _3363), 0.0, 1.0);float _3544 = _3535 * _3535;_4220 = _4201 + ((((_2498 * 0.3183098733425140380859375) + (((_2515 + ((vec3(clamp(dot(_2515, vec3(16.5)), 0.0, 1.0)) - _2515) * ((_3544 * _3544) * _3535))) * (((_3465 * _3465) * 0.3183098733425140380859375) * (0.5 / ((_3366 * sqrt(((_2405 - (_2729 * _2405)) * _2405) + _2729)) + (_2405 * sqrt(((_3366 - (_2729 * _3366)) * _3366) + _2729)))))) * _2554)) * _4128.xyz) * ((_3274 * _4214) * _3366));fragColor = vec4(_4201, 1.0);vec3 _2327 = shading_position - frameUniforms.j;vec4 _4206;float _3603 = length(_2327);float _3606 = max(0.001000000047497451305389404296875, _2327.y);float _3616 = frameUniforms.qz * ((1.0 - exp((-frameUniforms.oz) * _3606)) / _3606);float _3632 = min(max(1.0 - exp2(-(_3616 * max(_3603 - frameUniforms.lz, 0.0))), 0.0), frameUniforms.mz);vec3 _4202;_4202 = frameUniforms.pz * (textureLod(light_iblSpecular, _2327, frameUniforms.fz).xyz * frameUniforms.az);_4202 = frameUniforms.pz;vec3 _3654 = _4202 * _3632;vec3 _4205;_4205 = _3654 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_2327, frameUniforms.q) / _3603, 0.0), frameUniforms.sz) * max(1.0 - exp2(-(_3616 * max(_3603 - frameUniforms.rz, 0.0))), 0.0)));_4205 = _3654;vec3 _3702 = (fragColor.xyz * (1.0 - _3632)) + _4205;vec4 _4132 = fragColor;_4132.x = _3702.x;vec4 _4134 = _4132;_4134.y = _3702.y;vec4 _4136 = _4134;_4136.z = _3702.z;_4206 = _4136;_4206 = fragColor;fragColor = _4206;vec3 _4555;float _4556;vec4 _4557;vec4 _4592;float _4603;vec2 _1048 = cache.uv;vec4 _1060 = textureGather(light_ssao, vec3(cache.uv, 0.0), 1);vec4 _1068 = textureGather(light_ssao, vec3(cache.uv, 0.0), 2);vec4 _4510 = _4592;_4510.x = (_1060.x * 0.996108949184417724609375) + (_1068.x * 0.00389105058275163173675537109375);vec4 _4516 = _4510;_4516.y = (_1060.y * 0.996108949184417724609375) + (_1068.y * 0.00389105058275163173675537109375);vec4 _4522 = _4516;_4522.z = (_1060.z * 0.996108949184417724609375) + (_1068.z * 0.00389105058275163173675537109375);vec4 _4528 = _4522;_4528.w = (_1060.w * 0.996108949184417724609375) + (_1068.w * 0.00389105058275163173675537109375);vec2 _1115 = fract((cache.uv * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _1118 = _1115.x;float _1119 = 1.0 - _1118;float _1121 = _1115.y;vec4 _4532 = _4592;_4532.x = _1119 * _1121;vec4 _4536 = _4532;_4536.y = _1118 * _1121;float _1134 = 1.0 - _1121;vec4 _4540 = _4536;_4540.z = _1118 * _1134;vec4 _4544 = _4540;_4544.w = _1119 * _1134;vec4 _1168 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_4528 * (-frameUniforms.gz))) * frameUniforms.vz;vec4 _1178 = max(vec4(6.103515625e-05), vec4(1.0) - (_1168 * _1168)) * _4544;cache.weights = _1178 / vec4(((_1178.x + _1178.y) + _1178.z) + _1178.w);return dot(textureGather(light_ssao, vec3(_1048, 0.0)), cache.weights);float _3834 = (((-0.15658269822597503662109375) * cosCap1) + 1.57079601287841796875) * sqrt(1.0 - cosCap1);float _3845 = (((-0.15658269822597503662109375) * cosCap2) + 1.57079601287841796875) * sqrt(1.0 - cosCap2);float _3852 = abs(cosDistance);float _3860 = (((-0.15658269822597503662109375) * _3852) + 1.57079601287841796875) * sqrt(1.0 - _3852);float _4593;_4593 = _3860;_4593 = 3.1415927410125732421875 - _3860;float _1256;if (min(_3834, _3845) <= (max(_3834, _3845) - _4593))_1256 = _3834 + _3845;if (_1256 <= _4593)float _1266 = abs(_3834 - _3845);float _1279 = 1.0 - clamp((_4593 - _1266) / max(_1256 - _1266, 9.9999997473787516355514526367188e-05), 0.0, 1.0);return ((_1279 * _1279) * (((-2.0) * _1279) + 3.0)) * (1.0 - max(cosCap1, cosCap2));ivec2 _1572 = textureSize(light_iblSpecular, int(frameUniforms.fz));vec3 _1587 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _1594 = _1587 * (1.0 / float(_1572.x));vec3 _1598 = cross(_1587, n) * (1.0 / float(_1572.y));vec3 _1601 = n - _1594;vec3 _1606 = n + _1594;return (((textureLod(light_iblSpecular, _1601 - _1598, frameUniforms.fz).xyz + textureLod(light_iblSpecular, _1606 - _1598, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _1606 + _1598, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _1601 + _1598, frameUniforms.fz).xyz) * 0.25;float _3992 = clamp(dot(shading_normal, frameUniforms.q), 0.0, 1.0);if (_3992 <= 0.0)vec3 _4021 = normalize(shading_view + frameUniforms.q);float _4024 = clamp(_3992, 0.0, 1.0);float _4028 = clamp(dot(shading_normal, _4021), 0.0, 1.0);float _4116 = _4028 * pixel.roughness;float _4123 = pixel.roughness / ((1.0 - (_4028 * _4028)) + (_4116 * _4116));float _4146 = pixel.roughness * pixel.roughness;float _4193 = 1.0 - clamp(dot(frameUniforms.q, _4021), 0.0, 1.0);float _4202 = _4193 * _4193;color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_4202 * _4202) * _4193))) * (((_4123 * _4123) * 0.3183098733425140380859375) * (0.5 / ((_4024 * sqrt(((shading_NoV - (_4146 * shading_NoV)) * shading_NoV) + _4146)) + (shading_NoV * sqrt(((_4024 - (_4146 * _4024)) * _4024) + _4146)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * (frameUniforms.l.w * _4024));vec2 _2428 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);vec3 _2466 = reflect(-shading_view, shading_normal);vec4 _4458 = vec4(1.0);_4458.x = materialParams.a.x;vec4 _4460 = _4458;_4460.y = materialParams.a.y;vec4 _4462 = _4460;_4462.z = materialParams.a.z;float _2570 = 1.0 - materialParams.b;vec3 _2571 = _4462.xyz * _2570;vec3 _2588 = (_4462.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _2570);float _2598 = clamp(materialParams.c, 0.04500000178813934326171875, 1.0);float _2608 = _2598 * _2598;vec4 _2642 = textureLod(light_iblDFG, vec2(shading_NoV, _2598), 0.0);vec3 _2627 = vec3(1.0) + (_2588 * ((1.0 / _2642.y) - 1.0));float _2776 = _2428.x;vec3 _2789 = mix(_2642.xxx, _2642.yyy, _2588);float _2802 = _2608 * _2608;SSAOInterpolationCache _2651 = SSAOInterpolationCache(_4557, vec3(_2776, _2428.y, _4603).xy);float _2693 = evaluateSSAO(_2651);float _2697 = min(1.0, _2693);float _2919 = clamp((pow(shading_NoV + _2697, exp2(((-16.0) * _2608) - 1.0)) - 1.0) + _2697, 0.0, 1.0);float _4560;vec3 _4558;vec3 _2866 = vec3(_2651.uv, 1.0);vec3 _4465 = _4555;_4465.x = dot(textureGather(light_ssao, _2866), _2651.weights);vec3 _4467 = _4465;_4467.y = dot(textureGather(light_ssao, _2866, 1), _2651.weights);vec3 _4469 = _4467;_4469.z = dot(textureGather(light_ssao, _2866, 2), _2651.weights);_4558 = _4469;_4558 = textureLod(light_ssao, vec3(_2651.uv, 1.0), 0.0).xyz;float _2942 = exp2((-3.3219280242919921875) * _2802);float _2931 = sqrt(1.0 - _2697);float _2932 = _2942;float _2933 = dot(normalize((_4558 * 2.0) - vec3(1.0)), _2466);_4560 = min(_2919, mix(1.0, sphericalCapsIntersection(_2931, _2932, _2933) / (1.0 - _2942), smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _2608)));_4560 = _2919;vec3 _2487 = ((((_2789 * textureLod(light_iblSpecular, mix(_2466, shading_normal, vec3(_2802)), (frameUniforms.fz * _2598) * (2.0 - _2598)).xyz) * (_2627 * 1.0)) * max(vec3(_4560), ((((((_2588 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _4560) + ((_2588 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _4560) + ((_2588 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _4560)) * frameUniforms.az) + (((((_2571 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _2789)) * 1.0) * max(vec3(_2697), ((((((_2571 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2697) + ((_2571 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2697) + ((_2571 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2697)) * frameUniforms.az);evaluateDirectionalLight(MaterialInputs(_4462, materialParams.c, materialParams.b, materialParams.d, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _4555, _4556, _4556, _4556, _4556, _4555), PixelParams(_2571, _2598, materialParams.c, _2588, _2608, _2642.xyz, _2627), _2487);uvec2 _3141 = uvec2((vec3(_2776, _2428.y, gl_FragCoord.z).xy * frameUniforms.i.xy) * vec2(frameUniforms.z, frameUniforms.v));uint _3123 = ((_3141.x * frameUniforms.r) + (_3141.y * frameUniforms.x.x)) + (uint(clamp((log2((frameUniforms.w.x * gl_FragCoord.z) + frameUniforms.w.y) * frameUniforms.w.z) + frameUniforms.w.w, 0.0, frameUniforms.w.w - 1.0)) * frameUniforms.x.y);uvec4 _3180 = texelFetch(light_froxels, ivec2(int(_3123 & 63u), int(_3123 >> 6u)), 0);uint _3183 = _3180.x;uint _3055 = _3183 + (_3180.y & 255u);uint _3058 = objectUniforms.e & 255u;vec3 _4569;vec4 _4575;_4575 = _4557;_4569 = _2487;vec4 _4496;vec3 _4588;for (uint _4568 = _3183; _4568 < _3055; _4575 = _4496, _4569 = _4588, _4568++)uvec4 _3325 = froxelRecordUniforms.a[_4568 >> 4u];uint _3341 = (_3325[(_4568 >> 2u) & 3u] >> ((_4568 & 3u) * 8u)) & 255u;vec2 _3227 = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_3341][2].x));vec3 _3252 = lightsUniforms.a[_3341][0].xyz - shading_position;vec4 _4490 = _4575;_4490.x = _3227.x;vec4 _4492 = _4490;_4492.y = _3227.y;vec4 _4494 = _4492;_4494.z = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_3341][2].y)).x;float _3347 = lightsUniforms.a[_3341][3].y * frameUniforms.bz;_4496 = _4494;_4496.w = _3347;vec3 _3267 = normalize(_3252);float _3356 = dot(_3252, _3252);float _3386 = _3356 * lightsUniforms.a[_3341][0].w;float _3391 = clamp(1.0 - (_3386 * _3386), 0.0, 1.0);vec3 _3362 = shading_position - frameUniforms.j;float _3379 = ((_3391 * _3391) * clamp(frameUniforms.n.x - (dot(_3362, _3362) * frameUniforms.n.y), 0.0, 1.0)) / max(_3356, 9.9999997473787516355514526367188e-05);float _3278 = clamp(dot(shading_normal, _3267), 0.0, 1.0);float _4582;if ((floatBitsToUint(lightsUniforms.a[_3341][3].z) & 1u) == 1u)float _3412 = clamp((dot(-lightsUniforms.a[_3341][1].xyz, _3267) * lightsUniforms.a[_3341][2].z) + lightsUniforms.a[_3341][2].w, 0.0, 1.0);_4582 = _3379 * (_3412 * _3412);_4582 = _3379;if ((floatBitsToUint(lightsUniforms.a[_3341][3].w) & _3058) == 0u)_4588 = _4569;bool _3076 = _3278 <= 0.0;bool _3083;if (!_3076)_3083 = _4582 <= 0.0;_3083 = _3076;if (_3083)vec3 _3436 = normalize(shading_view + _3267);float _3439 = clamp(_3278, 0.0, 1.0);float _3443 = clamp(dot(shading_normal, _3436), 0.0, 1.0);float _3531 = _3443 * _2608;float _3538 = _2608 / ((1.0 - (_3443 * _3443)) + (_3531 * _3531));float _3608 = 1.0 - clamp(dot(_3267, _3436), 0.0, 1.0);float _3617 = _3608 * _3608;_4588 = _4569 + ((((_2571 * 0.3183098733425140380859375) + (((_2588 + ((vec3(clamp(dot(_2588, vec3(16.5)), 0.0, 1.0)) - _2588) * ((_3617 * _3617) * _3608))) * (((_3538 * _3538) * 0.3183098733425140380859375) * (0.5 / ((_3439 * sqrt(((shading_NoV - (_2802 * shading_NoV)) * shading_NoV) + _2802)) + (shading_NoV * sqrt(((_3439 - (_2802 * _3439)) * _3439) + _2802)))))) * _2627)) * _4496.xyz) * ((_3347 * _4582) * _3439));fragColor = vec4(_4569, 1.0);vec3 _2395 = shading_position - frameUniforms.j;vec4 _4574;float _3676 = length(_2395);float _3679 = max(0.001000000047497451305389404296875, _2395.y);float _3689 = frameUniforms.qz * ((1.0 - exp((-frameUniforms.oz) * _3679)) / _3679);float _3705 = min(max(1.0 - exp2(-(_3689 * max(_3676 - frameUniforms.lz, 0.0))), 0.0), frameUniforms.mz);vec3 _4570;_4570 = frameUniforms.pz * (textureLod(light_iblSpecular, _2395, frameUniforms.fz).xyz * frameUniforms.az);_4570 = frameUniforms.pz;vec3 _3727 = _4570 * _3705;vec3 _4573;_4573 = _3727 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_2395, frameUniforms.q) / _3676, 0.0), frameUniforms.sz) * max(1.0 - exp2(-(_3689 * max(_3676 - frameUniforms.rz, 0.0))), 0.0)));_4573 = _3727;vec3 _3775 = (fragColor.xyz * (1.0 - _3705)) + _4573;vec4 _4500 = fragColor;_4500.x = _3775.x;vec4 _4502 = _4500;_4502.y = _3775.y;vec4 _4504 = _4502;_4504.z = _3775.z;_4574 = _4504;_4574 = fragColor;fragColor = _4574;vec3 _4969;float _4970;vec4 _4971;vec4 _4984;vec3 _4988;float _5017;vec3 _5018;vec3 _767;vec2 _1802 = cache.uv;vec4 _1814 = textureGather(light_ssao, vec3(cache.uv, 0.0), 1);vec4 _1822 = textureGather(light_ssao, vec3(cache.uv, 0.0), 2);vec4 _4880 = _4984;_4880.x = (_1814.x * 0.996108949184417724609375) + (_1822.x * 0.00389105058275163173675537109375);vec4 _4886 = _4880;_4886.y = (_1814.y * 0.996108949184417724609375) + (_1822.y * 0.00389105058275163173675537109375);vec4 _4892 = _4886;_4892.z = (_1814.z * 0.996108949184417724609375) + (_1822.z * 0.00389105058275163173675537109375);vec4 _4898 = _4892;_4898.w = (_1814.w * 0.996108949184417724609375) + (_1822.w * 0.00389105058275163173675537109375);vec2 _1869 = fract((cache.uv * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _1872 = _1869.x;float _1873 = 1.0 - _1872;float _1875 = _1869.y;vec4 _4902 = _4984;_4902.x = _1873 * _1875;vec4 _4906 = _4902;_4906.y = _1872 * _1875;float _1888 = 1.0 - _1875;vec4 _4910 = _4906;_4910.z = _1872 * _1888;vec4 _4914 = _4910;_4914.w = _1873 * _1888;vec4 _1921 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_4898 * (-frameUniforms.gz))) * frameUniforms.vz;vec4 _1931 = max(vec4(6.103515625e-05), vec4(1.0) - (_1921 * _1921)) * _4914;cache.weights = _1931 / vec4(((_1931.x + _1931.y) + _1931.z) + _1931.w);return dot(textureGather(light_ssao, vec3(_1802, 0.0)), cache.weights);float _3721 = (((-0.15658269822597503662109375) * cosCap1) + 1.57079601287841796875) * sqrt(1.0 - cosCap1);float _3732 = (((-0.15658269822597503662109375) * cosCap2) + 1.57079601287841796875) * sqrt(1.0 - cosCap2);float _3739 = abs(cosDistance);float _3747 = (((-0.15658269822597503662109375) * _3739) + 1.57079601287841796875) * sqrt(1.0 - _3739);float _4985;_4985 = _3747;_4985 = 3.1415927410125732421875 - _3747;float _2009;if (min(_3721, _3732) <= (max(_3721, _3732) - _4985))_2009 = _3721 + _3732;if (_2009 <= _4985)float _2019 = abs(_3721 - _3732);float _2032 = 1.0 - clamp((_4985 - _2019) / max(_2009 - _2019, 9.9999997473787516355514526367188e-05), 0.0, 1.0);return ((_2032 * _2032) * (((-2.0) * _2032) + 3.0)) * (1.0 - max(cosCap1, cosCap2));ivec2 _2320 = textureSize(light_iblSpecular, int(frameUniforms.fz));vec3 _2334 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _2341 = _2334 * (1.0 / float(_2320.x));vec3 _2345 = cross(_2334, n) * (1.0 / float(_2320.y));vec3 _2348 = n - _2341;vec3 _2353 = n + _2341;return (((textureLod(light_iblSpecular, _2348 - _2345, frameUniforms.fz).xyz + textureLod(light_iblSpecular, _2353 - _2345, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _2353 + _2345, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _2348 + _2345, frameUniforms.fz).xyz) * 0.25;float _4608 = clamp(dot(shading_normal, frameUniforms.q), 0.0, 1.0);vec3 _4618 = shading_position + (shading_normal * (sqrt(1.0 - (_4608 * _4608)) * frameUniforms.t));return (frameUniforms.g[cascade][0] * _4618.x) + ((frameUniforms.g[cascade][1] * _4618.y) + ((frameUniforms.g[cascade][2] * _4618.z) + frameUniforms.g[cascade][3]));float _3879 = clamp(dot(shading_normal, frameUniforms.q), 0.0, 1.0);if (_3879 <= 0.0)float _5008;if (_3879 > 0.0)bvec4 _3902 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z));uint _3912 = clamp(uint(dot(vec4(_3902.x ? vec4(1.0).x : vec4(0.0).x, _3902.y ? vec4(1.0).y : vec4(0.0).y, _3902.z ? vec4(1.0).z : vec4(0.0).z, _3902.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);float _4991;if (((frameUniforms.iz & 1u) != 0u) && ((frameUniforms.uz & ((1u << _3912) << 8u)) != 0u))uint _3936 = _3912;vec4 _3940 = getCascadeLightSpacePosition(_3936);vec3 _3966 = _3940.xyz * (1.0 / _3940.w);vec2 _3973 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);vec2 _3975 = vec2(1.0) / _3973;vec2 _3980 = clamp(_3966.xy, vec2(-1.0), vec2(2.0));vec3 _4928 = _5018;_4928.x = _3980.x;vec3 _4930 = _4928;_4930.y = _3980.y;vec2 _3990 = (_4930.xy * _3973) + vec2(0.5);vec2 _3996 = (floor(_3990) - vec2(0.5)) * _3975;vec2 _3998 = fract(_3990);float _4000 = _3998.x;float _4001 = 2.0 * _4000;float _4002 = 3.0 - _4001;float _4006 = 1.0 + _4001;float _4009 = _3998.y;float _4010 = 2.0 * _4009;float _4011 = 3.0 - _4010;float _4015 = 1.0 + _4010;vec2 _4048 = vec2(((2.0 - _4000) / _4002) - 1.0, (_4000 / _4006) + 1.0) * _3975.x;vec2 _4052 = vec2(((2.0 - _4009) / _4011) - 1.0, (_4009 / _4015) + 1.0) * _3975.y;float _4060 = _4048.x;float _4062 = _4052.x;float _4126 = float(_3912);float _4128 = clamp(_3966.z, 0.0, 1.0);float _4077 = _4048.y;float _4096 = _4052.y;_4991 = (((((_4002 * _4011) * texture(light_shadowMap, vec4(vec4(_3996 + vec2(_4060, _4062), _4126, _4128).xyz, _4128))) + ((_4006 * _4011) * texture(light_shadowMap, vec4(vec4(_3996 + vec2(_4077, _4062), _4126, _4128).xyz, _4128)))) + ((_4002 * _4015) * texture(light_shadowMap, vec4(vec4(_3996 + vec2(_4060, _4096), _4126, _4128).xyz, _4128)))) + ((_4006 * _4015) * texture(light_shadowMap, vec4(vec4(_3996 + vec2(_4077, _4096), _4126, _4128).xyz, _4128)))) * 0.0625;_4991 = 1.0;float _5000;if (((frameUniforms.iz & 2u) != 0u) && (_4991 > 0.0))float _5003;uint _4190 = (frameUniforms.iz >> 8u) & 255u;vec4 _4298 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _4305 = frameUniforms.e * vec4(shading_position + (frameUniforms.q * frameUniforms.kz), 1.0);vec4 _4311 = _4298 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));vec3 _4317 = _4298.xyz * (1.0 / _4298.w);vec3 _4324 = _4305.xyz * (1.0 / _4305.w);float _4351 = _4317.z;vec3 _4354 = vec3((_4317.xy * 0.5) + vec2(0.5), _4351);vec3 _4359 = vec3((_4324.xy * 0.5) + vec2(0.5), _4324.z) - _4354;float _4200 = 1.0 / float(_4190);float _4208 = abs((_4311.xyz * (1.0 / _4311.w)).z - _4351) * _4200;float _4220 = (_4200 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _4200;vec3 _4995;_4995 = _4988;vec3 _4233;vec3 _4994;float _4998;uint _4992 = 0u;float _4993 = _4220;if (_4992 < _4190)_4233 = _4354 + (_4359 * _4993);if (abs(_4208 - (textureLod(light_structure, _4233.xy, 0.0).x - _4233.z)) < _4208)_4998 = 1.0;_4994 = _4233;_4993 += _4200;_4992++;_4995 = _4233;_4998 = 0.0;_4994 = _4995;vec2 _4268 = max((abs(_4994.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_5003 = _4998 * clamp(1.0 - dot(_4268, _4268), 0.0, 1.0);_5003 = 0.0;_5000 = _5003;_5000 = 0.0;float _2656 = _4991 * (1.0 - _5000);if (_2656 <= 0.0)_5008 = _2656;_5008 = 1.0;vec3 _4392 = normalize(shading_view + frameUniforms.q);float _4395 = clamp(_3879, 0.0, 1.0);float _4399 = clamp(dot(shading_normal, _4392), 0.0, 1.0);float _4487 = _4399 * pixel.roughness;float _4494 = pixel.roughness / ((1.0 - (_4399 * _4399)) + (_4487 * _4487));float _4517 = pixel.roughness * pixel.roughness;float _4564 = 1.0 - clamp(dot(frameUniforms.q, _4392), 0.0, 1.0);float _4573 = _4564 * _4564;color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_4573 * _4573) * _4564))) * (((_4494 * _4494) * 0.3183098733425140380859375) * (0.5 / ((_4395 * sqrt(((shading_NoV - (_4517 * shading_NoV)) * shading_NoV) + _4517)) + (shading_NoV * sqrt(((_4395 - (_4517 * _4395)) * _4395) + _4517)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _4395) * _5008));vec3 _2914 = reflect(-shading_view, shading_normal);vec4 _4855 = vec4(1.0);_4855.x = materialParams.a.x;vec4 _4857 = _4855;_4857.y = materialParams.a.y;vec4 _4859 = _4857;_4859.z = materialParams.a.z;float _3013 = 1.0 - materialParams.b;vec3 _3014 = _4859.xyz * _3013;vec3 _3031 = (_4859.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _3013);float _3041 = clamp(materialParams.c, 0.04500000178813934326171875, 1.0);float _3051 = _3041 * _3041;vec4 _3085 = textureLod(light_iblDFG, vec2(shading_NoV, _3041), 0.0);vec3 _3070 = vec3(1.0) + (_3031 * ((1.0 / _3085.y) - 1.0));vec3 _3232 = mix(_3085.xxx, _3085.yyy, _3031);float _3245 = _3051 * _3051;SSAOInterpolationCache _3094 = SSAOInterpolationCache(_4971, vec3((vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5), _5017).xy);float _3136 = evaluateSSAO(_3094);float _3140 = min(1.0, _3136);float _3362 = clamp((pow(shading_NoV + _3140, exp2(((-16.0) * _3051) - 1.0)) - 1.0) + _3140, 0.0, 1.0);float _4974;vec3 _4972;vec3 _3309 = vec3(_3094.uv, 1.0);vec3 _4862 = _4969;_4862.x = dot(textureGather(light_ssao, _3309), _3094.weights);vec3 _4864 = _4862;_4864.y = dot(textureGather(light_ssao, _3309, 1), _3094.weights);vec3 _4866 = _4864;_4866.z = dot(textureGather(light_ssao, _3309, 2), _3094.weights);_4972 = _4866;_4972 = textureLod(light_ssao, vec3(_3094.uv, 1.0), 0.0).xyz;float _3385 = exp2((-3.3219280242919921875) * _3245);float _3374 = sqrt(1.0 - _3140);float _3375 = _3385;float _3376 = dot(normalize((_4972 * 2.0) - vec3(1.0)), _2914);_4974 = min(_3362, mix(1.0, sphericalCapsIntersection(_3374, _3375, _3376) / (1.0 - _3385), smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _3051)));_4974 = _3362;vec3 _2935 = ((((_3232 * textureLod(light_iblSpecular, mix(_2914, shading_normal, vec3(_3245)), (frameUniforms.fz * _3041) * (2.0 - _3041)).xyz) * (_3070 * 1.0)) * max(vec3(_4974), ((((((_3031 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _4974) + ((_3031 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _4974) + ((_3031 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _4974)) * frameUniforms.az) + (((((_3014 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _3232)) * 1.0) * max(vec3(_3140), ((((((_3014 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _3140) + ((_3014 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _3140) + ((_3014 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _3140)) * frameUniforms.az);evaluateDirectionalLight(MaterialInputs(_4859, materialParams.c, materialParams.b, materialParams.d, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _4969, _4970, _4970, _4970, _4970, _4969), PixelParams(_3014, _3041, materialParams.c, _3031, _3051, _3085.xyz, _3070), _2935);fragColor = vec4(_2935, 1.0);bvec4 _3498 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z));uint param = clamp(uint(dot(vec4(_3498.x ? vec4(1.0).x : vec4(0.0).x, _3498.y ? vec4(1.0).y : vec4(0.0).y, _3498.z ? vec4(1.0).z : vec4(0.0).z, _3498.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);vec4 _2813 = fragColor;vec3 _2815 = _2813.xyz * uintToColorDebug(param);fragColor.x = _2815.x;fragColor.y = _2815.y;fragColor.z = _2815.z;vec3 _2826 = shading_position - frameUniforms.j;vec4 _4983;float _3563 = length(_2826);float _3566 = max(0.001000000047497451305389404296875, _2826.y);float _3576 = frameUniforms.qz * ((1.0 - exp((-frameUniforms.oz) * _3566)) / _3566);float _3592 = min(max(1.0 - exp2(-(_3576 * max(_3563 - frameUniforms.lz, 0.0))), 0.0), frameUniforms.mz);vec3 _4979;_4979 = frameUniforms.pz * (textureLod(light_iblSpecular, _2826, frameUniforms.fz).xyz * frameUniforms.az);_4979 = frameUniforms.pz;vec3 _3614 = _4979 * _3592;vec3 _4982;_4982 = _3614 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_2826, frameUniforms.q) / _3563, 0.0), frameUniforms.sz) * max(1.0 - exp2(-(_3576 * max(_3563 - frameUniforms.rz, 0.0))), 0.0)));_4982 = _3614;vec3 _3662 = (fragColor.xyz * (1.0 - _3592)) + _4982;vec4 _4870 = fragColor;_4870.x = _3662.x;vec4 _4872 = _4870;_4872.y = _3662.y;vec4 _4874 = _4872;_4874.z = _3662.z;_4983 = _4874;_4983 = fragColor;fragColor = _4983;vec3 _5601;vec4 _5603;vec4 _5695;float _5704;vec3 _5705;vec2 _1797 = cache.uv;vec4 _1809 = textureGather(light_ssao, vec3(cache.uv, 0.0), 1);vec4 _1817 = textureGather(light_ssao, vec3(cache.uv, 0.0), 2);vec4 _5556 = _5695;_5556.x = (_1809.x * 0.996108949184417724609375) + (_1817.x * 0.00389105058275163173675537109375);vec4 _5562 = _5556;_5562.y = (_1809.y * 0.996108949184417724609375) + (_1817.y * 0.00389105058275163173675537109375);vec4 _5568 = _5562;_5568.z = (_1809.z * 0.996108949184417724609375) + (_1817.z * 0.00389105058275163173675537109375);vec4 _5574 = _5568;_5574.w = (_1809.w * 0.996108949184417724609375) + (_1817.w * 0.00389105058275163173675537109375);vec2 _1864 = fract((cache.uv * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _1867 = _1864.x;float _1868 = 1.0 - _1867;float _1870 = _1864.y;vec4 _5578 = _5695;_5578.x = _1868 * _1870;vec4 _5582 = _5578;_5582.y = _1867 * _1870;float _1883 = 1.0 - _1870;vec4 _5586 = _5582;_5586.z = _1867 * _1883;vec4 _5590 = _5586;_5590.w = _1868 * _1883;vec4 _1916 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_5574 * (-frameUniforms.gz))) * frameUniforms.vz;vec4 _1926 = max(vec4(6.103515625e-05), vec4(1.0) - (_1916 * _1916)) * _5590;cache.weights = _1926 / vec4(((_1926.x + _1926.y) + _1926.z) + _1926.w);return dot(textureGather(light_ssao, vec3(_1797, 0.0)), cache.weights);float _5100 = (((-0.15658269822597503662109375) * cosCap1) + 1.57079601287841796875) * sqrt(1.0 - cosCap1);float _5111 = (((-0.15658269822597503662109375) * cosCap2) + 1.57079601287841796875) * sqrt(1.0 - cosCap2);float _5118 = abs(cosDistance);float _5126 = (((-0.15658269822597503662109375) * _5118) + 1.57079601287841796875) * sqrt(1.0 - _5118);float _5696;_5696 = _5126;_5696 = 3.1415927410125732421875 - _5126;float _2004;if (min(_5100, _5111) <= (max(_5100, _5111) - _5696))_2004 = _5100 + _5111;if (_2004 <= _5696)float _2014 = abs(_5100 - _5111);float _2027 = 1.0 - clamp((_5696 - _2014) / max(_2004 - _2014, 9.9999997473787516355514526367188e-05), 0.0, 1.0);return ((_2027 * _2027) * (((-2.0) * _2027) + 3.0)) * (1.0 - max(cosCap1, cosCap2));ivec2 _2315 = textureSize(light_iblSpecular, int(frameUniforms.fz));vec3 _2330 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _2337 = _2330 * (1.0 / float(_2315.x));vec3 _2341 = cross(_2330, n) * (1.0 / float(_2315.y));vec3 _2344 = n - _2337;vec3 _2349 = n + _2337;return (((textureLod(light_iblSpecular, _2344 - _2341, frameUniforms.fz).xyz + textureLod(light_iblSpecular, _2349 - _2341, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _2349 + _2341, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _2344 + _2341, frameUniforms.fz).xyz) * 0.25;vec3 _3132 = normalize(vertex_worldNormal);vec3 _3139 = normalize(frameUniforms.j - shading_position);vec2 _3147 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);float _3192 = max(dot(_3132, _3139), 9.9999997473787516355514526367188e-05);vec3 _3185 = reflect(-_3139, _3132);vec4 _5461 = vec4(1.0);_5461.x = materialParams.a.x;vec4 _5463 = _5461;_5463.y = materialParams.a.y;vec4 _5465 = _5463;_5465.z = materialParams.a.z;float _3284 = 1.0 - materialParams.b;vec3 _3285 = _5465.xyz * _3284;vec3 _3302 = (_5465.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _3284);float _3312 = clamp(materialParams.c, 0.04500000178813934326171875, 1.0);float _3322 = _3312 * _3312;vec4 _3356 = textureLod(light_iblDFG, vec2(_3192, _3312), 0.0);vec3 _3341 = vec3(1.0) + (_3302 * ((1.0 / _3356.y) - 1.0));float _3490 = _3147.x;vec3 _3503 = mix(_3356.xxx, _3356.yyy, _3302);float _3516 = _3322 * _3322;SSAOInterpolationCache _3365 = SSAOInterpolationCache(_5603, vec3(_3490, _3147.y, _5704).xy);float _3407 = evaluateSSAO(_3365);float _3411 = min(1.0, _3407);float _3633 = clamp((pow(_3192 + _3411, exp2(((-16.0) * _3322) - 1.0)) - 1.0) + _3411, 0.0, 1.0);float _5606;vec3 _5604;vec3 _3580 = vec3(_3365.uv, 1.0);vec3 _5468 = _5601;_5468.x = dot(textureGather(light_ssao, _3580), _3365.weights);vec3 _5470 = _5468;_5470.y = dot(textureGather(light_ssao, _3580, 1), _3365.weights);vec3 _5472 = _5470;_5472.z = dot(textureGather(light_ssao, _3580, 2), _3365.weights);_5604 = _5472;_5604 = textureLod(light_ssao, vec3(_3365.uv, 1.0), 0.0).xyz;float _3656 = exp2((-3.3219280242919921875) * _3516);float _3645 = sqrt(1.0 - _3411);float _3646 = _3656;float _3647 = dot(normalize((_5604 * 2.0) - vec3(1.0)), _3185);_5606 = min(_3633, mix(1.0, sphericalCapsIntersection(_3645, _3646, _3647) / (1.0 - _3656), smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _3322)));_5606 = _3633;uvec2 _3893 = uvec2((vec3(_3490, _3147.y, gl_FragCoord.z).xy * frameUniforms.i.xy) * vec2(frameUniforms.z, frameUniforms.v));uint _3875 = ((_3893.x * frameUniforms.r) + (_3893.y * frameUniforms.x.x)) + (uint(clamp((log2((frameUniforms.w.x * gl_FragCoord.z) + frameUniforms.w.y) * frameUniforms.w.z) + frameUniforms.w.w, 0.0, frameUniforms.w.w - 1.0)) * frameUniforms.x.y);uvec4 _3932 = texelFetch(light_froxels, ivec2(int(_3875 & 63u), int(_3875 >> 6u)), 0);uint _3935 = _3932.x;uint _3770 = _3935 + (_3932.y & 255u);uint _3773 = objectUniforms.e & 255u;vec3 _5615;vec4 _5621;vec3 _5643;_5643 = _5601;_5621 = _5603;_5615 = ((((_3503 * textureLod(light_iblSpecular, mix(_3185, _3132, vec3(_3516)), (frameUniforms.fz * _3312) * (2.0 - _3312)).xyz) * (_3341 * 1.0)) * max(vec3(_5606), ((((((_3302 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _5606) + ((_3302 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _5606) + ((_3302 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _5606)) * frameUniforms.az) + (((((_3285 * diffuseIrradiance(_3132)) * (vec3(1.0) - _3503)) * 1.0) * max(vec3(_3411), ((((((_3285 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _3411) + ((_3285 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _3411) + ((_3285 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _3411)) * frameUniforms.az);vec4 _5499;vec3 _5673;vec3 _5691;for (uint _5614 = _3935; _5614 < _3770; _5643 = _5691, _5621 = _5499, _5615 = _5673, _5614++)uvec4 _4077 = froxelRecordUniforms.a[_5614 >> 4u];uint _4093 = (_4077[(_5614 >> 2u) & 3u] >> ((_5614 & 3u) * 8u)) & 255u;vec2 _3979 = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_4093][2].x));uint _3996 = floatBitsToUint(lightsUniforms.a[_4093][3].z);uint _3999 = floatBitsToUint(lightsUniforms.a[_4093][3].w);vec3 _4004 = lightsUniforms.a[_4093][0].xyz - shading_position;vec4 _5493 = _5621;_5493.x = _3979.x;vec4 _5495 = _5493;_5495.y = _3979.y;vec4 _5497 = _5495;_5497.z = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_4093][2].y)).x;float _4099 = lightsUniforms.a[_4093][3].y * frameUniforms.bz;_5499 = _5497;_5499.w = _4099;vec3 _4019 = normalize(_4004);float _4108 = dot(_4004, _4004);float _4138 = _4108 * lightsUniforms.a[_4093][0].w;float _4143 = clamp(1.0 - (_4138 * _4138), 0.0, 1.0);vec3 _4114 = shading_position - frameUniforms.j;float _4131 = ((_4143 * _4143) * clamp(frameUniforms.n.x - (dot(_4114, _4114) * frameUniforms.n.y), 0.0, 1.0)) / max(_4108, 9.9999997473787516355514526367188e-05);float _4030 = clamp(dot(_3132, _4019), 0.0, 1.0);uint _5624;uint _5625;bool _5626;bool _5627;float _5628;if ((_3996 & 1u) == 1u)float _4164 = clamp((dot(-lightsUniforms.a[_4093][1].xyz, _4019) * lightsUniforms.a[_4093][2].z) + lightsUniforms.a[_4093][2].w, 0.0, 1.0);_5628 = _4131 * (_4164 * _4164);_5627 = (_3999 & 65536u) != 0u;_5626 = (_3996 & 16u) != 0u;_5625 = (_3996 >> 8u) & 255u;_5624 = (_3996 >> 16u) & 255u;_5628 = _4131;_5627 = false;_5626 = false;_5625 = 0u;_5624 = 0u;if ((_3999 & _3773) == 0u)_5691 = _5643;_5673 = _5615;bool _3791 = _4030 <= 0.0;bool _3798;if (!_3791)_3798 = _5628 <= 0.0;_3798 = _3791;if (_3798)float _5653;vec3 _5694;if (_4030 > 0.0)float _5635;if (_5627)float _4226 = clamp(dot(_3132, shadowUniforms.a[_5625].direction), 0.0, 1.0);vec3 _4236 = shading_position + (_3132 * (sqrt(1.0 - (_4226 * _4226)) * (shadowUniforms.a[_5625].normalBias * dot(shadowUniforms.a[_5625].lightFromWorldZ, vec4(shading_position, 1.0)))));vec4 _4253 = (shadowUniforms.a[_5625].lightFromWorldMatrix[0] * _4236.x) + ((shadowUniforms.a[_5625].lightFromWorldMatrix[1] * _4236.y) + ((shadowUniforms.a[_5625].lightFromWorldMatrix[2] * _4236.z) + shadowUniforms.a[_5625].lightFromWorldMatrix[3]));vec3 _4276 = _4253.xyz * (1.0 / _4253.w);vec2 _4283 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);vec2 _4285 = vec2(1.0) / _4283;vec2 _4290 = clamp(_4276.xy, vec2(-1.0), vec2(2.0));vec3 _5503 = _5705;_5503.x = _4290.x;vec3 _5505 = _5503;_5505.y = _4290.y;vec2 _4300 = (_5505.xy * _4283) + vec2(0.5);vec2 _4306 = (floor(_4300) - vec2(0.5)) * _4285;vec2 _4308 = fract(_4300);float _4310 = _4308.x;float _4311 = 2.0 * _4310;float _4312 = 3.0 - _4311;float _4316 = 1.0 + _4311;float _4319 = _4308.y;float _4320 = 2.0 * _4319;float _4321 = 3.0 - _4320;float _4325 = 1.0 + _4320;vec2 _4358 = vec2(((2.0 - _4310) / _4312) - 1.0, (_4310 / _4316) + 1.0) * _4285.x;vec2 _4362 = vec2(((2.0 - _4319) / _4321) - 1.0, (_4319 / _4325) + 1.0) * _4285.y;float _4370 = _4358.x;float _4372 = _4362.x;float _4436 = float(_5624);float _4438 = clamp(_4276.z, 0.0, 1.0);float _4387 = _4358.y;float _4406 = _4362.y;_5635 = (((((_4312 * _4321) * texture(light_shadowMap, vec4(vec4(_4306 + vec2(_4370, _4372), _4436, _4438).xyz, _4438))) + ((_4316 * _4321) * texture(light_shadowMap, vec4(vec4(_4306 + vec2(_4387, _4372), _4436, _4438).xyz, _4438)))) + ((_4312 * _4325) * texture(light_shadowMap, vec4(vec4(_4306 + vec2(_4370, _4406), _4436, _4438).xyz, _4438)))) + ((_4316 * _4325) * texture(light_shadowMap, vec4(vec4(_4306 + vec2(_4387, _4406), _4436, _4438).xyz, _4438)))) * 0.0625;_5635 = 1.0;float _5651;vec3 _5692;if (_5626 && (_5635 > 0.0))float _5652;vec3 _5693;uint _4500 = (frameUniforms.iz >> 8u) & 255u;vec4 _4608 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _4615 = frameUniforms.e * vec4(shading_position + (_4019 * frameUniforms.kz), 1.0);vec4 _4621 = _4608 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));vec3 _4627 = _4608.xyz * (1.0 / _4608.w);vec3 _4634 = _4615.xyz * (1.0 / _4615.w);float _4661 = _4627.z;vec3 _4664 = vec3((_4627.xy * 0.5) + vec2(0.5), _4661);vec3 _4669 = vec3((_4634.xy * 0.5) + vec2(0.5), _4634.z) - _4664;float _4510 = 1.0 / float(_4500);float _4518 = abs((_4621.xyz * (1.0 / _4621.w)).z - _4661) * _4510;float _4530 = (_4510 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _4510;vec3 _5639;_5639 = _5643;vec3 _4543;vec3 _5638;float _5647;uint _5636 = 0u;float _5637 = _4530;if (_5636 < _4500)_4543 = _4664 + (_4669 * _5637);if (abs(_4518 - (textureLod(light_structure, _4543.xy, 0.0).x - _4543.z)) < _4518)_5647 = 1.0;_5638 = _4543;_5637 += _4510;_5636++;_5639 = _4543;_5647 = 0.0;_5638 = _5639;vec2 _4578 = max((abs(_5638.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_5693 = _5638;_5652 = _5635 * (1.0 - (_5647 * clamp(1.0 - dot(_4578, _4578), 0.0, 1.0)));_5693 = _5643;_5652 = _5635;_5692 = _5693;_5651 = _5652;_5692 = _5643;_5651 = _5635;if (_5651 <= 0.0)_5691 = _5692;_5694 = _5692;_5653 = _5651;_5694 = _5643;_5653 = 1.0;vec3 _4702 = normalize(_3139 + _4019);float _4705 = clamp(_4030, 0.0, 1.0);float _4709 = clamp(dot(_3132, _4702), 0.0, 1.0);float _4797 = _4709 * _3322;float _4804 = _3322 / ((1.0 - (_4709 * _4709)) + (_4797 * _4797));float _4874 = 1.0 - clamp(dot(_4019, _4702), 0.0, 1.0);float _4883 = _4874 * _4874;_5691 = _5694;_5673 = _5615 + ((((_3285 * 0.3183098733425140380859375) + (((_3302 + ((vec3(clamp(dot(_3302, vec3(16.5)), 0.0, 1.0)) - _3302) * ((_4883 * _4883) * _4874))) * (((_4804 * _4804) * 0.3183098733425140380859375) * (0.5 / ((_4705 * sqrt(((_3192 - (_3516 * _3192)) * _3192) + _3516)) + (_3192 * sqrt(((_4705 - (_3516 * _4705)) * _4705) + _3516)))))) * _3341)) * _5499.xyz) * (((_4099 * _5628) * _4705) * _5653));fragColor = vec4(_5615, 1.0);vec3 _3118 = shading_position - frameUniforms.j;vec4 _5620;float _4942 = length(_3118);float _4945 = max(0.001000000047497451305389404296875, _3118.y);float _4955 = frameUniforms.qz * ((1.0 - exp((-frameUniforms.oz) * _4945)) / _4945);float _4971 = min(max(1.0 - exp2(-(_4955 * max(_4942 - frameUniforms.lz, 0.0))), 0.0), frameUniforms.mz);vec3 _5616;_5616 = frameUniforms.pz * (textureLod(light_iblSpecular, _3118, frameUniforms.fz).xyz * frameUniforms.az);_5616 = frameUniforms.pz;vec3 _4993 = _5616 * _4971;vec3 _5619;_5619 = _4993 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_3118, frameUniforms.q) / _4942, 0.0), frameUniforms.sz) * max(1.0 - exp2(-(_4955 * max(_4942 - frameUniforms.rz, 0.0))), 0.0)));_5619 = _4993;vec3 _5041 = (fragColor.xyz * (1.0 - _4971)) + _5619;vec4 _5546 = fragColor;_5546.x = _5041.x;vec4 _5548 = _5546;_5548.y = _5041.y;vec4 _5550 = _5548;_5550.z = _5041.z;_5620 = _5550;_5620 = fragColor;fragColor = _5620;vec3 _6878;float _6879;vec4 _6880;vec4 _6960;vec3 _6964;vec3 _6992;vec3 _830;vec2 _1916 = cache.uv;vec4 _1928 = textureGather(light_ssao, vec3(cache.uv, 0.0), 1);vec4 _1936 = textureGather(light_ssao, vec3(cache.uv, 0.0), 2);vec4 _6789 = _6960;_6789.x = (_1928.x * 0.996108949184417724609375) + (_1936.x * 0.00389105058275163173675537109375);vec4 _6795 = _6789;_6795.y = (_1928.y * 0.996108949184417724609375) + (_1936.y * 0.00389105058275163173675537109375);vec4 _6801 = _6795;_6801.z = (_1928.z * 0.996108949184417724609375) + (_1936.z * 0.00389105058275163173675537109375);vec4 _6807 = _6801;_6807.w = (_1928.w * 0.996108949184417724609375) + (_1936.w * 0.00389105058275163173675537109375);vec2 _1983 = fract((cache.uv * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _1986 = _1983.x;float _1987 = 1.0 - _1986;float _1989 = _1983.y;vec4 _6811 = _6960;_6811.x = _1987 * _1989;vec4 _6815 = _6811;_6815.y = _1986 * _1989;float _2002 = 1.0 - _1989;vec4 _6819 = _6815;_6819.z = _1986 * _2002;vec4 _6823 = _6819;_6823.w = _1987 * _2002;vec4 _2035 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_6807 * (-frameUniforms.gz))) * frameUniforms.vz;vec4 _2045 = max(vec4(6.103515625e-05), vec4(1.0) - (_2035 * _2035)) * _6823;cache.weights = _2045 / vec4(((_2045.x + _2045.y) + _2045.z) + _2045.w);return dot(textureGather(light_ssao, vec3(_1916, 0.0)), cache.weights);float _5408 = (((-0.15658269822597503662109375) * cosCap1) + 1.57079601287841796875) * sqrt(1.0 - cosCap1);float _5419 = (((-0.15658269822597503662109375) * cosCap2) + 1.57079601287841796875) * sqrt(1.0 - cosCap2);float _5426 = abs(cosDistance);float _5434 = (((-0.15658269822597503662109375) * _5426) + 1.57079601287841796875) * sqrt(1.0 - _5426);float _6961;_6961 = _5434;_6961 = 3.1415927410125732421875 - _5434;float _2123;if (min(_5408, _5419) <= (max(_5408, _5419) - _6961))_2123 = _5408 + _5419;if (_2123 <= _6961)float _2133 = abs(_5408 - _5419);float _2146 = 1.0 - clamp((_6961 - _2133) / max(_2123 - _2133, 9.9999997473787516355514526367188e-05), 0.0, 1.0);return ((_2146 * _2146) * (((-2.0) * _2146) + 3.0)) * (1.0 - max(cosCap1, cosCap2));ivec2 _2433 = textureSize(light_iblSpecular, int(frameUniforms.fz));vec3 _2447 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _2454 = _2447 * (1.0 / float(_2433.x));vec3 _2458 = cross(_2447, n) * (1.0 / float(_2433.y));vec3 _2461 = n - _2454;vec3 _2466 = n + _2454;return (((textureLod(light_iblSpecular, _2461 - _2458, frameUniforms.fz).xyz + textureLod(light_iblSpecular, _2466 - _2458, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _2466 + _2458, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _2461 + _2458, frameUniforms.fz).xyz) * 0.25;float _6374 = clamp(dot(shading_normal, frameUniforms.q), 0.0, 1.0);vec3 _6384 = shading_position + (shading_normal * (sqrt(1.0 - (_6374 * _6374)) * frameUniforms.t));return (frameUniforms.g[cascade][0] * _6384.x) + ((frameUniforms.g[cascade][1] * _6384.y) + ((frameUniforms.g[cascade][2] * _6384.z) + frameUniforms.g[cascade][3]));float _5566 = clamp(dot(shading_normal, frameUniforms.q), 0.0, 1.0);if (_5566 <= 0.0)float _6983;if (_5566 > 0.0)bvec4 _5589 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z));uint _5599 = clamp(uint(dot(vec4(_5589.x ? vec4(1.0).x : vec4(0.0).x, _5589.y ? vec4(1.0).y : vec4(0.0).y, _5589.z ? vec4(1.0).z : vec4(0.0).z, _5589.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);float _6966;if (((frameUniforms.iz & 1u) != 0u) && ((frameUniforms.uz & ((1u << _5599) << 8u)) != 0u))uint _5623 = _5599;vec4 _5641 = getCascadeLightSpacePosition(_5623);vec3 _5732 = _5641.xyz * (1.0 / _5641.w);vec2 _5739 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);vec2 _5741 = vec2(1.0) / _5739;vec2 _5746 = clamp(_5732.xy, vec2(-1.0), vec2(2.0));vec3 _6837 = _6992;_6837.x = _5746.x;vec3 _6839 = _6837;_6839.y = _5746.y;vec2 _5756 = (_6839.xy * _5739) + vec2(0.5);vec2 _5762 = (floor(_5756) - vec2(0.5)) * _5741;vec2 _5764 = fract(_5756);float _5766 = _5764.x;float _5767 = 2.0 * _5766;float _5768 = 3.0 - _5767;float _5772 = 1.0 + _5767;float _5775 = _5764.y;float _5776 = 2.0 * _5775;float _5777 = 3.0 - _5776;float _5781 = 1.0 + _5776;vec2 _5814 = vec2(((2.0 - _5766) / _5768) - 1.0, (_5766 / _5772) + 1.0) * _5741.x;vec2 _5818 = vec2(((2.0 - _5775) / _5777) - 1.0, (_5775 / _5781) + 1.0) * _5741.y;float _5826 = _5814.x;float _5828 = _5818.x;float _5892 = float(_5599);float _5894 = clamp(_5732.z, 0.0, 1.0);float _5843 = _5814.y;float _5862 = _5818.y;_6966 = (((((_5768 * _5777) * texture(light_shadowMap, vec4(vec4(_5762 + vec2(_5826, _5828), _5892, _5894).xyz, _5894))) + ((_5772 * _5777) * texture(light_shadowMap, vec4(vec4(_5762 + vec2(_5843, _5828), _5892, _5894).xyz, _5894)))) + ((_5768 * _5781) * texture(light_shadowMap, vec4(vec4(_5762 + vec2(_5826, _5862), _5892, _5894).xyz, _5894)))) + ((_5772 * _5781) * texture(light_shadowMap, vec4(vec4(_5762 + vec2(_5843, _5862), _5892, _5894).xyz, _5894)))) * 0.0625;_6966 = 1.0;float _6975;if (((frameUniforms.iz & 2u) != 0u) && (_6966 > 0.0))float _6978;uint _5956 = (frameUniforms.iz >> 8u) & 255u;vec4 _6064 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _6071 = frameUniforms.e * vec4(shading_position + (frameUniforms.q * frameUniforms.kz), 1.0);vec4 _6077 = _6064 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));vec3 _6083 = _6064.xyz * (1.0 / _6064.w);vec3 _6090 = _6071.xyz * (1.0 / _6071.w);float _6117 = _6083.z;vec3 _6120 = vec3((_6083.xy * 0.5) + vec2(0.5), _6117);vec3 _6125 = vec3((_6090.xy * 0.5) + vec2(0.5), _6090.z) - _6120;float _5966 = 1.0 / float(_5956);float _5974 = abs((_6077.xyz * (1.0 / _6077.w)).z - _6117) * _5966;float _5986 = (_5966 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _5966;vec3 _6970;_6970 = _6964;vec3 _5999;vec3 _6969;float _6973;uint _6967 = 0u;float _6968 = _5986;if (_6967 < _5956)_5999 = _6120 + (_6125 * _6968);if (abs(_5974 - (textureLod(light_structure, _5999.xy, 0.0).x - _5999.z)) < _5974)_6973 = 1.0;_6969 = _5999;_6968 += _5966;_6967++;_6970 = _5999;_6973 = 0.0;_6969 = _6970;vec2 _6034 = max((abs(_6969.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_6978 = _6973 * clamp(1.0 - dot(_6034, _6034), 0.0, 1.0);_6978 = 0.0;_6975 = _6978;_6975 = 0.0;float _2769 = _6966 * (1.0 - _6975);if (_2769 <= 0.0)_6983 = _2769;_6983 = 1.0;vec3 _6158 = normalize(shading_view + frameUniforms.q);float _6161 = clamp(_5566, 0.0, 1.0);float _6165 = clamp(dot(shading_normal, _6158), 0.0, 1.0);float _6253 = _6165 * pixel.roughness;float _6260 = pixel.roughness / ((1.0 - (_6165 * _6165)) + (_6253 * _6253));float _6283 = pixel.roughness * pixel.roughness;float _6330 = 1.0 - clamp(dot(frameUniforms.q, _6158), 0.0, 1.0);float _6339 = _6330 * _6330;color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_6339 * _6339) * _6330))) * (((_6260 * _6260) * 0.3183098733425140380859375) * (0.5 / ((_6161 * sqrt(((shading_NoV - (_6283 * shading_NoV)) * shading_NoV) + _6283)) + (shading_NoV * sqrt(((_6161 - (_6283 * _6161)) * _6161) + _6283)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _6161) * _6983));vec2 _3401 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);vec3 _3439 = reflect(-shading_view, shading_normal);vec4 _6693 = vec4(1.0);_6693.x = materialParams.a.x;vec4 _6695 = _6693;_6695.y = materialParams.a.y;vec4 _6697 = _6695;_6697.z = materialParams.a.z;vec3 _3544 = _6697.xyz * _3543;vec3 _3561 = (_6697.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _3543);float _3571 = clamp(materialParams.c, 0.04500000178813934326171875, 1.0);vec4 _3615 = textureLod(light_iblDFG, vec2(shading_NoV, _3571), 0.0);float _3749 = _3401.x;SSAOInterpolationCache _3624 = SSAOInterpolationCache(_6880, vec3(_3749, _3401.y, _6991).xy);float _3666 = evaluateSSAO(_3624);float _3670 = min(1.0, _3666);float _3892 = clamp((pow(shading_NoV + _3670, exp2(((-16.0) * _3581) - 1.0)) - 1.0) + _3670, 0.0, 1.0);float _6883;vec3 _6881;vec3 _3839 = vec3(_3624.uv, 1.0);vec3 _6700 = _6878;_6700.x = dot(textureGather(light_ssao, _3839), _3624.weights);vec3 _6702 = _6700;_6702.y = dot(textureGather(light_ssao, _3839, 1), _3624.weights);vec3 _6704 = _6702;_6704.z = dot(textureGather(light_ssao, _3839, 2), _3624.weights);_6881 = _6704;_6881 = textureLod(light_ssao, vec3(_3624.uv, 1.0), 0.0).xyz;float _3915 = exp2((-3.3219280242919921875) * _3775);float _3904 = sqrt(1.0 - _3670);float _3905 = _3915;float _3906 = dot(normalize((_6881 * 2.0) - vec3(1.0)), _3439);_6883 = min(_3892, mix(1.0, sphericalCapsIntersection(_3904, _3905, _3906) / (1.0 - _3915), smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _3581)));_6883 = _3892;vec3 _3460 = ((((_3762 * textureLod(light_iblSpecular, mix(_3439, shading_normal, vec3(_3775)), (frameUniforms.fz * _3571) * (2.0 - _3571)).xyz) * (_3600 * 1.0)) * max(vec3(_6883), ((((((_3561 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _6883) + ((_3561 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _6883) + ((_3561 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _6883)) * frameUniforms.az) + (((((_3544 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _3762)) * 1.0) * max(vec3(_3670), ((((((_3544 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _3670) + ((_3544 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _3670) + ((_3544 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _3670)) * frameUniforms.az);evaluateDirectionalLight(MaterialInputs(_6697, materialParams.c, materialParams.b, materialParams.d, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _6878, _6879, _6879, _6879, _6879, _6878), PixelParams(_3544, _3571, materialParams.c, _3561, _3581, _3615.xyz, _3600), _3460);uvec2 _4152 = uvec2((vec3(_3749, _3401.y, gl_FragCoord.z).xy * frameUniforms.i.xy) * vec2(frameUniforms.z, frameUniforms.v));uint _4134 = ((_4152.x * frameUniforms.r) + (_4152.y * frameUniforms.x.x)) + (uint(clamp((log2((frameUniforms.w.x * gl_FragCoord.z) + frameUniforms.w.y) * frameUniforms.w.z) + frameUniforms.w.w, 0.0, frameUniforms.w.w - 1.0)) * frameUniforms.x.y);uvec4 _4191 = texelFetch(light_froxels, ivec2(int(_4134 & 63u), int(_4134 >> 6u)), 0);uint _4194 = _4191.x;uint _4029 = _4194 + (_4191.y & 255u);uint _4032 = objectUniforms.e & 255u;vec3 _6892;vec4 _6898;vec3 _6915;_6915 = _6878;_6898 = _6880;_6892 = _3460;vec4 _6731;vec3 _6945;vec3 _6956;for (uint _6891 = _4194; _6891 < _4029; _6915 = _6956, _6898 = _6731, _6892 = _6945, _6891++)uvec4 _4336 = froxelRecordUniforms.a[_6891 >> 4u];uint _4352 = (_4336[(_6891 >> 2u) & 3u] >> ((_6891 & 3u) * 8u)) & 255u;vec2 _4238 = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_4352][2].x));uint _4255 = floatBitsToUint(lightsUniforms.a[_4352][3].z);uint _4258 = floatBitsToUint(lightsUniforms.a[_4352][3].w);vec3 _4263 = lightsUniforms.a[_4352][0].xyz - shading_position;vec4 _6725 = _6898;_6725.x = _4238.x;vec4 _6727 = _6725;_6727.y = _4238.y;vec4 _6729 = _6727;_6729.z = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_4352][2].y)).x;float _4358 = lightsUniforms.a[_4352][3].y * frameUniforms.bz;_6731 = _6729;_6731.w = _4358;vec3 _4278 = normalize(_4263);float _4367 = dot(_4263, _4263);float _4397 = _4367 * lightsUniforms.a[_4352][0].w;float _4402 = clamp(1.0 - (_4397 * _4397), 0.0, 1.0);vec3 _4373 = shading_position - frameUniforms.j;float _4390 = ((_4402 * _4402) * clamp(frameUniforms.n.x - (dot(_4373, _4373) * frameUniforms.n.y), 0.0, 1.0)) / max(_4367, 9.9999997473787516355514526367188e-05);float _4289 = clamp(dot(shading_normal, _4278), 0.0, 1.0);uint _6901;uint _6902;bool _6903;bool _6904;float _6905;if ((_4255 & 1u) == 1u)float _4423 = clamp((dot(-lightsUniforms.a[_4352][1].xyz, _4278) * lightsUniforms.a[_4352][2].z) + lightsUniforms.a[_4352][2].w, 0.0, 1.0);_6905 = _4390 * (_4423 * _4423);_6904 = (_4258 & 65536u) != 0u;_6903 = (_4255 & 16u) != 0u;_6902 = (_4255 >> 8u) & 255u;_6901 = (_4255 >> 16u) & 255u;_6905 = _4390;_6904 = false;_6903 = false;_6902 = 0u;_6901 = 0u;if ((_4258 & _4032) == 0u)_6956 = _6915;_6945 = _6892;bool _4050 = _4289 <= 0.0;bool _4057;if (!_4050)_4057 = _6905 <= 0.0;_4057 = _4050;if (_4057)float _6925;vec3 _6959;if (_4289 > 0.0)float _6907;if (_6904)float _4487 = clamp(dot(shading_normal, shadowUniforms.a[_6902].direction), 0.0, 1.0);vec3 _4497 = shading_position + (shading_normal * (sqrt(1.0 - (_4487 * _4487)) * (shadowUniforms.a[_6902].normalBias * dot(shadowUniforms.a[_6902].lightFromWorldZ, vec4(shading_position, 1.0)))));vec4 _4514 = (shadowUniforms.a[_6902].lightFromWorldMatrix[0] * _4497.x) + ((shadowUniforms.a[_6902].lightFromWorldMatrix[1] * _4497.y) + ((shadowUniforms.a[_6902].lightFromWorldMatrix[2] * _4497.z) + shadowUniforms.a[_6902].lightFromWorldMatrix[3]));vec3 _4537 = _4514.xyz * (1.0 / _4514.w);vec2 _4544 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);vec2 _4546 = vec2(1.0) / _4544;vec2 _4551 = clamp(_4537.xy, vec2(-1.0), vec2(2.0));vec3 _6735 = _6992;_6735.x = _4551.x;vec3 _6737 = _6735;_6737.y = _4551.y;vec2 _4561 = (_6737.xy * _4544) + vec2(0.5);vec2 _4567 = (floor(_4561) - vec2(0.5)) * _4546;vec2 _4569 = fract(_4561);float _4571 = _4569.x;float _4572 = 2.0 * _4571;float _4573 = 3.0 - _4572;float _4577 = 1.0 + _4572;float _4580 = _4569.y;float _4581 = 2.0 * _4580;float _4582 = 3.0 - _4581;float _4586 = 1.0 + _4581;vec2 _4619 = vec2(((2.0 - _4571) / _4573) - 1.0, (_4571 / _4577) + 1.0) * _4546.x;vec2 _4623 = vec2(((2.0 - _4580) / _4582) - 1.0, (_4580 / _4586) + 1.0) * _4546.y;float _4631 = _4619.x;float _4633 = _4623.x;float _4697 = float(_6901);float _4699 = clamp(_4537.z, 0.0, 1.0);float _4648 = _4619.y;float _4667 = _4623.y;_6907 = (((((_4573 * _4582) * texture(light_shadowMap, vec4(vec4(_4567 + vec2(_4631, _4633), _4697, _4699).xyz, _4699))) + ((_4577 * _4582) * texture(light_shadowMap, vec4(vec4(_4567 + vec2(_4648, _4633), _4697, _4699).xyz, _4699)))) + ((_4573 * _4586) * texture(light_shadowMap, vec4(vec4(_4567 + vec2(_4631, _4667), _4697, _4699).xyz, _4699)))) + ((_4577 * _4586) * texture(light_shadowMap, vec4(vec4(_4567 + vec2(_4648, _4667), _4697, _4699).xyz, _4699)))) * 0.0625;_6907 = 1.0;float _6923;vec3 _6957;if (_6903 && (_6907 > 0.0))float _6924;vec3 _6958;uint _4761 = (frameUniforms.iz >> 8u) & 255u;vec4 _4869 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _4876 = frameUniforms.e * vec4(shading_position + (_4278 * frameUniforms.kz), 1.0);vec4 _4882 = _4869 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));vec3 _4888 = _4869.xyz * (1.0 / _4869.w);vec3 _4895 = _4876.xyz * (1.0 / _4876.w);float _4922 = _4888.z;vec3 _4925 = vec3((_4888.xy * 0.5) + vec2(0.5), _4922);vec3 _4930 = vec3((_4895.xy * 0.5) + vec2(0.5), _4895.z) - _4925;float _4771 = 1.0 / float(_4761);float _4779 = abs((_4882.xyz * (1.0 / _4882.w)).z - _4922) * _4771;float _4791 = (_4771 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _4771;vec3 _6911;_6911 = _6915;vec3 _4804;vec3 _6910;float _6919;uint _6908 = 0u;float _6909 = _4791;if (_6908 < _4761)_4804 = _4925 + (_4930 * _6909);if (abs(_4779 - (textureLod(light_structure, _4804.xy, 0.0).x - _4804.z)) < _4779)_6919 = 1.0;_6910 = _4804;_6909 += _4771;_6908++;_6911 = _4804;_6919 = 0.0;_6910 = _6911;vec2 _4839 = max((abs(_6910.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_6958 = _6910;_6924 = _6907 * (1.0 - (_6919 * clamp(1.0 - dot(_4839, _4839), 0.0, 1.0)));_6958 = _6915;_6924 = _6907;_6957 = _6958;_6923 = _6924;_6957 = _6915;_6923 = _6907;if (_6923 <= 0.0)_6956 = _6957;_6959 = _6957;_6925 = _6923;_6959 = _6915;_6925 = 1.0;vec3 _4963 = normalize(shading_view + _4278);float _4966 = clamp(_4289, 0.0, 1.0);float _4970 = clamp(dot(shading_normal, _4963), 0.0, 1.0);float _5058 = _4970 * _3581;float _5065 = _3581 / ((1.0 - (_4970 * _4970)) + (_5058 * _5058));float _5135 = 1.0 - clamp(dot(_4278, _4963), 0.0, 1.0);float _5144 = _5135 * _5135;_6956 = _6959;_6945 = _6892 + ((((_3544 * 0.3183098733425140380859375) + (((_3561 + ((vec3(clamp(dot(_3561, vec3(16.5)), 0.0, 1.0)) - _3561) * ((_5144 * _5144) * _5135))) * (((_5065 * _5065) * 0.3183098733425140380859375) * (0.5 / ((_4966 * sqrt(((shading_NoV - (_3775 * shading_NoV)) * shading_NoV) + _3775)) + (shading_NoV * sqrt(((_4966 - (_3775 * _4966)) * _4966) + _3775)))))) * _3600)) * _6731.xyz) * (((_4358 * _6905) * _4966) * _6925));fragColor = vec4(_6892, 1.0);bvec4 _5185 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z));uint param = clamp(uint(dot(vec4(_5185.x ? vec4(1.0).x : vec4(0.0).x, _5185.y ? vec4(1.0).y : vec4(0.0).y, _5185.z ? vec4(1.0).z : vec4(0.0).z, _5185.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);vec4 _3359 = fragColor;vec3 _3361 = _3359.xyz * uintToColorDebug(param);fragColor.x = _3361.x;fragColor.y = _3361.y;fragColor.z = _3361.z;vec3 _3372 = shading_position - frameUniforms.j;vec4 _6897;float _5250 = length(_3372);float _5253 = max(0.001000000047497451305389404296875, _3372.y);float _5263 = frameUniforms.qz * ((1.0 - exp((-frameUniforms.oz) * _5253)) / _5253);float _5279 = min(max(1.0 - exp2(-(_5263 * max(_5250 - frameUniforms.lz, 0.0))), 0.0), frameUniforms.mz);vec3 _6893;_6893 = frameUniforms.pz * (textureLod(light_iblSpecular, _3372, frameUniforms.fz).xyz * frameUniforms.az);_6893 = frameUniforms.pz;vec3 _5301 = _6893 * _5279;vec3 _6896;_6896 = _5301 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_3372, frameUniforms.q) / _5250, 0.0), frameUniforms.sz) * max(1.0 - exp2(-(_5263 * max(_5250 - frameUniforms.rz, 0.0))), 0.0)));_6896 = _5301;vec3 _5349 = (fragColor.xyz * (1.0 - _5279)) + _6896;vec4 _6779 = fragColor;_6779.x = _5349.x;vec4 _6781 = _6779;_6781.y = _5349.y;vec4 _6783 = _6781;_6783.z = _5349.z;_6897 = _6783;_6897 = fragColor;fragColor = _6897;layout(location = 0) out uvec2 outPicking;uniform sampler2DArray light_shadowMap;vec2 poissonDisk[64];vec3 _5403;float _5404;vec4 _5405;vec4 _5427;vec4 _5428;vec3 _5432;float _5460;vec3 _848;vec2 _2104 = cache.uv;vec4 _2116 = textureGather(light_ssao, vec3(cache.uv, 0.0), 1);vec4 _2124 = textureGather(light_ssao, vec3(cache.uv, 0.0), 2);vec4 _5349 = _5428;_5349.x = (_2116.x * 0.996108949184417724609375) + (_2124.x * 0.00389105058275163173675537109375);vec4 _5355 = _5349;_5355.y = (_2116.y * 0.996108949184417724609375) + (_2124.y * 0.00389105058275163173675537109375);vec4 _5361 = _5355;_5361.z = (_2116.z * 0.996108949184417724609375) + (_2124.z * 0.00389105058275163173675537109375);vec4 _5367 = _5361;_5367.w = (_2116.w * 0.996108949184417724609375) + (_2124.w * 0.00389105058275163173675537109375);vec2 _2171 = fract((cache.uv * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _2174 = _2171.x;float _2175 = 1.0 - _2174;float _2177 = _2171.y;vec4 _5371 = _5428;_5371.x = _2175 * _2177;vec4 _5375 = _5371;_5375.y = _2174 * _2177;float _2190 = 1.0 - _2177;vec4 _5379 = _5375;_5379.z = _2174 * _2190;vec4 _5383 = _5379;_5383.w = _2175 * _2190;vec4 _2223 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_5367 * (-frameUniforms.gz))) * frameUniforms.vz;vec4 _2233 = max(vec4(6.103515625e-05), vec4(1.0) - (_2223 * _2223)) * _5383;cache.weights = _2233 / vec4(((_2233.x + _2233.y) + _2233.z) + _2233.w);return dot(textureGather(light_ssao, vec3(_2104, 0.0)), cache.weights);float _3874 = (((-0.15658269822597503662109375) * cosCap1) + 1.57079601287841796875) * sqrt(1.0 - cosCap1);float _3885 = (((-0.15658269822597503662109375) * cosCap2) + 1.57079601287841796875) * sqrt(1.0 - cosCap2);float _3892 = abs(cosDistance);float _3900 = (((-0.15658269822597503662109375) * _3892) + 1.57079601287841796875) * sqrt(1.0 - _3892);float _5429;_5429 = _3900;_5429 = 3.1415927410125732421875 - _3900;float _2311;if (min(_3874, _3885) <= (max(_3874, _3885) - _5429))_2311 = _3874 + _3885;if (_2311 <= _5429)float _2321 = abs(_3874 - _3885);float _2334 = 1.0 - clamp((_5429 - _2321) / max(_2311 - _2321, 9.9999997473787516355514526367188e-05), 0.0, 1.0);return ((_2334 * _2334) * (((-2.0) * _2334) + 3.0)) * (1.0 - max(cosCap1, cosCap2));ivec2 _2628 = textureSize(light_iblSpecular, int(frameUniforms.fz));vec3 _2642 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _2649 = _2642 * (1.0 / float(_2628.x));vec3 _2653 = cross(_2642, n) * (1.0 / float(_2628.y));vec3 _2656 = n - _2649;vec3 _2661 = n + _2649;return (((textureLod(light_iblSpecular, _2656 - _2653, frameUniforms.fz).xyz + textureLod(light_iblSpecular, _2661 - _2653, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _2661 + _2653, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _2656 + _2653, frameUniforms.fz).xyz) * 0.25;return (frameUniforms.g[cascade][0] * shading_position.x) + ((frameUniforms.g[cascade][1] * shading_position.y) + ((frameUniforms.g[cascade][2] * shading_position.z) + frameUniforms.g[cascade][3]));float ShadowSample_DPCF(bool DIRECTIONAL, sampler2DArray map, uint layer, uint index, vec4 shadowPosition, float zLight)vec3 _1377 = shadowPosition.xyz * (1.0 / shadowPosition.w);vec3 _4693 = dFdx(_1377);vec3 _4694 = dFdy(_1377);vec2 _4713 = inverse(transpose(mat2(vec2(_4693.xy), vec2(_4694.xy)))) * vec2(_4693.z, _4694.z);float _5413;if (DIRECTIONAL)_5413 = frameUniforms.s;_5413 = shadowUniforms.a[index].bulbRadiusLs / zLight;float _4739 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _4741 = cos(_4739);float _4743 = sin(_4739);mat2 _4756 = mat2(vec2(_4741, _4743), vec2(-_4743, _4741));vec2 _1401 = _1377.xy;float _1403 = _1377.z;vec2 _1406 = (vec2(1.0) / vec2(vec3(textureSize(map, 0)).xy)) * _5413;float _5415;float _5416;_5416 = 0.0;_5415 = 0.0;for (uint _5414 = 0u; _5414 < 12u; )vec2 _4780 = _4756 * (poissonDisk[_5414] * _1406);vec4 _4788 = textureLod(map, vec3(_1401 + _4780, float(layer)), 0.0);float _4789 = _4788.x;float _4796 = step(dot(_4713, _4780), _4789 - _1403);_5416 += (_4789 * _4796);_5415 += _4796;_5414++;if (_5416 == 0.0)return 1.0;float _1423 = _5416 / _5415;float _5417;_5417 = (_1423 - _1403) / (1.0 - _1423);_5417 = ((shadowUniforms.a[index].nearOverFarMinusNear + _1423) / (shadowUniforms.a[index].nearOverFarMinusNear + _1403)) - 1.0;float _4841 = (_5415 * 0.16666667163372039794921875) - 1.0;float _4843 = sign(_4841);float _4847 = 1.0 - (_4843 * _4841);return 1.0 - mix((0.5 * (_4843 - (((_4847 * _4847) * _4847) * _4843))) + 0.5, _5415 * 0.083333335816860198974609375, clamp(_5417 * frameUniforms.u, 0.0, 1.0));float ShadowSample_PCSS(bool DIRECTIONAL, sampler2DArray map, uint layer, uint index, vec4 shadowPosition, float zLight)vec2 _1452 = vec2(vec3(textureSize(map, 0)).xy);vec2 _1455 = vec2(1.0) / _1452;vec3 _1460 = shadowPosition.xyz * (1.0 / shadowPosition.w);vec3 _4866 = dFdx(_1460);vec3 _4867 = dFdy(_1460);vec2 _4886 = inverse(transpose(mat2(vec2(_4866.xy), vec2(_4867.xy)))) * vec2(_4866.z, _4867.z);float _5419;_5419 = frameUniforms.s;_5419 = shadowUniforms.a[index].bulbRadiusLs / zLight;float _4912 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _4914 = cos(_4912);float _4916 = sin(_4912);mat2 _4929 = mat2(vec2(_4914, _4916), vec2(-_4916, _4914));vec2 _1474 = _1460.xy;float _1476 = _1460.z;vec2 _1479 = _1455 * _5419;float _5421;float _5422;_5422 = 0.0;_5421 = 0.0;for (uint _5420 = 0u; _5420 < 16u; )vec2 _4953 = _4929 * (poissonDisk[_5420] * _1479);vec4 _4961 = textureLod(map, vec3(_1474 + _4953, float(layer)), 0.0);float _4962 = _4961.x;float _4969 = step(dot(_4886, _4953), _4962 - _1476);_5422 += (_4962 * _4969);_5421 += _4969;_5420++;if (_5422 == 0.0)float _1496 = _5422 / _5421;float _5423;_5423 = (_1496 - _1476) / (1.0 - _1496);_5423 = ((shadowUniforms.a[index].nearOverFarMinusNear + _1496) / (shadowUniforms.a[index].nearOverFarMinusNear + _1476)) - 1.0;vec2 _1512 = _1455 * (_5419 * (_5423 * frameUniforms.u));float _5425;_5425 = 0.0;for (uint _5424 = 0u; _5424 < 16u; )vec2 _5029 = _4929 * (poissonDisk[_5424] * _1512);vec2 _5031 = _1474 + _5029;vec2 _5036 = fract((_5031 * _1452) - vec2(0.5));vec4 _5053 = step(vec4(dot(_4886, _5029)), textureGather(map, vec3(_5031, float(layer))) - vec4(_1476));float _5059 = _5036.x;_5425 += mix(mix(_5053.w, _5053.z, _5059), mix(_5053.x, _5053.y, _5059), _5036.y);_5424++;return 1.0 - (_5425 * 0.0625);float shadow(bool DIRECTIONAL, sampler2DArray shadowMap, uint layer, uint index, uint cascade)uint param = cascade;_5426 = getCascadeLightSpacePosition(param);_5426 = _5427;vec4 _4539 = texture(shadowMap, vec3(_5426.xy * (1.0 / _5426.w), float(layer)));float _4549 = exp(frameUniforms.bzz * ((_5426.z * 2.0) - 1.0));float _4561 = frameUniforms.czz * _4549;float _4575 = _4539.x;float _4580 = max(_4539.y - (_4575 * _4575), _4561 * _4561);float _4582 = _4549 - _4575;return (_4549 <= _4575) ? 1.0 : clamp(((_4580 / (_4580 + (_4582 * _4582))) - frameUniforms.dzz) / (1.0 - frameUniforms.dzz), 0.0, 1.0);return ShadowSample_DPCF(DIRECTIONAL, shadowMap, layer, index, _5426, 0.0);return ShadowSample_PCSS(DIRECTIONAL, shadowMap, layer, index, _5426, 0.0);vec3 _4616 = _5426.xyz * (1.0 / _5426.w);vec4 _4643 = step(vec4(0.0), _4616.zzzz - textureGather(shadowMap, vec3(_4616.xy, float(layer))));vec2 _4645 = fract((_4616.xy * vec2(vec3(textureSize(shadowMap, 0)).xy)) - vec2(0.5));float _4651 = _4645.x;return mix(mix(_4643.w, _4643.z, _4651), mix(_4643.x, _4643.y, _4651), _4645.y);float _4032 = clamp(dot(shading_normal, frameUniforms.q), 0.0, 1.0);if (_4032 <= 0.0)float _5448;if (_4032 > 0.0)bvec4 _4055 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z));uint _4065 = clamp(uint(dot(vec4(_4055.x ? vec4(1.0).x : vec4(0.0).x, _4055.y ? vec4(1.0).y : vec4(0.0).y, _4055.z ? vec4(1.0).z : vec4(0.0).z, _4055.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);float _5433;if (((frameUniforms.iz & 1u) != 0u) && ((frameUniforms.uz & ((1u << _4065) << 8u)) != 0u))_5433 = shadow(true, light_shadowMap, _4065, 0u, _4065);_5433 = 1.0;float _5441;if (((frameUniforms.iz & 2u) != 0u) && (_5433 > 0.0))float _5443;uint _4111 = (frameUniforms.iz >> 8u) & 255u;vec4 _4219 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _4226 = frameUniforms.e * vec4(shading_position + (frameUniforms.q * frameUniforms.kz), 1.0);vec4 _4232 = _4219 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));vec3 _4238 = _4219.xyz * (1.0 / _4219.w);vec3 _4245 = _4226.xyz * (1.0 / _4226.w);float _4272 = _4238.z;vec3 _4275 = vec3((_4238.xy * 0.5) + vec2(0.5), _4272);vec3 _4280 = vec3((_4245.xy * 0.5) + vec2(0.5), _4245.z) - _4275;float _4121 = 1.0 / float(_4111);float _4129 = abs((_4232.xyz * (1.0 / _4232.w)).z - _4272) * _4121;float _4141 = (_4121 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _4121;vec3 _5437;_5437 = _5432;vec3 _4154;vec3 _5436;float _5439;uint _5434 = 0u;float _5435 = _4141;if (_5434 < _4111)_4154 = _4275 + (_4280 * _5435);if (abs(_4129 - (textureLod(light_structure, _4154.xy, 0.0).x - _4154.z)) < _4129)_5439 = 1.0;_5436 = _4154;_5435 += _4121;_5434++;_5437 = _4154;_5439 = 0.0;_5436 = _5437;vec2 _4189 = max((abs(_5436.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_5443 = _5439 * clamp(1.0 - dot(_4189, _4189), 0.0, 1.0);_5443 = 0.0;_5441 = _5443;_5441 = 0.0;float _2966 = _5433 * (1.0 - _5441);if (_2966 <= 0.0)_5448 = _2966;_5448 = 1.0;vec3 _4313 = normalize(shading_view + frameUniforms.q);float _4316 = clamp(_4032, 0.0, 1.0);float _4320 = clamp(dot(shading_normal, _4313), 0.0, 1.0);float _4408 = _4320 * pixel.roughness;float _4415 = pixel.roughness / ((1.0 - (_4320 * _4320)) + (_4408 * _4408));float _4438 = pixel.roughness * pixel.roughness;float _4485 = 1.0 - clamp(dot(frameUniforms.q, _4313), 0.0, 1.0);float _4494 = _4485 * _4485;color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_4494 * _4494) * _4485))) * (((_4415 * _4415) * 0.3183098733425140380859375) * (0.5 / ((_4316 * sqrt(((shading_NoV - (_4438 * shading_NoV)) * shading_NoV) + _4438)) + (shading_NoV * sqrt(((_4316 - (_4438 * _4316)) * _4316) + _4438)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _4316) * _5448));poissonDisk = vec2[](vec2(0.5117490291595458984375, 0.54768598079681396484375), vec2(0.58929002285003662109375, 0.2572239935398101806640625), vec2(0.16501800715923309326171875, 0.57662999629974365234375), vec2(0.4076919853687286376953125, 0.7422850131988525390625), vec2(0.707011997699737548828125, 0.646522998809814453125), vec2(0.3146300017833709716796875, 0.466825008392333984375), vec2(0.80125701427459716796875, 0.4851860105991363525390625), vec2(0.41813600063323974609375, 0.14651699364185333251953125), vec2(0.579888999462127685546875, 0.03682839870452880859375), vec2(0.79800999164581298828125, 0.14011399447917938232421875), vec2(-0.041318498551845550537109375, 0.371455013751983642578125), vec2(-0.0529108010232448577880859375, 0.6273519992828369140625), vec2(0.082137502729892730712890625, 0.882071018218994140625), vec2(0.1730799973011016845703125, 0.301207005977630615234375), vec2(-0.12045200169086456298828125, 0.86721599102020263671875), vec2(0.3710959851741790771484375, 0.916454017162322998046875), vec2(-0.1783809959888458251953125, 0.1461009979248046875), vec2(-0.2764889895915985107421875, 0.550525009632110595703125), vec2(0.1254200041294097900390625, 0.126643002033233642578125), vec2(-0.2966539859771728515625, 0.286879003047943115234375), vec2(0.2617439925670623779296875, -0.0060497499071061611175537109375), vec2(-0.213416993618011474609375, 0.715776026248931884765625), vec2(0.4256840050220489501953125, -0.15321099758148193359375), vec2(-0.4800539910793304443359375, 0.3213570117950439453125), vec2(-0.071787796914577484130859375, -0.02505669929087162017822265625), vec2(-0.328774988651275634765625, -0.16966600716114044189453125), vec2(-0.3949230015277862548828125, 0.1308020055294036865234375), vec2(-0.55368101596832275390625, -0.17677700519561767578125), vec2(-0.7226150035858154296875, 0.120615996420383453369140625), vec2(-0.693064987659454345703125, 0.309017002582550048828125), vec2(0.603192985057830810546875, 0.791471004486083984375), vec2(-0.075494103133678436279296875, -0.297987997531890869140625), vec2(0.109302997589111328125, -0.1564719974994659423828125), vec2(0.2606050074100494384765625, -0.280111014842987060546875), vec2(0.129730999469757080078125, -0.4879539906978607177734375), vec2(-0.53731501102447509765625, 0.520493984222412109375), vec2(-0.42757999897003173828125, 0.800607025623321533203125), vec2(0.77309000492095947265625, -0.0728102028369903564453125), vec2(0.9087769985198974609375, 0.3283559978008270263671875), vec2(0.985341012477874755859375, 0.07591579854488372802734375), vec2(0.947535991668701171875, -0.118369996547698974609375), vec2(-0.103315003216266632080078125, -0.61074697971343994140625), vec2(0.3371709883213043212890625, -0.58399999141693115234375), vec2(0.2109189927577972412109375, -0.72005498409271240234375), vec2(0.418940007686614990234375, -0.3676899969577789306640625), vec2(-0.25422799587249755859375, -0.49368000030517578125), vec2(-0.428561985492706298828125, -0.404036998748779296875), vec2(-0.831731975078582763671875, -0.18961499631404876708984375), vec2(-0.9226419925689697265625, 0.088802598416805267333984375), vec2(-0.86591398715972900390625, 0.427794992923736572265625), vec2(0.706116974353790283203125, -0.3116619884967803955078125), vec2(0.545464992523193359375, -0.5209419727325439453125), vec2(-0.695738017559051513671875, 0.66449201107025146484375), vec2(0.389420986175537109375, -0.899007022380828857421875), vec2(0.488420009613037109375, -0.708054006099700927734375), vec2(0.7602980136871337890625, -0.62734997272491455078125), vec2(-0.3907879889011383056640625, -0.707387983798980712890625), vec2(-0.59104597568511962890625, -0.686721026897430419921875), vec2(-0.769903004169464111328125, -0.4137749969959259033203125), vec2(-0.60445702075958251953125, -0.50257098674774169921875), vec2(-0.557233989238739013671875, 0.0045136199332773685455322265625), vec2(0.14757199585437774658203125, -0.92435300350189208984375), vec2(-0.066248796880245208740234375, -0.8920810222625732421875), vec2(0.863831996917724609375, -0.407205998897552490234375));vec3 _3207 = reflect(-shading_view, shading_normal);vec4 _5299 = vec4(1.0);_5299.x = materialParams.a.x;vec4 _5301 = _5299;_5301.y = materialParams.a.y;vec4 _5303 = _5301;_5303.z = materialParams.a.z;float _3306 = 1.0 - materialParams.b;vec3 _3307 = _5303.xyz * _3306;vec3 _3324 = (_5303.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _3306);float _3334 = clamp(materialParams.c, 0.04500000178813934326171875, 1.0);float _3344 = _3334 * _3334;vec4 _3378 = textureLod(light_iblDFG, vec2(shading_NoV, _3334), 0.0);vec3 _3363 = vec3(1.0) + (_3324 * ((1.0 / _3378.y) - 1.0));vec3 _3525 = mix(_3378.xxx, _3378.yyy, _3324);float _3538 = _3344 * _3344;SSAOInterpolationCache _3387 = SSAOInterpolationCache(_5405, vec3((vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5), _5460).xy);float _3429 = evaluateSSAO(_3387);float _3433 = min(1.0, _3429);float _3655 = clamp((pow(shading_NoV + _3433, exp2(((-16.0) * _3344) - 1.0)) - 1.0) + _3433, 0.0, 1.0);float _5408;vec3 _5406;vec3 _3602 = vec3(_3387.uv, 1.0);vec3 _5306 = _5403;_5306.x = dot(textureGather(light_ssao, _3602), _3387.weights);vec3 _5308 = _5306;_5308.y = dot(textureGather(light_ssao, _3602, 1), _3387.weights);vec3 _5310 = _5308;_5310.z = dot(textureGather(light_ssao, _3602, 2), _3387.weights);_5406 = _5310;_5406 = textureLod(light_ssao, vec3(_3387.uv, 1.0), 0.0).xyz;float _3678 = exp2((-3.3219280242919921875) * _3538);float _3667 = sqrt(1.0 - _3433);float _3668 = _3678;float _3669 = dot(normalize((_5406 * 2.0) - vec3(1.0)), _3207);_5408 = min(_3655, mix(1.0, sphericalCapsIntersection(_3667, _3668, _3669) / (1.0 - _3678), smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _3344)));_5408 = _3655;vec3 _3228 = ((((_3525 * textureLod(light_iblSpecular, mix(_3207, shading_normal, vec3(_3538)), (frameUniforms.fz * _3334) * (2.0 - _3334)).xyz) * (_3363 * 1.0)) * max(vec3(_5408), ((((((_3324 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _5408) + ((_3324 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _5408) + ((_3324 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _5408)) * frameUniforms.az) + (((((_3307 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _3525)) * 1.0) * max(vec3(_3433), ((((((_3307 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _3433) + ((_3307 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _3433) + ((_3307 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _3433)) * frameUniforms.az);evaluateDirectionalLight(MaterialInputs(_5303, materialParams.c, materialParams.b, materialParams.d, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _5403, _5404, _5404, _5404, _5404, _5403), PixelParams(_3307, _3334, materialParams.c, _3324, _3344, _3378.xyz, _3363), _3228);fragColor = vec4(_3228, 1.0);bvec4 _3791 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z));uint param = clamp(uint(dot(vec4(_3791.x ? vec4(1.0).x : vec4(0.0).x, _3791.y ? vec4(1.0).y : vec4(0.0).y, _3791.z ? vec4(1.0).z : vec4(0.0).z, _3791.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);vec4 _3122 = fragColor;vec3 _3124 = _3122.xyz * uintToColorDebug(param);fragColor.x = _3124.x;fragColor.y = _3124.y;fragColor.z = _3124.z;vec3 _6025;vec4 _6027;vec4 _6111;vec4 _6113;float _6127;vec2 _2096 = cache.uv;vec4 _2108 = textureGather(light_ssao, vec3(cache.uv, 0.0), 1);vec4 _2116 = textureGather(light_ssao, vec3(cache.uv, 0.0), 2);vec4 _5980 = _6113;_5980.x = (_2108.x * 0.996108949184417724609375) + (_2116.x * 0.00389105058275163173675537109375);vec4 _5986 = _5980;_5986.y = (_2108.y * 0.996108949184417724609375) + (_2116.y * 0.00389105058275163173675537109375);vec4 _5992 = _5986;_5992.z = (_2108.z * 0.996108949184417724609375) + (_2116.z * 0.00389105058275163173675537109375);vec4 _5998 = _5992;_5998.w = (_2108.w * 0.996108949184417724609375) + (_2116.w * 0.00389105058275163173675537109375);vec2 _2163 = fract((cache.uv * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _2166 = _2163.x;float _2167 = 1.0 - _2166;float _2169 = _2163.y;vec4 _6002 = _6113;_6002.x = _2167 * _2169;vec4 _6006 = _6002;_6006.y = _2166 * _2169;float _2182 = 1.0 - _2169;vec4 _6010 = _6006;_6010.z = _2166 * _2182;vec4 _6014 = _6010;_6014.w = _2167 * _2182;vec4 _2215 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_5998 * (-frameUniforms.gz))) * frameUniforms.vz;vec4 _2225 = max(vec4(6.103515625e-05), vec4(1.0) - (_2215 * _2215)) * _6014;cache.weights = _2225 / vec4(((_2225.x + _2225.y) + _2225.z) + _2225.w);return dot(textureGather(light_ssao, vec3(_2096, 0.0)), cache.weights);float _4946 = (((-0.15658269822597503662109375) * cosCap1) + 1.57079601287841796875) * sqrt(1.0 - cosCap1);float _4957 = (((-0.15658269822597503662109375) * cosCap2) + 1.57079601287841796875) * sqrt(1.0 - cosCap2);float _4964 = abs(cosDistance);float _4972 = (((-0.15658269822597503662109375) * _4964) + 1.57079601287841796875) * sqrt(1.0 - _4964);float _6114;_6114 = _4972;_6114 = 3.1415927410125732421875 - _4972;float _2303;if (min(_4946, _4957) <= (max(_4946, _4957) - _6114))_2303 = _4946 + _4957;if (_2303 <= _6114)float _2313 = abs(_4946 - _4957);float _2326 = 1.0 - clamp((_6114 - _2313) / max(_2303 - _2313, 9.9999997473787516355514526367188e-05), 0.0, 1.0);return ((_2326 * _2326) * (((-2.0) * _2326) + 3.0)) * (1.0 - max(cosCap1, cosCap2));ivec2 _2620 = textureSize(light_iblSpecular, int(frameUniforms.fz));vec3 _2635 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _2642 = _2635 * (1.0 / float(_2620.x));vec3 _2646 = cross(_2635, n) * (1.0 / float(_2620.y));vec3 _2649 = n - _2642;vec3 _2654 = n + _2642;return (((textureLod(light_iblSpecular, _2649 - _2646, frameUniforms.fz).xyz + textureLod(light_iblSpecular, _2654 - _2646, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _2654 + _2646, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _2649 + _2646, frameUniforms.fz).xyz) * 0.25;vec3 _1357 = shadowPosition.xyz * (1.0 / shadowPosition.w);vec3 _5290 = dFdx(_1357);vec3 _5291 = dFdy(_1357);vec2 _5310 = inverse(transpose(mat2(vec2(_5290.xy), vec2(_5291.xy)))) * vec2(_5290.z, _5291.z);float _6097;_6097 = frameUniforms.s;_6097 = shadowUniforms.a[index].bulbRadiusLs / zLight;float _5336 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _5338 = cos(_5336);float _5340 = sin(_5336);mat2 _5353 = mat2(vec2(_5338, _5340), vec2(-_5340, _5338));vec2 _1381 = _1357.xy;float _1383 = _1357.z;vec2 _1386 = (vec2(1.0) / vec2(vec3(textureSize(map, 0)).xy)) * _6097;float _6099;float _6100;_6100 = 0.0;_6099 = 0.0;for (uint _6098 = 0u; _6098 < 12u; )vec2 _5377 = _5353 * (poissonDisk[_6098] * _1386);vec4 _5385 = textureLod(map, vec3(_1381 + _5377, float(layer)), 0.0);float _5386 = _5385.x;float _5393 = step(dot(_5310, _5377), _5386 - _1383);_6100 += (_5386 * _5393);_6099 += _5393;_6098++;if (_6100 == 0.0)float _1403 = _6100 / _6099;float _6101;_6101 = (_1403 - _1383) / (1.0 - _1403);_6101 = ((shadowUniforms.a[index].nearOverFarMinusNear + _1403) / (shadowUniforms.a[index].nearOverFarMinusNear + _1383)) - 1.0;float _5438 = (_6099 * 0.16666667163372039794921875) - 1.0;float _5440 = sign(_5438);float _5444 = 1.0 - (_5440 * _5438);return 1.0 - mix((0.5 * (_5440 - (((_5444 * _5444) * _5444) * _5440))) + 0.5, _6099 * 0.083333335816860198974609375, clamp(_6101 * frameUniforms.u, 0.0, 1.0));vec2 _1432 = vec2(vec3(textureSize(map, 0)).xy);vec2 _1435 = vec2(1.0) / _1432;vec3 _1440 = shadowPosition.xyz * (1.0 / shadowPosition.w);vec3 _5463 = dFdx(_1440);vec3 _5464 = dFdy(_1440);vec2 _5483 = inverse(transpose(mat2(vec2(_5463.xy), vec2(_5464.xy)))) * vec2(_5463.z, _5464.z);float _6103;_6103 = frameUniforms.s;_6103 = shadowUniforms.a[index].bulbRadiusLs / zLight;float _5509 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _5511 = cos(_5509);float _5513 = sin(_5509);mat2 _5526 = mat2(vec2(_5511, _5513), vec2(-_5513, _5511));vec2 _1454 = _1440.xy;float _1456 = _1440.z;vec2 _1459 = _1435 * _6103;float _6105;float _6106;_6106 = 0.0;_6105 = 0.0;for (uint _6104 = 0u; _6104 < 16u; )vec2 _5550 = _5526 * (poissonDisk[_6104] * _1459);vec4 _5558 = textureLod(map, vec3(_1454 + _5550, float(layer)), 0.0);float _5559 = _5558.x;float _5566 = step(dot(_5483, _5550), _5559 - _1456);_6106 += (_5559 * _5566);_6105 += _5566;_6104++;if (_6106 == 0.0)float _1476 = _6106 / _6105;float _6107;_6107 = (_1476 - _1456) / (1.0 - _1476);_6107 = ((shadowUniforms.a[index].nearOverFarMinusNear + _1476) / (shadowUniforms.a[index].nearOverFarMinusNear + _1456)) - 1.0;vec2 _1492 = _1435 * (_6103 * (_6107 * frameUniforms.u));float _6109;_6109 = 0.0;for (uint _6108 = 0u; _6108 < 16u; )vec2 _5626 = _5526 * (poissonDisk[_6108] * _1492);vec2 _5628 = _1454 + _5626;vec2 _5633 = fract((_5628 * _1432) - vec2(0.5));vec4 _5650 = step(vec4(dot(_5483, _5626)), textureGather(map, vec3(_5628, float(layer))) - vec4(_1456));float _5656 = _5633.x;_6109 += mix(mix(_5650.w, _5650.z, _5656), mix(_5650.x, _5650.y, _5656), _5633.y);_6108++;return 1.0 - (_6109 * 0.0625);vec4 _6110;float _6112;_6112 = 0.0;_6110 = _6111;_6112 = dot(shadowUniforms.a[index].lightFromWorldZ, vec4(shading_position, 1.0));_6110 = (shadowUniforms.a[index].lightFromWorldMatrix[0] * shading_position.x) + ((shadowUniforms.a[index].lightFromWorldMatrix[1] * shading_position.y) + ((shadowUniforms.a[index].lightFromWorldMatrix[2] * shading_position.z) + shadowUniforms.a[index].lightFromWorldMatrix[3]));vec4 _5161 = texture(shadowMap, vec3(_6110.xy * (1.0 / _6110.w), float(layer)));float _5171 = exp(frameUniforms.bzz * ((_6110.z * 2.0) - 1.0));float _5183 = frameUniforms.czz * _5171;float _5197 = _5161.x;float _5202 = max(_5161.y - (_5197 * _5197), _5183 * _5183);float _5204 = _5171 - _5197;return (_5171 <= _5197) ? 1.0 : clamp(((_5202 / (_5202 + (_5204 * _5204))) - frameUniforms.dzz) / (1.0 - frameUniforms.dzz), 0.0, 1.0);return ShadowSample_DPCF(DIRECTIONAL, shadowMap, layer, index, _6110, _6112);return ShadowSample_PCSS(DIRECTIONAL, shadowMap, layer, index, _6110, _6112);vec3 _5238 = _6110.xyz * (1.0 / _6110.w);vec4 _5265 = step(vec4(0.0), _5238.zzzz - textureGather(shadowMap, vec3(_5238.xy, float(layer))));vec2 _5267 = fract((_5238.xy * vec2(vec3(textureSize(shadowMap, 0)).xy)) - vec2(0.5));float _5273 = _5267.x;return mix(mix(_5265.w, _5265.z, _5273), mix(_5265.x, _5265.y, _5273), _5267.y);vec3 _3427 = normalize(vertex_worldNormal);vec3 _3434 = normalize(frameUniforms.j - shading_position);vec2 _3442 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);float _3487 = max(dot(_3427, _3434), 9.9999997473787516355514526367188e-05);vec3 _3480 = reflect(-_3434, _3427);vec4 _5895 = vec4(1.0);_5895.x = materialParams.a.x;vec4 _5897 = _5895;_5897.y = materialParams.a.y;vec4 _5899 = _5897;_5899.z = materialParams.a.z;float _3579 = 1.0 - materialParams.b;vec3 _3580 = _5899.xyz * _3579;vec3 _3597 = (_5899.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _3579);float _3607 = clamp(materialParams.c, 0.04500000178813934326171875, 1.0);float _3617 = _3607 * _3607;vec4 _3651 = textureLod(light_iblDFG, vec2(_3487, _3607), 0.0);vec3 _3636 = vec3(1.0) + (_3597 * ((1.0 / _3651.y) - 1.0));float _3785 = _3442.x;vec3 _3798 = mix(_3651.xxx, _3651.yyy, _3597);float _3811 = _3617 * _3617;SSAOInterpolationCache _3660 = SSAOInterpolationCache(_6027, vec3(_3785, _3442.y, _6127).xy);float _3702 = evaluateSSAO(_3660);float _3706 = min(1.0, _3702);float _3928 = clamp((pow(_3487 + _3706, exp2(((-16.0) * _3617) - 1.0)) - 1.0) + _3706, 0.0, 1.0);float _6030;vec3 _6028;vec3 _3875 = vec3(_3660.uv, 1.0);vec3 _5902 = _6025;_5902.x = dot(textureGather(light_ssao, _3875), _3660.weights);vec3 _5904 = _5902;_5904.y = dot(textureGather(light_ssao, _3875, 1), _3660.weights);vec3 _5906 = _5904;_5906.z = dot(textureGather(light_ssao, _3875, 2), _3660.weights);_6028 = _5906;_6028 = textureLod(light_ssao, vec3(_3660.uv, 1.0), 0.0).xyz;float _3951 = exp2((-3.3219280242919921875) * _3811);float _3940 = sqrt(1.0 - _3706);float _3941 = _3951;float _3942 = dot(normalize((_6028 * 2.0) - vec3(1.0)), _3480);_6030 = min(_3928, mix(1.0, sphericalCapsIntersection(_3940, _3941, _3942) / (1.0 - _3951), smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _3617)));_6030 = _3928;uvec2 _4188 = uvec2((vec3(_3785, _3442.y, gl_FragCoord.z).xy * frameUniforms.i.xy) * vec2(frameUniforms.z, frameUniforms.v));uint _4170 = ((_4188.x * frameUniforms.r) + (_4188.y * frameUniforms.x.x)) + (uint(clamp((log2((frameUniforms.w.x * gl_FragCoord.z) + frameUniforms.w.y) * frameUniforms.w.z) + frameUniforms.w.w, 0.0, frameUniforms.w.w - 1.0)) * frameUniforms.x.y);uvec4 _4227 = texelFetch(light_froxels, ivec2(int(_4170 & 63u), int(_4170 >> 6u)), 0);uint _4230 = _4227.x;uint _4065 = _4230 + (_4227.y & 255u);uint _4068 = objectUniforms.e & 255u;vec3 _6039;vec4 _6040;vec3 _6056;_6056 = _6025;_6040 = _6027;_6039 = ((((_3798 * textureLod(light_iblSpecular, mix(_3480, _3427, vec3(_3811)), (frameUniforms.fz * _3607) * (2.0 - _3607)).xyz) * (_3636 * 1.0)) * max(vec3(_6030), ((((((_3597 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _6030) + ((_3597 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _6030) + ((_3597 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _6030)) * frameUniforms.az) + (((((_3580 * diffuseIrradiance(_3427)) * (vec3(1.0) - _3798)) * 1.0) * max(vec3(_3706), ((((((_3580 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _3706) + ((_3580 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _3706) + ((_3580 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _3706)) * frameUniforms.az);vec4 _5933;vec3 _6083;vec3 _6093;for (uint _6038 = _4230; _6038 < _4065; _6056 = _6093, _6040 = _5933, _6039 = _6083, _6038++)uvec4 _4372 = froxelRecordUniforms.a[_6038 >> 4u];uint _4388 = (_4372[(_6038 >> 2u) & 3u] >> ((_6038 & 3u) * 8u)) & 255u;vec2 _4274 = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_4388][2].x));uint _4291 = floatBitsToUint(lightsUniforms.a[_4388][3].z);uint _4294 = floatBitsToUint(lightsUniforms.a[_4388][3].w);vec3 _4299 = lightsUniforms.a[_4388][0].xyz - shading_position;vec4 _5927 = _6040;_5927.x = _4274.x;vec4 _5929 = _5927;_5929.y = _4274.y;vec4 _5931 = _5929;_5931.z = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_4388][2].y)).x;float _4394 = lightsUniforms.a[_4388][3].y * frameUniforms.bz;_5933 = _5931;_5933.w = _4394;vec3 _4314 = normalize(_4299);float _4403 = dot(_4299, _4299);float _4433 = _4403 * lightsUniforms.a[_4388][0].w;float _4438 = clamp(1.0 - (_4433 * _4433), 0.0, 1.0);vec3 _4409 = shading_position - frameUniforms.j;float _4426 = ((_4438 * _4438) * clamp(frameUniforms.n.x - (dot(_4409, _4409) * frameUniforms.n.y), 0.0, 1.0)) / max(_4403, 9.9999997473787516355514526367188e-05);float _4325 = clamp(dot(_3427, _4314), 0.0, 1.0);uint _6043;uint _6044;bool _6045;bool _6046;float _6047;if ((_4291 & 1u) == 1u)float _4459 = clamp((dot(-lightsUniforms.a[_4388][1].xyz, _4314) * lightsUniforms.a[_4388][2].z) + lightsUniforms.a[_4388][2].w, 0.0, 1.0);_6047 = _4426 * (_4459 * _4459);_6046 = (_4294 & 65536u) != 0u;_6045 = (_4291 & 16u) != 0u;_6044 = (_4291 >> 8u) & 255u;_6043 = (_4291 >> 16u) & 255u;_6047 = _4426;_6046 = false;_6045 = false;_6044 = 0u;_6043 = 0u;if ((_4294 & _4068) == 0u)_6093 = _6056;_6083 = _6039;bool _4086 = _4325 <= 0.0;bool _4093;if (!_4086)_4093 = _6047 <= 0.0;_4093 = _4086;if (_4093)float _6065;vec3 _6096;if (_4325 > 0.0)float _6048;if (_6046)_6048 = shadow(false, light_shadowMap, _6043, _6044, 0u);_6048 = 1.0;float _6063;vec3 _6094;if (_6045 && (_6048 > 0.0))float _6064;vec3 _6095;uint _4486 = (frameUniforms.iz >> 8u) & 255u;vec4 _4594 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _4601 = frameUniforms.e * vec4(shading_position + (_4314 * frameUniforms.kz), 1.0);vec4 _4607 = _4594 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));vec3 _4613 = _4594.xyz * (1.0 / _4594.w);vec3 _4620 = _4601.xyz * (1.0 / _4601.w);float _4647 = _4613.z;vec3 _4650 = vec3((_4613.xy * 0.5) + vec2(0.5), _4647);vec3 _4655 = vec3((_4620.xy * 0.5) + vec2(0.5), _4620.z) - _4650;float _4496 = 1.0 / float(_4486);float _4504 = abs((_4607.xyz * (1.0 / _4607.w)).z - _4647) * _4496;float _4516 = (_4496 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _4496;vec3 _6052;_6052 = _6056;vec3 _4529;vec3 _6051;float _6059;uint _6049 = 0u;float _6050 = _4516;if (_6049 < _4486)_4529 = _4650 + (_4655 * _6050);if (abs(_4504 - (textureLod(light_structure, _4529.xy, 0.0).x - _4529.z)) < _4504)_6059 = 1.0;_6051 = _4529;_6050 += _4496;_6049++;_6052 = _4529;_6059 = 0.0;_6051 = _6052;vec2 _4564 = max((abs(_6051.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_6095 = _6051;_6064 = _6048 * (1.0 - (_6059 * clamp(1.0 - dot(_4564, _4564), 0.0, 1.0)));_6095 = _6056;_6064 = _6048;_6094 = _6095;_6063 = _6064;_6094 = _6056;_6063 = _6048;if (_6063 <= 0.0)_6093 = _6094;_6096 = _6094;_6065 = _6063;_6096 = _6056;_6065 = 1.0;vec3 _4688 = normalize(_3434 + _4314);float _4691 = clamp(_4325, 0.0, 1.0);float _4695 = clamp(dot(_3427, _4688), 0.0, 1.0);float _4783 = _4695 * _3617;float _4790 = _3617 / ((1.0 - (_4695 * _4695)) + (_4783 * _4783));float _4860 = 1.0 - clamp(dot(_4314, _4688), 0.0, 1.0);float _4869 = _4860 * _4860;_6093 = _6096;_6083 = _6039 + ((((_3580 * 0.3183098733425140380859375) + (((_3597 + ((vec3(clamp(dot(_3597, vec3(16.5)), 0.0, 1.0)) - _3597) * ((_4869 * _4869) * _4860))) * (((_4790 * _4790) * 0.3183098733425140380859375) * (0.5 / ((_4691 * sqrt(((_3487 - (_3811 * _3487)) * _3487) + _3811)) + (_3487 * sqrt(((_4691 - (_3811 * _4691)) * _4691) + _3811)))))) * _3636)) * _5933.xyz) * (((_4394 * _6047) * _4691) * _6065));fragColor = vec4(_6039, 1.0);vec3 _6942;float _6943;vec4 _6944;vec4 _7029;vec3 _7033;float _7061;vec3 _912;vec2 _2216 = cache.uv;vec4 _2228 = textureGather(light_ssao, vec3(cache.uv, 0.0), 1);vec4 _2236 = textureGather(light_ssao, vec3(cache.uv, 0.0), 2);vec4 _6888 = _7029;_6888.x = (_2228.x * 0.996108949184417724609375) + (_2236.x * 0.00389105058275163173675537109375);vec4 _6894 = _6888;_6894.y = (_2228.y * 0.996108949184417724609375) + (_2236.y * 0.00389105058275163173675537109375);vec4 _6900 = _6894;_6900.z = (_2228.z * 0.996108949184417724609375) + (_2236.z * 0.00389105058275163173675537109375);vec4 _6906 = _6900;_6906.w = (_2228.w * 0.996108949184417724609375) + (_2236.w * 0.00389105058275163173675537109375);vec2 _2283 = fract((cache.uv * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _2286 = _2283.x;float _2287 = 1.0 - _2286;float _2289 = _2283.y;vec4 _6910 = _7029;_6910.x = _2287 * _2289;vec4 _6914 = _6910;_6914.y = _2286 * _2289;float _2302 = 1.0 - _2289;vec4 _6918 = _6914;_6918.z = _2286 * _2302;vec4 _6922 = _6918;_6922.w = _2287 * _2302;vec4 _2335 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_6906 * (-frameUniforms.gz))) * frameUniforms.vz;vec4 _2345 = max(vec4(6.103515625e-05), vec4(1.0) - (_2335 * _2335)) * _6922;cache.weights = _2345 / vec4(((_2345.x + _2345.y) + _2345.z) + _2345.w);return dot(textureGather(light_ssao, vec3(_2216, 0.0)), cache.weights);float _5254 = (((-0.15658269822597503662109375) * cosCap1) + 1.57079601287841796875) * sqrt(1.0 - cosCap1);float _5265 = (((-0.15658269822597503662109375) * cosCap2) + 1.57079601287841796875) * sqrt(1.0 - cosCap2);float _5272 = abs(cosDistance);float _5280 = (((-0.15658269822597503662109375) * _5272) + 1.57079601287841796875) * sqrt(1.0 - _5272);float _7030;_7030 = _5280;_7030 = 3.1415927410125732421875 - _5280;float _2423;if (min(_5254, _5265) <= (max(_5254, _5265) - _7030))_2423 = _5254 + _5265;if (_2423 <= _7030)float _2433 = abs(_5254 - _5265);float _2446 = 1.0 - clamp((_7030 - _2433) / max(_2423 - _2433, 9.9999997473787516355514526367188e-05), 0.0, 1.0);return ((_2446 * _2446) * (((-2.0) * _2446) + 3.0)) * (1.0 - max(cosCap1, cosCap2));ivec2 _2739 = textureSize(light_iblSpecular, int(frameUniforms.fz));vec3 _2753 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _2760 = _2753 * (1.0 / float(_2739.x));vec3 _2764 = cross(_2753, n) * (1.0 / float(_2739.y));vec3 _2767 = n - _2760;vec3 _2772 = n + _2760;return (((textureLod(light_iblSpecular, _2767 - _2764, frameUniforms.fz).xyz + textureLod(light_iblSpecular, _2772 - _2764, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _2772 + _2764, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _2767 + _2764, frameUniforms.fz).xyz) * 0.25;vec3 _1477 = shadowPosition.xyz * (1.0 / shadowPosition.w);vec3 _6124 = dFdx(_1477);vec3 _6125 = dFdy(_1477);vec2 _6144 = inverse(transpose(mat2(vec2(_6124.xy), vec2(_6125.xy)))) * vec2(_6124.z, _6125.z);float _7014;_7014 = frameUniforms.s;_7014 = shadowUniforms.a[index].bulbRadiusLs / zLight;float _6170 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _6172 = cos(_6170);float _6174 = sin(_6170);mat2 _6187 = mat2(vec2(_6172, _6174), vec2(-_6174, _6172));vec2 _1501 = _1477.xy;float _1503 = _1477.z;vec2 _1506 = (vec2(1.0) / vec2(vec3(textureSize(map, 0)).xy)) * _7014;float _7016;_7016 = 0.0;for (uint _7015 = 0u; _7015 < 12u; )vec2 _6211 = _6187 * (poissonDisk[_7015] * _1506);vec4 _6219 = textureLod(map, vec3(_1501 + _6211, float(layer)), 0.0);float _6220 = _6219.x;float _6227 = step(dot(_6144, _6211), _6220 - _1503);_7017 += (_6220 * _6227);_7016 += _6227;_7015++;if (_7017 == 0.0)float _1523 = _7017 / _7016;float _7018;_7018 = (_1523 - _1503) / (1.0 - _1523);_7018 = ((shadowUniforms.a[index].nearOverFarMinusNear + _1523) / (shadowUniforms.a[index].nearOverFarMinusNear + _1503)) - 1.0;float _6272 = (_7016 * 0.16666667163372039794921875) - 1.0;float _6274 = sign(_6272);float _6278 = 1.0 - (_6274 * _6272);return 1.0 - mix((0.5 * (_6274 - (((_6278 * _6278) * _6278) * _6274))) + 0.5, _7016 * 0.083333335816860198974609375, clamp(_7018 * frameUniforms.u, 0.0, 1.0));vec2 _1552 = vec2(vec3(textureSize(map, 0)).xy);vec2 _1555 = vec2(1.0) / _1552;vec3 _1560 = shadowPosition.xyz * (1.0 / shadowPosition.w);vec3 _6297 = dFdx(_1560);vec3 _6298 = dFdy(_1560);vec2 _6317 = inverse(transpose(mat2(vec2(_6297.xy), vec2(_6298.xy)))) * vec2(_6297.z, _6298.z);float _7020;_7020 = frameUniforms.s;_7020 = shadowUniforms.a[index].bulbRadiusLs / zLight;float _6343 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _6345 = cos(_6343);float _6347 = sin(_6343);mat2 _6360 = mat2(vec2(_6345, _6347), vec2(-_6347, _6345));vec2 _1574 = _1560.xy;float _1576 = _1560.z;vec2 _1579 = _1555 * _7020;_7023 = 0.0;_7022 = 0.0;for (uint _7021 = 0u; _7021 < 16u; )vec2 _6384 = _6360 * (poissonDisk[_7021] * _1579);vec4 _6392 = textureLod(map, vec3(_1574 + _6384, float(layer)), 0.0);float _6393 = _6392.x;float _6400 = step(dot(_6317, _6384), _6393 - _1576);_7023 += (_6393 * _6400);_7022 += _6400;_7021++;if (_7023 == 0.0)float _1596 = _7023 / _7022;float _7024;_7024 = (_1596 - _1576) / (1.0 - _1596);_7024 = ((shadowUniforms.a[index].nearOverFarMinusNear + _1596) / (shadowUniforms.a[index].nearOverFarMinusNear + _1576)) - 1.0;vec2 _1612 = _1555 * (_7020 * (_7024 * frameUniforms.u));_7026 = 0.0;for (uint _7025 = 0u; _7025 < 16u; )vec2 _6460 = _6360 * (poissonDisk[_7025] * _1612);vec2 _6462 = _1574 + _6460;vec2 _6467 = fract((_6462 * _1552) - vec2(0.5));vec4 _6484 = step(vec4(dot(_6317, _6460)), textureGather(map, vec3(_6462, float(layer))) - vec4(_1576));float _6490 = _6467.x;_7026 += mix(mix(_6484.w, _6484.z, _6490), mix(_6484.x, _6484.y, _6490), _6467.y);_7025++;return 1.0 - (_7026 * 0.0625);vec4 _7027;float _7028;_7028 = 0.0;_7027 = getCascadeLightSpacePosition(param);_7028 = dot(shadowUniforms.a[index].lightFromWorldZ, vec4(shading_position, 1.0));_7027 = (shadowUniforms.a[index].lightFromWorldMatrix[0] * shading_position.x) + ((shadowUniforms.a[index].lightFromWorldMatrix[1] * shading_position.y) + ((shadowUniforms.a[index].lightFromWorldMatrix[2] * shading_position.z) + shadowUniforms.a[index].lightFromWorldMatrix[3]));vec4 _5970 = texture(shadowMap, vec3(_7027.xy * (1.0 / _7027.w), float(layer)));float _5980 = exp(frameUniforms.bzz * ((_7027.z * 2.0) - 1.0));float _5992 = frameUniforms.czz * _5980;float _6006 = _5970.x;float _6011 = max(_5970.y - (_6006 * _6006), _5992 * _5992);float _6013 = _5980 - _6006;return (_5980 <= _6006) ? 1.0 : clamp(((_6011 / (_6011 + (_6013 * _6013))) - frameUniforms.dzz) / (1.0 - frameUniforms.dzz), 0.0, 1.0);return ShadowSample_DPCF(DIRECTIONAL, shadowMap, layer, index, _7027, _7028);return ShadowSample_PCSS(DIRECTIONAL, shadowMap, layer, index, _7027, _7028);vec3 _6047 = _7027.xyz * (1.0 / _7027.w);vec4 _6074 = step(vec4(0.0), _6047.zzzz - textureGather(shadowMap, vec3(_6047.xy, float(layer))));vec2 _6076 = fract((_6047.xy * vec2(vec3(textureSize(shadowMap, 0)).xy)) - vec2(0.5));float _6082 = _6076.x;return mix(mix(_6074.w, _6074.z, _6082), mix(_6074.x, _6074.y, _6082), _6076.y);float _5412 = clamp(dot(shading_normal, frameUniforms.q), 0.0, 1.0);if (_5412 <= 0.0)float _7049;if (_5412 > 0.0)bvec4 _5435 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z));uint _5445 = clamp(uint(dot(vec4(_5435.x ? vec4(1.0).x : vec4(0.0).x, _5435.y ? vec4(1.0).y : vec4(0.0).y, _5435.z ? vec4(1.0).z : vec4(0.0).z, _5435.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);float _7034;if (((frameUniforms.iz & 1u) != 0u) && ((frameUniforms.uz & ((1u << _5445) << 8u)) != 0u))_7034 = shadow(true, light_shadowMap, _5445, 0u, _5445);_7034 = 1.0;float _7042;if (((frameUniforms.iz & 2u) != 0u) && (_7034 > 0.0))float _7044;uint _5491 = (frameUniforms.iz >> 8u) & 255u;vec4 _5599 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _5606 = frameUniforms.e * vec4(shading_position + (frameUniforms.q * frameUniforms.kz), 1.0);vec4 _5612 = _5599 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));vec3 _5618 = _5599.xyz * (1.0 / _5599.w);vec3 _5625 = _5606.xyz * (1.0 / _5606.w);float _5652 = _5618.z;vec3 _5655 = vec3((_5618.xy * 0.5) + vec2(0.5), _5652);vec3 _5660 = vec3((_5625.xy * 0.5) + vec2(0.5), _5625.z) - _5655;float _5501 = 1.0 / float(_5491);float _5509 = abs((_5612.xyz * (1.0 / _5612.w)).z - _5652) * _5501;float _5521 = (_5501 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _5501;vec3 _7038;_7038 = _7033;vec3 _5534;float _7040;uint _7035 = 0u;float _7036 = _5521;if (_7035 < _5491)_5534 = _5655 + (_5660 * _7036);if (abs(_5509 - (textureLod(light_structure, _5534.xy, 0.0).x - _5534.z)) < _5509)_7040 = 1.0;_7037 = _5534;_7036 += _5501;_7035++;_7038 = _5534;_7040 = 0.0;_7037 = _7038;vec2 _5569 = max((abs(_7037.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_7044 = _7040 * clamp(1.0 - dot(_5569, _5569), 0.0, 1.0);_7044 = 0.0;_7042 = _7044;_7042 = 0.0;float _3077 = _7034 * (1.0 - _7042);if (_3077 <= 0.0)_7049 = _3077;_7049 = 1.0;vec3 _5693 = normalize(shading_view + frameUniforms.q);float _5696 = clamp(_5412, 0.0, 1.0);float _5700 = clamp(dot(shading_normal, _5693), 0.0, 1.0);float _5788 = _5700 * pixel.roughness;float _5795 = pixel.roughness / ((1.0 - (_5700 * _5700)) + (_5788 * _5788));float _5818 = pixel.roughness * pixel.roughness;float _5865 = 1.0 - clamp(dot(frameUniforms.q, _5693), 0.0, 1.0);float _5874 = _5865 * _5865;color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_5874 * _5874) * _5865))) * (((_5795 * _5795) * 0.3183098733425140380859375) * (0.5 / ((_5696 * sqrt(((shading_NoV - (_5818 * shading_NoV)) * shading_NoV) + _5818)) + (shading_NoV * sqrt(((_5696 - (_5818 * _5696)) * _5696) + _5818)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _5696) * _7049));vec2 _3698 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);vec3 _3736 = reflect(-shading_view, shading_normal);vec4 _6802 = vec4(1.0);_6802.x = materialParams.a.x;vec4 _6804 = _6802;_6804.y = materialParams.a.y;vec4 _6806 = _6804;_6806.z = materialParams.a.z;float _3840 = 1.0 - materialParams.b;vec3 _3841 = _6806.xyz * _3840;vec3 _3858 = (_6806.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _3840);float _3868 = clamp(materialParams.c, 0.04500000178813934326171875, 1.0);float _3878 = _3868 * _3868;vec4 _3912 = textureLod(light_iblDFG, vec2(shading_NoV, _3868), 0.0);vec3 _3897 = vec3(1.0) + (_3858 * ((1.0 / _3912.y) - 1.0));float _4046 = _3698.x;vec3 _4059 = mix(_3912.xxx, _3912.yyy, _3858);float _4072 = _3878 * _3878;SSAOInterpolationCache _3921 = SSAOInterpolationCache(_6944, vec3(_4046, _3698.y, _7061).xy);float _3963 = evaluateSSAO(_3921);float _3967 = min(1.0, _3963);float _4189 = clamp((pow(shading_NoV + _3967, exp2(((-16.0) * _3878) - 1.0)) - 1.0) + _3967, 0.0, 1.0);float _6947;vec3 _4136 = vec3(_3921.uv, 1.0);vec3 _6809 = _6942;_6809.x = dot(textureGather(light_ssao, _4136), _3921.weights);vec3 _6811 = _6809;_6811.y = dot(textureGather(light_ssao, _4136, 1), _3921.weights);vec3 _6813 = _6811;_6813.z = dot(textureGather(light_ssao, _4136, 2), _3921.weights);_6945 = _6813;_6945 = textureLod(light_ssao, vec3(_3921.uv, 1.0), 0.0).xyz;float _4212 = exp2((-3.3219280242919921875) * _4072);float _4201 = sqrt(1.0 - _3967);float _4202 = _4212;float _4203 = dot(normalize((_6945 * 2.0) - vec3(1.0)), _3736);_6947 = min(_4189, mix(1.0, sphericalCapsIntersection(_4201, _4202, _4203) / (1.0 - _4212), smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _3878)));_6947 = _4189;vec3 _3757 = ((((_4059 * textureLod(light_iblSpecular, mix(_3736, shading_normal, vec3(_4072)), (frameUniforms.fz * _3868) * (2.0 - _3868)).xyz) * (_3897 * 1.0)) * max(vec3(_6947), ((((((_3858 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _6947) + ((_3858 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _6947) + ((_3858 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _6947)) * frameUniforms.az) + (((((_3841 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _4059)) * 1.0) * max(vec3(_3967), ((((((_3841 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _3967) + ((_3841 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _3967) + ((_3841 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _3967)) * frameUniforms.az);evaluateDirectionalLight(MaterialInputs(_6806, materialParams.c, materialParams.b, materialParams.d, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _6942, _6943, _6943, _6943, _6943, _6942), PixelParams(_3841, _3868, materialParams.c, _3858, _3878, _3912.xyz, _3897), _3757);uvec2 _4449 = uvec2((vec3(_4046, _3698.y, gl_FragCoord.z).xy * frameUniforms.i.xy) * vec2(frameUniforms.z, frameUniforms.v));uint _4431 = ((_4449.x * frameUniforms.r) + (_4449.y * frameUniforms.x.x)) + (uint(clamp((log2((frameUniforms.w.x * gl_FragCoord.z) + frameUniforms.w.y) * frameUniforms.w.z) + frameUniforms.w.w, 0.0, frameUniforms.w.w - 1.0)) * frameUniforms.x.y);uvec4 _4488 = texelFetch(light_froxels, ivec2(int(_4431 & 63u), int(_4431 >> 6u)), 0);uint _4491 = _4488.x;uint _4326 = _4491 + (_4488.y & 255u);uint _4329 = objectUniforms.e & 255u;vec4 _6957;vec3 _6973;_6973 = _6942;_6957 = _6944;_6956 = _3757;vec4 _6840;vec3 _7000;vec3 _7010;for (uint _6955 = _4491; _6955 < _4326; _6973 = _7010, _6957 = _6840, _6956 = _7000, _6955++)uvec4 _4633 = froxelRecordUniforms.a[_6955 >> 4u];uint _4649 = (_4633[(_6955 >> 2u) & 3u] >> ((_6955 & 3u) * 8u)) & 255u;vec2 _4535 = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_4649][2].x));uint _4552 = floatBitsToUint(lightsUniforms.a[_4649][3].z);uint _4555 = floatBitsToUint(lightsUniforms.a[_4649][3].w);vec3 _4560 = lightsUniforms.a[_4649][0].xyz - shading_position;vec4 _6834 = _6957;_6834.x = _4535.x;vec4 _6836 = _6834;_6836.y = _4535.y;vec4 _6838 = _6836;_6838.z = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_4649][2].y)).x;float _4655 = lightsUniforms.a[_4649][3].y * frameUniforms.bz;_6840 = _6838;_6840.w = _4655;vec3 _4575 = normalize(_4560);float _4664 = dot(_4560, _4560);float _4694 = _4664 * lightsUniforms.a[_4649][0].w;float _4699 = clamp(1.0 - (_4694 * _4694), 0.0, 1.0);vec3 _4670 = shading_position - frameUniforms.j;float _4687 = ((_4699 * _4699) * clamp(frameUniforms.n.x - (dot(_4670, _4670) * frameUniforms.n.y), 0.0, 1.0)) / max(_4664, 9.9999997473787516355514526367188e-05);float _4586 = clamp(dot(shading_normal, _4575), 0.0, 1.0);uint _6960;uint _6961;bool _6962;bool _6963;if ((_4552 & 1u) == 1u)float _4720 = clamp((dot(-lightsUniforms.a[_4649][1].xyz, _4575) * lightsUniforms.a[_4649][2].z) + lightsUniforms.a[_4649][2].w, 0.0, 1.0);_6964 = _4687 * (_4720 * _4720);_6963 = (_4555 & 65536u) != 0u;_6962 = (_4552 & 16u) != 0u;_6961 = (_4552 >> 8u) & 255u;_6960 = (_4552 >> 16u) & 255u;_6964 = _4687;_6963 = false;_6962 = false;_6961 = 0u;_6960 = 0u;if ((_4555 & _4329) == 0u)_7010 = _6973;_7000 = _6956;bool _4347 = _4586 <= 0.0;bool _4354;if (!_4347)_4354 = _6964 <= 0.0;_4354 = _4347;if (_4354)vec3 _7013;if (_4586 > 0.0)float _6965;if (_6963)_6965 = shadow(false, light_shadowMap, _6960, _6961, 0u);_6965 = 1.0;float _6980;vec3 _7011;if (_6962 && (_6965 > 0.0))float _6981;vec3 _7012;uint _4747 = (frameUniforms.iz >> 8u) & 255u;vec4 _4855 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _4862 = frameUniforms.e * vec4(shading_position + (_4575 * frameUniforms.kz), 1.0);vec4 _4868 = _4855 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));vec3 _4874 = _4855.xyz * (1.0 / _4855.w);vec3 _4881 = _4862.xyz * (1.0 / _4862.w);float _4908 = _4874.z;vec3 _4911 = vec3((_4874.xy * 0.5) + vec2(0.5), _4908);vec3 _4916 = vec3((_4881.xy * 0.5) + vec2(0.5), _4881.z) - _4911;float _4757 = 1.0 / float(_4747);float _4765 = abs((_4868.xyz * (1.0 / _4868.w)).z - _4908) * _4757;float _4777 = (_4757 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _4757;_6969 = _6973;vec3 _6968;float _6976;uint _6966 = 0u;float _6967 = _4777;if (_6966 < _4747)_4790 = _4911 + (_4916 * _6967);if (abs(_4765 - (textureLod(light_structure, _4790.xy, 0.0).x - _4790.z)) < _4765)_6976 = 1.0;_6968 = _4790;_6967 += _4757;_6969 = _4790;_6976 = 0.0;_6968 = _6969;vec2 _4825 = max((abs(_6968.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_7012 = _6968;_6981 = _6965 * (1.0 - (_6976 * clamp(1.0 - dot(_4825, _4825), 0.0, 1.0)));_7012 = _6973;_6981 = _6965;_7011 = _7012;_6980 = _6981;_7011 = _6973;_6980 = _6965;if (_6980 <= 0.0)_7010 = _7011;_7013 = _7011;_6982 = _6980;_7013 = _6973;vec3 _4949 = normalize(shading_view + _4575);float _4952 = clamp(_4586, 0.0, 1.0);float _4956 = clamp(dot(shading_normal, _4949), 0.0, 1.0);float _5044 = _4956 * _3878;float _5051 = _3878 / ((1.0 - (_4956 * _4956)) + (_5044 * _5044));float _5121 = 1.0 - clamp(dot(_4575, _4949), 0.0, 1.0);float _5130 = _5121 * _5121;_7010 = _7013;_7000 = _6956 + ((((_3841 * 0.3183098733425140380859375) + (((_3858 + ((vec3(clamp(dot(_3858, vec3(16.5)), 0.0, 1.0)) - _3858) * ((_5130 * _5130) * _5121))) * (((_5051 * _5051) * 0.3183098733425140380859375) * (0.5 / ((_4952 * sqrt(((shading_NoV - (_4072 * shading_NoV)) * shading_NoV) + _4072)) + (shading_NoV * sqrt(((_4952 - (_4072 * _4952)) * _4952) + _4072)))))) * _3897)) * _6840.xyz) * (((_4655 * _6964) * _4952) * _6982));fragColor = vec4(_6956, 1.0);bvec4 _5171 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z));uint param = clamp(uint(dot(vec4(_5171.x ? vec4(1.0).x : vec4(0.0).x, _5171.y ? vec4(1.0).y : vec4(0.0).y, _5171.z ? vec4(1.0).z : vec4(0.0).z, _5171.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);vec4 _3666 = fragColor;vec3 _3668 = _3666.xyz * uintToColorDebug(param);fragColor.x = _3668.x;fragColor.y = _3668.y;fragColor.z = _3668.z;vec4 _226 = (objectUniforms.a[0] * mesh_position.x) + ((objectUniforms.a[1] * mesh_position.y) + ((objectUniforms.a[2] * mesh_position.z) + objectUniforms.a[3]));gl_Position = frameUniforms.e * _226;vertex_worldPosition.w = frameUniforms.bzz * (((((-(frameUniforms.a * _226).z) * frameUniforms.gzz) - frameUniforms.hzz) * 2.0) - 1.0);float _42 = exp(vertex_worldPosition.w);float _140 = dFdx(_42);float _141 = dFdy(_42);vec4 _666;ivec3 _665;_665 = ivec3(gl_VertexID % 2048, gl_VertexID / 2048, 0);for (uint _661 = 0u; _661 < objectUniforms.c; )ivec3 _626 = _665;_626.z = int(_661);_665 = _626;_662 += (texelFetch(morphTargetBuffer_positions, _626, 0) * morphingUniforms.a[_661].x);_661++;_663 = mesh_position;vec4 _664;mat4x3 _489 = transpose(bonesUniforms.a[mesh_bone_indices.x].transform);mat4x3 _516 = transpose(bonesUniforms.a[mesh_bone_indices.y].transform);mat4x3 _543 = transpose(bonesUniforms.a[mesh_bone_indices.z].transform);mat4x3 _570 = transpose(bonesUniforms.a[mesh_bone_indices.w].transform);vec3 _482 = (((((_489[0] * _663.x) + ((_489[1] * _663.y) + ((_489[2] * _663.z) + _489[3]))) * mesh_bone_weights.x) + (((_516[0] * _663.x) + ((_516[1] * _663.y) + ((_516[2] * _663.z) + _516[3]))) * mesh_bone_weights.y)) + (((_543[0] * _663.x) + ((_543[1] * _663.y) + ((_543[2] * _663.z) + _543[3]))) * mesh_bone_weights.z)) + (((_570[0] * _663.x) + ((_570[1] * _663.y) + ((_570[2] * _663.z) + _570[3]))) * mesh_bone_weights.w);vec4 _656 = _666;_656.x = _482.x;vec4 _658 = _656;_658.y = _482.y;vec4 _660 = _658;_660.z = _482.z;_664 = _660;_664 = _663;vec4 _605 = (objectUniforms.a[0] * _664.x) + ((objectUniforms.a[1] * _664.y) + ((objectUniforms.a[2] * _664.z) + objectUniforms.a[3]));gl_Position = frameUniforms.e * _605;vertex_worldPosition.w = frameUniforms.bzz * (((((-(frameUniforms.a * _605).z) * frameUniforms.gzz) - frameUniforms.hzz) * 2.0) - 1.0);vec3 _5712;float _5713;vec4 _5714;vec4 _5741;vec4 _5742;vec3 _5746;float _5774;vec3 _855;vec2 _2264 = cache.uv;vec4 _2276 = textureGather(light_ssao, vec3(cache.uv, 0.0), 1);vec4 _2284 = textureGather(light_ssao, vec3(cache.uv, 0.0), 2);vec4 _5658 = _5742;_5658.x = (_2276.x * 0.996108949184417724609375) + (_2284.x * 0.00389105058275163173675537109375);vec4 _5664 = _5658;_5664.y = (_2276.y * 0.996108949184417724609375) + (_2284.y * 0.00389105058275163173675537109375);vec4 _5670 = _5664;_5670.z = (_2276.z * 0.996108949184417724609375) + (_2284.z * 0.00389105058275163173675537109375);vec4 _5676 = _5670;_5676.w = (_2276.w * 0.996108949184417724609375) + (_2284.w * 0.00389105058275163173675537109375);vec2 _2331 = fract((cache.uv * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _2334 = _2331.x;float _2335 = 1.0 - _2334;float _2337 = _2331.y;vec4 _5680 = _5742;_5680.x = _2335 * _2337;vec4 _5684 = _5680;_5684.y = _2334 * _2337;float _2350 = 1.0 - _2337;vec4 _5688 = _5684;_5688.z = _2334 * _2350;vec4 _5692 = _5688;_5692.w = _2335 * _2350;vec4 _2383 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_5676 * (-frameUniforms.gz))) * frameUniforms.vz;vec4 _2393 = max(vec4(6.103515625e-05), vec4(1.0) - (_2383 * _2383)) * _5692;cache.weights = _2393 / vec4(((_2393.x + _2393.y) + _2393.z) + _2393.w);return dot(textureGather(light_ssao, vec3(_2264, 0.0)), cache.weights);float _4176 = (((-0.15658269822597503662109375) * cosCap1) + 1.57079601287841796875) * sqrt(1.0 - cosCap1);float _4187 = (((-0.15658269822597503662109375) * cosCap2) + 1.57079601287841796875) * sqrt(1.0 - cosCap2);float _4194 = abs(cosDistance);float _4202 = (((-0.15658269822597503662109375) * _4194) + 1.57079601287841796875) * sqrt(1.0 - _4194);float _5743;_5743 = _4202;_5743 = 3.1415927410125732421875 - _4202;if (min(_4176, _4187) <= (max(_4176, _4187) - _5743))_2471 = _4176 + _4187;if (_2471 <= _5743)float _2481 = abs(_4176 - _4187);float _2494 = 1.0 - clamp((_5743 - _2481) / max(_2471 - _2481, 9.9999997473787516355514526367188e-05), 0.0, 1.0);return ((_2494 * _2494) * (((-2.0) * _2494) + 3.0)) * (1.0 - max(cosCap1, cosCap2));ivec2 _2783 = textureSize(light_iblSpecular, int(frameUniforms.fz));vec3 _2797 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _2804 = _2797 * (1.0 / float(_2783.x));vec3 _2808 = cross(_2797, n) * (1.0 / float(_2783.y));vec3 _2811 = n - _2804;vec3 _2816 = n + _2804;return (((textureLod(light_iblSpecular, _2811 - _2808, frameUniforms.fz).xyz + textureLod(light_iblSpecular, _2816 - _2808, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _2816 + _2808, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _2811 + _2808, frameUniforms.fz).xyz) * 0.25;vec3 _1537 = shadowPosition.xyz * (1.0 / shadowPosition.w);vec3 _4995 = dFdx(_1537);vec3 _4996 = dFdy(_1537);vec2 _5015 = inverse(transpose(mat2(vec2(_4995.xy), vec2(_4996.xy)))) * vec2(_4995.z, _4996.z);float _5727;_5727 = frameUniforms.s;_5727 = shadowUniforms.a[index].bulbRadiusLs / zLight;float _5041 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _5043 = cos(_5041);float _5045 = sin(_5041);mat2 _5058 = mat2(vec2(_5043, _5045), vec2(-_5045, _5043));vec2 _1561 = _1537.xy;float _1563 = _1537.z;vec2 _1566 = (vec2(1.0) / vec2(vec3(textureSize(map, 0)).xy)) * _5727;float _5729;float _5730;_5730 = 0.0;_5729 = 0.0;for (uint _5728 = 0u; _5728 < 12u; )vec2 _5082 = _5058 * (poissonDisk[_5728] * _1566);vec4 _5090 = textureLod(map, vec3(_1561 + _5082, float(layer)), 0.0);float _5091 = _5090.x;float _5098 = step(dot(_5015, _5082), _5091 - _1563);_5730 += (_5091 * _5098);_5729 += _5098;_5728++;if (_5730 == 0.0)float _1583 = _5730 / _5729;float _5731;_5731 = (_1583 - _1563) / (1.0 - _1583);_5731 = ((shadowUniforms.a[index].nearOverFarMinusNear + _1583) / (shadowUniforms.a[index].nearOverFarMinusNear + _1563)) - 1.0;float _5143 = (_5729 * 0.16666667163372039794921875) - 1.0;float _5145 = sign(_5143);float _5149 = 1.0 - (_5145 * _5143);return 1.0 - mix((0.5 * (_5145 - (((_5149 * _5149) * _5149) * _5145))) + 0.5, _5729 * 0.083333335816860198974609375, clamp(_5731 * frameUniforms.u, 0.0, 1.0));vec2 _1612 = vec2(vec3(textureSize(map, 0)).xy);vec2 _1615 = vec2(1.0) / _1612;vec3 _1620 = shadowPosition.xyz * (1.0 / shadowPosition.w);vec3 _5168 = dFdx(_1620);vec3 _5169 = dFdy(_1620);vec2 _5188 = inverse(transpose(mat2(vec2(_5168.xy), vec2(_5169.xy)))) * vec2(_5168.z, _5169.z);float _5733;_5733 = frameUniforms.s;_5733 = shadowUniforms.a[index].bulbRadiusLs / zLight;float _5214 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _5216 = cos(_5214);float _5218 = sin(_5214);mat2 _5231 = mat2(vec2(_5216, _5218), vec2(-_5218, _5216));vec2 _1634 = _1620.xy;float _1636 = _1620.z;vec2 _1639 = _1615 * _5733;float _5735;float _5736;_5736 = 0.0;_5735 = 0.0;for (uint _5734 = 0u; _5734 < 16u; )vec2 _5255 = _5231 * (poissonDisk[_5734] * _1639);vec4 _5263 = textureLod(map, vec3(_1634 + _5255, float(layer)), 0.0);float _5264 = _5263.x;float _5271 = step(dot(_5188, _5255), _5264 - _1636);_5736 += (_5264 * _5271);_5735 += _5271;_5734++;if (_5736 == 0.0)float _1656 = _5736 / _5735;float _5737;_5737 = (_1656 - _1636) / (1.0 - _1656);_5737 = ((shadowUniforms.a[index].nearOverFarMinusNear + _1656) / (shadowUniforms.a[index].nearOverFarMinusNear + _1636)) - 1.0;vec2 _1672 = _1615 * (_5733 * (_5737 * frameUniforms.u));float _5739;_5739 = 0.0;for (uint _5738 = 0u; _5738 < 16u; )vec2 _5331 = _5231 * (poissonDisk[_5738] * _1672);vec2 _5333 = _1634 + _5331;vec2 _5338 = fract((_5333 * _1612) - vec2(0.5));vec4 _5355 = step(vec4(dot(_5188, _5331)), textureGather(map, vec3(_5333, float(layer))) - vec4(_1636));float _5361 = _5338.x;_5739 += mix(mix(_5355.w, _5355.z, _5361), mix(_5355.x, _5355.y, _5361), _5338.y);_5738++;return 1.0 - (_5739 * 0.0625);vec4 _5740;_5740 = getCascadeLightSpacePosition(param);_5740 = _5741;vec4 _4841 = texture(shadowMap, vec3(_5740.xy * (1.0 / _5740.w), float(layer)));float _4851 = exp(frameUniforms.bzz * ((_5740.z * 2.0) - 1.0));float _4863 = frameUniforms.czz * _4851;float _4877 = _4841.x;float _4882 = max(_4841.y - (_4877 * _4877), _4863 * _4863);float _4884 = _4851 - _4877;return (_4851 <= _4877) ? 1.0 : clamp(((_4882 / (_4882 + (_4884 * _4884))) - frameUniforms.dzz) / (1.0 - frameUniforms.dzz), 0.0, 1.0);return ShadowSample_DPCF(DIRECTIONAL, shadowMap, layer, index, _5740, 0.0);return ShadowSample_PCSS(DIRECTIONAL, shadowMap, layer, index, _5740, 0.0);vec3 _4918 = _5740.xyz * (1.0 / _5740.w);vec4 _4945 = step(vec4(0.0), _4918.zzzz - textureGather(shadowMap, vec3(_4918.xy, float(layer))));vec2 _4947 = fract((_4918.xy * vec2(vec3(textureSize(shadowMap, 0)).xy)) - vec2(0.5));float _4953 = _4947.x;return mix(mix(_4945.w, _4945.z, _4953), mix(_4945.x, _4945.y, _4953), _4947.y);float _4334 = clamp(dot(shading_normal, frameUniforms.q), 0.0, 1.0);if (_4334 <= 0.0)float _5762;if (_4334 > 0.0)bvec4 _4357 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z));uint _4367 = clamp(uint(dot(vec4(_4357.x ? vec4(1.0).x : vec4(0.0).x, _4357.y ? vec4(1.0).y : vec4(0.0).y, _4357.z ? vec4(1.0).z : vec4(0.0).z, _4357.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);float _5747;if (((frameUniforms.iz & 1u) != 0u) && ((frameUniforms.uz & ((1u << _4367) << 8u)) != 0u))_5747 = shadow(true, light_shadowMap, _4367, 0u, _4367);_5747 = 1.0;float _5755;if (((frameUniforms.iz & 2u) != 0u) && (_5747 > 0.0))float _5757;uint _4413 = (frameUniforms.iz >> 8u) & 255u;vec4 _4521 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _4528 = frameUniforms.e * vec4(shading_position + (frameUniforms.q * frameUniforms.kz), 1.0);vec4 _4534 = _4521 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));vec3 _4540 = _4521.xyz * (1.0 / _4521.w);vec3 _4547 = _4528.xyz * (1.0 / _4528.w);float _4574 = _4540.z;vec3 _4577 = vec3((_4540.xy * 0.5) + vec2(0.5), _4574);vec3 _4582 = vec3((_4547.xy * 0.5) + vec2(0.5), _4547.z) - _4577;float _4423 = 1.0 / float(_4413);float _4431 = abs((_4534.xyz * (1.0 / _4534.w)).z - _4574) * _4423;float _4443 = (_4423 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _4423;vec3 _5751;_5751 = _5746;vec3 _4456;vec3 _5750;float _5753;uint _5748 = 0u;float _5749 = _4443;if (_5748 < _4413)_4456 = _4577 + (_4582 * _5749);if (abs(_4431 - (textureLod(light_structure, _4456.xy, 0.0).x - _4456.z)) < _4431)_5753 = 1.0;_5750 = _4456;_5749 += _4423;_5748++;_5751 = _4456;_5753 = 0.0;_5750 = _5751;vec2 _4491 = max((abs(_5750.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_5757 = _5753 * clamp(1.0 - dot(_4491, _4491), 0.0, 1.0);_5757 = 0.0;_5755 = _5757;_5755 = 0.0;float _3119 = _5747 * (1.0 - _5755);if (_3119 <= 0.0)_5762 = _3119;_5762 = 1.0;vec3 _4615 = normalize(shading_view + frameUniforms.q);float _4618 = clamp(_4334, 0.0, 1.0);float _4622 = clamp(dot(shading_normal, _4615), 0.0, 1.0);float _4710 = _4622 * pixel.roughness;float _4717 = pixel.roughness / ((1.0 - (_4622 * _4622)) + (_4710 * _4710));float _4740 = pixel.roughness * pixel.roughness;float _4787 = 1.0 - clamp(dot(frameUniforms.q, _4615), 0.0, 1.0);float _4796 = _4787 * _4787;color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_4796 * _4796) * _4787))) * (((_4717 * _4717) * 0.3183098733425140380859375) * (0.5 / ((_4618 * sqrt(((shading_NoV - (_4740 * shading_NoV)) * shading_NoV) + _4740)) + (shading_NoV * sqrt(((_4618 - (_4740 * _4618)) * _4618) + _4740)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _4618) * _5762));vec3 _3369 = reflect(-shading_view, shading_normal);vec4 _5601 = vec4(1.0);_5601.x = materialParams.a.x;vec4 _5603 = _5601;_5603.y = materialParams.a.y;vec4 _5605 = _5603;_5605.z = materialParams.a.z;float _3468 = 1.0 - materialParams.b;vec3 _3469 = _5605.xyz * _3468;vec3 _3486 = (_5605.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _3468);float _3496 = clamp(materialParams.c, 0.04500000178813934326171875, 1.0);float _3506 = _3496 * _3496;vec4 _3540 = textureLod(light_iblDFG, vec2(shading_NoV, _3496), 0.0);vec3 _3525 = vec3(1.0) + (_3486 * ((1.0 / _3540.y) - 1.0));vec3 _3687 = mix(_3540.xxx, _3540.yyy, _3486);float _3700 = _3506 * _3506;SSAOInterpolationCache _3549 = SSAOInterpolationCache(_5714, vec3((vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5), _5774).xy);float _3591 = evaluateSSAO(_3549);float _3595 = min(1.0, _3591);float _3817 = clamp((pow(shading_NoV + _3595, exp2(((-16.0) * _3506) - 1.0)) - 1.0) + _3595, 0.0, 1.0);float _5717;vec3 _5715;vec3 _3764 = vec3(_3549.uv, 1.0);vec3 _5608 = _5712;_5608.x = dot(textureGather(light_ssao, _3764), _3549.weights);vec3 _5610 = _5608;_5610.y = dot(textureGather(light_ssao, _3764, 1), _3549.weights);vec3 _5612 = _5610;_5612.z = dot(textureGather(light_ssao, _3764, 2), _3549.weights);_5715 = _5612;_5715 = textureLod(light_ssao, vec3(_3549.uv, 1.0), 0.0).xyz;float _3840 = exp2((-3.3219280242919921875) * _3700);float _3829 = sqrt(1.0 - _3595);float _3830 = _3840;float _3831 = dot(normalize((_5715 * 2.0) - vec3(1.0)), _3369);_5717 = min(_3817, mix(1.0, sphericalCapsIntersection(_3829, _3830, _3831) / (1.0 - _3840), smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _3506)));_5717 = _3817;vec3 _3390 = ((((_3687 * textureLod(light_iblSpecular, mix(_3369, shading_normal, vec3(_3700)), (frameUniforms.fz * _3496) * (2.0 - _3496)).xyz) * (_3525 * 1.0)) * max(vec3(_5717), ((((((_3486 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _5717) + ((_3486 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _5717) + ((_3486 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _5717)) * frameUniforms.az) + (((((_3469 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _3687)) * 1.0) * max(vec3(_3595), ((((((_3469 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _3595) + ((_3469 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _3595) + ((_3469 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _3595)) * frameUniforms.az);evaluateDirectionalLight(MaterialInputs(_5605, materialParams.c, materialParams.b, materialParams.d, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _5712, _5713, _5713, _5713, _5713, _5712), PixelParams(_3469, _3496, materialParams.c, _3486, _3506, _3540.xyz, _3525), _3390);fragColor = vec4(_3390, 1.0);bvec4 _3953 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z));uint param = clamp(uint(dot(vec4(_3953.x ? vec4(1.0).x : vec4(0.0).x, _3953.y ? vec4(1.0).y : vec4(0.0).y, _3953.z ? vec4(1.0).z : vec4(0.0).z, _3953.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);vec4 _3275 = fragColor;vec3 _3277 = _3275.xyz * uintToColorDebug(param);fragColor.x = _3277.x;fragColor.y = _3277.y;fragColor.z = _3277.z;vec3 _3288 = shading_position - frameUniforms.j;vec4 _5726;float _4018 = length(_3288);float _4021 = max(0.001000000047497451305389404296875, _3288.y);float _4031 = frameUniforms.qz * ((1.0 - exp((-frameUniforms.oz) * _4021)) / _4021);float _4047 = min(max(1.0 - exp2(-(_4031 * max(_4018 - frameUniforms.lz, 0.0))), 0.0), frameUniforms.mz);vec3 _5722;_5722 = frameUniforms.pz * (textureLod(light_iblSpecular, _3288, frameUniforms.fz).xyz * frameUniforms.az);_5722 = frameUniforms.pz;vec3 _4069 = _5722 * _4047;vec3 _5725;_5725 = _4069 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_3288, frameUniforms.q) / _4018, 0.0), frameUniforms.sz) * max(1.0 - exp2(-(_4031 * max(_4018 - frameUniforms.rz, 0.0))), 0.0)));_5725 = _4069;vec3 _4117 = (fragColor.xyz * (1.0 - _4047)) + _5725;vec4 _5616 = fragColor;_5616.x = _4117.x;_5618.y = _4117.y;vec4 _5620 = _5618;_5620.z = _4117.z;_5726 = _5620;_5726 = fragColor;fragColor = _5726;vec3 _6330;vec4 _6332;vec4 _6421;vec4 _6423;float _6437;vec2 _2251 = cache.uv;vec4 _2263 = textureGather(light_ssao, vec3(cache.uv, 0.0), 1);vec4 _2271 = textureGather(light_ssao, vec3(cache.uv, 0.0), 2);vec4 _6285 = _6423;_6285.x = (_2263.x * 0.996108949184417724609375) + (_2271.x * 0.00389105058275163173675537109375);vec4 _6291 = _6285;_6291.y = (_2263.y * 0.996108949184417724609375) + (_2271.y * 0.00389105058275163173675537109375);vec4 _6297 = _6291;_6297.z = (_2263.z * 0.996108949184417724609375) + (_2271.z * 0.00389105058275163173675537109375);vec4 _6303 = _6297;_6303.w = (_2263.w * 0.996108949184417724609375) + (_2271.w * 0.00389105058275163173675537109375);vec2 _2318 = fract((cache.uv * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _2321 = _2318.x;float _2322 = 1.0 - _2321;float _2324 = _2318.y;vec4 _6307 = _6423;_6307.x = _2322 * _2324;vec4 _6311 = _6307;_6311.y = _2321 * _2324;float _2337 = 1.0 - _2324;vec4 _6315 = _6311;_6315.z = _2321 * _2337;vec4 _6319 = _6315;_6319.w = _2322 * _2337;vec4 _2370 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_6303 * (-frameUniforms.gz))) * frameUniforms.vz;vec4 _2380 = max(vec4(6.103515625e-05), vec4(1.0) - (_2370 * _2370)) * _6319;cache.weights = _2380 / vec4(((_2380.x + _2380.y) + _2380.z) + _2380.w);return dot(textureGather(light_ssao, vec3(_2251, 0.0)), cache.weights);float _5244 = (((-0.15658269822597503662109375) * cosCap1) + 1.57079601287841796875) * sqrt(1.0 - cosCap1);float _5255 = (((-0.15658269822597503662109375) * cosCap2) + 1.57079601287841796875) * sqrt(1.0 - cosCap2);float _5262 = abs(cosDistance);float _5270 = (((-0.15658269822597503662109375) * _5262) + 1.57079601287841796875) * sqrt(1.0 - _5262);float _6424;_6424 = _5270;_6424 = 3.1415927410125732421875 - _5270;float _2458;if (min(_5244, _5255) <= (max(_5244, _5255) - _6424))_2458 = _5244 + _5255;if (_2458 <= _6424)float _2468 = abs(_5244 - _5255);float _2481 = 1.0 - clamp((_6424 - _2468) / max(_2458 - _2468, 9.9999997473787516355514526367188e-05), 0.0, 1.0);return ((_2481 * _2481) * (((-2.0) * _2481) + 3.0)) * (1.0 - max(cosCap1, cosCap2));ivec2 _2770 = textureSize(light_iblSpecular, int(frameUniforms.fz));vec3 _2785 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _2792 = _2785 * (1.0 / float(_2770.x));vec3 _2796 = cross(_2785, n) * (1.0 / float(_2770.y));vec3 _2799 = n - _2792;vec3 _2804 = n + _2792;return (((textureLod(light_iblSpecular, _2799 - _2796, frameUniforms.fz).xyz + textureLod(light_iblSpecular, _2804 - _2796, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _2804 + _2796, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _2799 + _2796, frameUniforms.fz).xyz) * 0.25;vec3 _1513 = shadowPosition.xyz * (1.0 / shadowPosition.w);vec3 _5588 = dFdx(_1513);vec3 _5589 = dFdy(_1513);vec2 _5608 = inverse(transpose(mat2(vec2(_5588.xy), vec2(_5589.xy)))) * vec2(_5588.z, _5589.z);float _6407;_6407 = frameUniforms.s;_6407 = shadowUniforms.a[index].bulbRadiusLs / zLight;float _5634 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _5636 = cos(_5634);float _5638 = sin(_5634);mat2 _5651 = mat2(vec2(_5636, _5638), vec2(-_5638, _5636));vec2 _1537 = _1513.xy;float _1539 = _1513.z;vec2 _1542 = (vec2(1.0) / vec2(vec3(textureSize(map, 0)).xy)) * _6407;float _6409;float _6410;_6410 = 0.0;_6409 = 0.0;for (uint _6408 = 0u; _6408 < 12u; )vec2 _5675 = _5651 * (poissonDisk[_6408] * _1542);vec4 _5683 = textureLod(map, vec3(_1537 + _5675, float(layer)), 0.0);float _5684 = _5683.x;float _5691 = step(dot(_5608, _5675), _5684 - _1539);_6410 += (_5684 * _5691);_6409 += _5691;_6408++;if (_6410 == 0.0)float _1559 = _6410 / _6409;float _6411;_6411 = (_1559 - _1539) / (1.0 - _1559);_6411 = ((shadowUniforms.a[index].nearOverFarMinusNear + _1559) / (shadowUniforms.a[index].nearOverFarMinusNear + _1539)) - 1.0;float _5736 = (_6409 * 0.16666667163372039794921875) - 1.0;float _5738 = sign(_5736);float _5742 = 1.0 - (_5738 * _5736);return 1.0 - mix((0.5 * (_5738 - (((_5742 * _5742) * _5742) * _5738))) + 0.5, _6409 * 0.083333335816860198974609375, clamp(_6411 * frameUniforms.u, 0.0, 1.0));vec2 _1588 = vec2(vec3(textureSize(map, 0)).xy);vec2 _1591 = vec2(1.0) / _1588;vec3 _1596 = shadowPosition.xyz * (1.0 / shadowPosition.w);vec3 _5761 = dFdx(_1596);vec3 _5762 = dFdy(_1596);vec2 _5781 = inverse(transpose(mat2(vec2(_5761.xy), vec2(_5762.xy)))) * vec2(_5761.z, _5762.z);float _6413;_6413 = frameUniforms.s;_6413 = shadowUniforms.a[index].bulbRadiusLs / zLight;float _5807 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _5809 = cos(_5807);float _5811 = sin(_5807);mat2 _5824 = mat2(vec2(_5809, _5811), vec2(-_5811, _5809));vec2 _1610 = _1596.xy;float _1612 = _1596.z;vec2 _1615 = _1591 * _6413;float _6415;float _6416;_6416 = 0.0;_6415 = 0.0;for (uint _6414 = 0u; _6414 < 16u; )vec2 _5848 = _5824 * (poissonDisk[_6414] * _1615);vec4 _5856 = textureLod(map, vec3(_1610 + _5848, float(layer)), 0.0);float _5857 = _5856.x;float _5864 = step(dot(_5781, _5848), _5857 - _1612);_6416 += (_5857 * _5864);_6415 += _5864;_6414++;if (_6416 == 0.0)float _1632 = _6416 / _6415;float _6417;_6417 = (_1632 - _1612) / (1.0 - _1632);_6417 = ((shadowUniforms.a[index].nearOverFarMinusNear + _1632) / (shadowUniforms.a[index].nearOverFarMinusNear + _1612)) - 1.0;vec2 _1648 = _1591 * (_6413 * (_6417 * frameUniforms.u));float _6419;_6419 = 0.0;for (uint _6418 = 0u; _6418 < 16u; )vec2 _5924 = _5824 * (poissonDisk[_6418] * _1648);vec2 _5926 = _1610 + _5924;vec2 _5931 = fract((_5926 * _1588) - vec2(0.5));vec4 _5948 = step(vec4(dot(_5781, _5924)), textureGather(map, vec3(_5926, float(layer))) - vec4(_1612));float _5954 = _5931.x;_6419 += mix(mix(_5948.w, _5948.z, _5954), mix(_5948.x, _5948.y, _5954), _5931.y);_6418++;return 1.0 - (_6419 * 0.0625);vec4 _6420;float _6422;_6422 = 0.0;_6420 = _6421;_6422 = dot(shadowUniforms.a[index].lightFromWorldZ, vec4(shading_position, 1.0));_6420 = (shadowUniforms.a[index].lightFromWorldMatrix[0] * shading_position.x) + ((shadowUniforms.a[index].lightFromWorldMatrix[1] * shading_position.y) + ((shadowUniforms.a[index].lightFromWorldMatrix[2] * shading_position.z) + shadowUniforms.a[index].lightFromWorldMatrix[3]));vec4 _5459 = texture(shadowMap, vec3(_6420.xy * (1.0 / _6420.w), float(layer)));float _5469 = exp(frameUniforms.bzz * ((_6420.z * 2.0) - 1.0));float _5481 = frameUniforms.czz * _5469;float _5495 = _5459.x;float _5500 = max(_5459.y - (_5495 * _5495), _5481 * _5481);float _5502 = _5469 - _5495;return (_5469 <= _5495) ? 1.0 : clamp(((_5500 / (_5500 + (_5502 * _5502))) - frameUniforms.dzz) / (1.0 - frameUniforms.dzz), 0.0, 1.0);return ShadowSample_DPCF(DIRECTIONAL, shadowMap, layer, index, _6420, _6422);return ShadowSample_PCSS(DIRECTIONAL, shadowMap, layer, index, _6420, _6422);vec3 _5536 = _6420.xyz * (1.0 / _6420.w);vec4 _5563 = step(vec4(0.0), _5536.zzzz - textureGather(shadowMap, vec3(_5536.xy, float(layer))));vec2 _5565 = fract((_5536.xy * vec2(vec3(textureSize(shadowMap, 0)).xy)) - vec2(0.5));float _5571 = _5565.x;return mix(mix(_5563.w, _5563.z, _5571), mix(_5563.x, _5563.y, _5571), _5565.y);vec3 _3585 = normalize(vertex_worldNormal);vec3 _3592 = normalize(frameUniforms.j - shading_position);vec2 _3600 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);float _3645 = max(dot(_3585, _3592), 9.9999997473787516355514526367188e-05);vec3 _3638 = reflect(-_3592, _3585);vec4 _6193 = vec4(1.0);_6193.x = materialParams.a.x;vec4 _6195 = _6193;_6195.y = materialParams.a.y;vec4 _6197 = _6195;_6197.z = materialParams.a.z;float _3737 = 1.0 - materialParams.b;vec3 _3738 = _6197.xyz * _3737;vec3 _3755 = (_6197.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _3737);float _3765 = clamp(materialParams.c, 0.04500000178813934326171875, 1.0);float _3775 = _3765 * _3765;vec4 _3809 = textureLod(light_iblDFG, vec2(_3645, _3765), 0.0);vec3 _3794 = vec3(1.0) + (_3755 * ((1.0 / _3809.y) - 1.0));float _3943 = _3600.x;vec3 _3956 = mix(_3809.xxx, _3809.yyy, _3755);float _3969 = _3775 * _3775;SSAOInterpolationCache _3818 = SSAOInterpolationCache(_6332, vec3(_3943, _3600.y, _6437).xy);float _3860 = evaluateSSAO(_3818);float _3864 = min(1.0, _3860);float _4086 = clamp((pow(_3645 + _3864, exp2(((-16.0) * _3775) - 1.0)) - 1.0) + _3864, 0.0, 1.0);float _6335;vec3 _6333;vec3 _4033 = vec3(_3818.uv, 1.0);vec3 _6200 = _6330;_6200.x = dot(textureGather(light_ssao, _4033), _3818.weights);vec3 _6202 = _6200;_6202.y = dot(textureGather(light_ssao, _4033, 1), _3818.weights);vec3 _6204 = _6202;_6204.z = dot(textureGather(light_ssao, _4033, 2), _3818.weights);_6333 = _6204;_6333 = textureLod(light_ssao, vec3(_3818.uv, 1.0), 0.0).xyz;float _4109 = exp2((-3.3219280242919921875) * _3969);float _4098 = sqrt(1.0 - _3864);float _4099 = _4109;float _4100 = dot(normalize((_6333 * 2.0) - vec3(1.0)), _3638);_6335 = min(_4086, mix(1.0, sphericalCapsIntersection(_4098, _4099, _4100) / (1.0 - _4109), smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _3775)));_6335 = _4086;uvec2 _4346 = uvec2((vec3(_3943, _3600.y, gl_FragCoord.z).xy * frameUniforms.i.xy) * vec2(frameUniforms.z, frameUniforms.v));uint _4328 = ((_4346.x * frameUniforms.r) + (_4346.y * frameUniforms.x.x)) + (uint(clamp((log2((frameUniforms.w.x * gl_FragCoord.z) + frameUniforms.w.y) * frameUniforms.w.z) + frameUniforms.w.w, 0.0, frameUniforms.w.w - 1.0)) * frameUniforms.x.y);uvec4 _4385 = texelFetch(light_froxels, ivec2(int(_4328 & 63u), int(_4328 >> 6u)), 0);uint _4388 = _4385.x;uint _4223 = _4388 + (_4385.y & 255u);uint _4226 = objectUniforms.e & 255u;vec3 _6344;vec4 _6350;vec3 _6366;_6366 = _6330;_6350 = _6332;_6344 = ((((_3956 * textureLod(light_iblSpecular, mix(_3638, _3585, vec3(_3969)), (frameUniforms.fz * _3765) * (2.0 - _3765)).xyz) * (_3794 * 1.0)) * max(vec3(_6335), ((((((_3755 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _6335) + ((_3755 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _6335) + ((_3755 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _6335)) * frameUniforms.az) + (((((_3738 * diffuseIrradiance(_3585)) * (vec3(1.0) - _3956)) * 1.0) * max(vec3(_3864), ((((((_3738 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _3864) + ((_3738 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _3864) + ((_3738 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _3864)) * frameUniforms.az);vec4 _6231;vec3 _6393;vec3 _6403;for (uint _6343 = _4388; _6343 < _4223; _6366 = _6403, _6350 = _6231, _6344 = _6393, _6343++)uvec4 _4530 = froxelRecordUniforms.a[_6343 >> 4u];uint _4546 = (_4530[(_6343 >> 2u) & 3u] >> ((_6343 & 3u) * 8u)) & 255u;vec2 _4432 = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_4546][2].x));uint _4449 = floatBitsToUint(lightsUniforms.a[_4546][3].z);uint _4452 = floatBitsToUint(lightsUniforms.a[_4546][3].w);vec3 _4457 = lightsUniforms.a[_4546][0].xyz - shading_position;vec4 _6225 = _6350;_6225.x = _4432.x;vec4 _6227 = _6225;_6227.y = _4432.y;vec4 _6229 = _6227;_6229.z = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_4546][2].y)).x;float _4552 = lightsUniforms.a[_4546][3].y * frameUniforms.bz;_6231 = _6229;_6231.w = _4552;vec3 _4472 = normalize(_4457);float _4561 = dot(_4457, _4457);float _4591 = _4561 * lightsUniforms.a[_4546][0].w;float _4596 = clamp(1.0 - (_4591 * _4591), 0.0, 1.0);vec3 _4567 = shading_position - frameUniforms.j;float _4584 = ((_4596 * _4596) * clamp(frameUniforms.n.x - (dot(_4567, _4567) * frameUniforms.n.y), 0.0, 1.0)) / max(_4561, 9.9999997473787516355514526367188e-05);float _4483 = clamp(dot(_3585, _4472), 0.0, 1.0);uint _6353;uint _6354;bool _6355;bool _6356;float _6357;if ((_4449 & 1u) == 1u)float _4617 = clamp((dot(-lightsUniforms.a[_4546][1].xyz, _4472) * lightsUniforms.a[_4546][2].z) + lightsUniforms.a[_4546][2].w, 0.0, 1.0);_6357 = _4584 * (_4617 * _4617);_6356 = (_4452 & 65536u) != 0u;_6355 = (_4449 & 16u) != 0u;_6354 = (_4449 >> 8u) & 255u;_6353 = (_4449 >> 16u) & 255u;_6357 = _4584;_6356 = false;_6355 = false;_6354 = 0u;_6353 = 0u;if ((_4452 & _4226) == 0u)_6403 = _6366;_6393 = _6344;bool _4244 = _4483 <= 0.0;bool _4251;if (!_4244)_4251 = _6357 <= 0.0;_4251 = _4244;if (_4251)float _6375;vec3 _6406;if (_4483 > 0.0)float _6358;if (_6356)_6358 = shadow(false, light_shadowMap, _6353, _6354, 0u);_6358 = 1.0;float _6373;vec3 _6404;if (_6355 && (_6358 > 0.0))float _6374;vec3 _6405;uint _4644 = (frameUniforms.iz >> 8u) & 255u;vec4 _4752 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _4759 = frameUniforms.e * vec4(shading_position + (_4472 * frameUniforms.kz), 1.0);vec4 _4765 = _4752 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));vec3 _4771 = _4752.xyz * (1.0 / _4752.w);vec3 _4778 = _4759.xyz * (1.0 / _4759.w);float _4805 = _4771.z;vec3 _4808 = vec3((_4771.xy * 0.5) + vec2(0.5), _4805);vec3 _4813 = vec3((_4778.xy * 0.5) + vec2(0.5), _4778.z) - _4808;float _4654 = 1.0 / float(_4644);float _4662 = abs((_4765.xyz * (1.0 / _4765.w)).z - _4805) * _4654;float _4674 = (_4654 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _4654;vec3 _6362;_6362 = _6366;vec3 _4687;vec3 _6361;float _6369;uint _6359 = 0u;float _6360 = _4674;if (_6359 < _4644)_4687 = _4808 + (_4813 * _6360);if (abs(_4662 - (textureLod(light_structure, _4687.xy, 0.0).x - _4687.z)) < _4662)_6369 = 1.0;_6361 = _4687;_6360 += _4654;_6359++;_6362 = _4687;_6369 = 0.0;_6361 = _6362;vec2 _4722 = max((abs(_6361.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_6405 = _6361;_6374 = _6358 * (1.0 - (_6369 * clamp(1.0 - dot(_4722, _4722), 0.0, 1.0)));_6405 = _6366;_6374 = _6358;_6404 = _6405;_6373 = _6374;_6404 = _6366;_6373 = _6358;if (_6373 <= 0.0)_6403 = _6404;_6406 = _6404;_6375 = _6373;_6406 = _6366;_6375 = 1.0;vec3 _4846 = normalize(_3592 + _4472);float _4849 = clamp(_4483, 0.0, 1.0);float _4853 = clamp(dot(_3585, _4846), 0.0, 1.0);float _4941 = _4853 * _3775;float _4948 = _3775 / ((1.0 - (_4853 * _4853)) + (_4941 * _4941));float _5018 = 1.0 - clamp(dot(_4472, _4846), 0.0, 1.0);float _5027 = _5018 * _5018;_6403 = _6406;_6393 = _6344 + ((((_3738 * 0.3183098733425140380859375) + (((_3755 + ((vec3(clamp(dot(_3755, vec3(16.5)), 0.0, 1.0)) - _3755) * ((_5027 * _5027) * _5018))) * (((_4948 * _4948) * 0.3183098733425140380859375) * (0.5 / ((_4849 * sqrt(((_3645 - (_3969 * _3645)) * _3645) + _3969)) + (_3645 * sqrt(((_4849 - (_3969 * _4849)) * _4849) + _3969)))))) * _3794)) * _6231.xyz) * (((_4552 * _6357) * _4849) * _6375));fragColor = vec4(_6344, 1.0);vec3 _3572 = shading_position - frameUniforms.j;vec4 _6349;float _5086 = length(_3572);float _5089 = max(0.001000000047497451305389404296875, _3572.y);float _5099 = frameUniforms.qz * ((1.0 - exp((-frameUniforms.oz) * _5089)) / _5089);float _5115 = min(max(1.0 - exp2(-(_5099 * max(_5086 - frameUniforms.lz, 0.0))), 0.0), frameUniforms.mz);vec3 _6345;_6345 = frameUniforms.pz * (textureLod(light_iblSpecular, _3572, frameUniforms.fz).xyz * frameUniforms.az);_6345 = frameUniforms.pz;vec3 _5137 = _6345 * _5115;vec3 _6348;_6348 = _5137 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_3572, frameUniforms.q) / _5086, 0.0), frameUniforms.sz) * max(1.0 - exp2(-(_5099 * max(_5086 - frameUniforms.rz, 0.0))), 0.0)));_6348 = _5137;vec3 _5185 = (fragColor.xyz * (1.0 - _5115)) + _6348;vec4 _6243 = fragColor;_6243.x = _5185.x;vec4 _6245 = _6243;_6245.y = _5185.y;vec4 _6247 = _6245;_6247.z = _5185.z;_6349 = _6247;_6349 = fragColor;fragColor = _6349;vec3 _7245;float _7246;vec4 _7247;vec4 _7337;vec3 _7341;float _7369;vec3 _917;vec2 _2370 = cache.uv;vec4 _2382 = textureGather(light_ssao, vec3(cache.uv, 0.0), 1);vec4 _2390 = textureGather(light_ssao, vec3(cache.uv, 0.0), 2);vec4 _7191 = _7337;_7191.x = (_2382.x * 0.996108949184417724609375) + (_2390.x * 0.00389105058275163173675537109375);vec4 _7197 = _7191;_7197.y = (_2382.y * 0.996108949184417724609375) + (_2390.y * 0.00389105058275163173675537109375);vec4 _7203 = _7197;_7203.z = (_2382.z * 0.996108949184417724609375) + (_2390.z * 0.00389105058275163173675537109375);vec4 _7209 = _7203;_7209.w = (_2382.w * 0.996108949184417724609375) + (_2390.w * 0.00389105058275163173675537109375);vec2 _2437 = fract((cache.uv * vec2(vec3(textureSize(light_ssao, 0)).xy)) - vec2(0.5));float _2440 = _2437.x;float _2441 = 1.0 - _2440;float _2443 = _2437.y;vec4 _7213 = _7337;_7213.x = _2441 * _2443;vec4 _7217 = _7213;_7217.y = _2440 * _2443;float _2456 = 1.0 - _2443;vec4 _7221 = _7217;_7221.z = _2440 * _2456;vec4 _7225 = _7221;_7225.w = _2441 * _2456;vec4 _2489 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_7209 * (-frameUniforms.gz))) * frameUniforms.vz;vec4 _2499 = max(vec4(6.103515625e-05), vec4(1.0) - (_2489 * _2489)) * _7225;cache.weights = _2499 / vec4(((_2499.x + _2499.y) + _2499.z) + _2499.w);return dot(textureGather(light_ssao, vec3(_2370, 0.0)), cache.weights);float _5550 = (((-0.15658269822597503662109375) * cosCap1) + 1.57079601287841796875) * sqrt(1.0 - cosCap1);float _5561 = (((-0.15658269822597503662109375) * cosCap2) + 1.57079601287841796875) * sqrt(1.0 - cosCap2);float _5568 = abs(cosDistance);float _5576 = (((-0.15658269822597503662109375) * _5568) + 1.57079601287841796875) * sqrt(1.0 - _5568);float _7338;_7338 = _5576;_7338 = 3.1415927410125732421875 - _5576;float _2577;if (min(_5550, _5561) <= (max(_5550, _5561) - _7338))_2577 = _5550 + _5561;if (_2577 <= _7338)float _2587 = abs(_5550 - _5561);float _2600 = 1.0 - clamp((_7338 - _2587) / max(_2577 - _2587, 9.9999997473787516355514526367188e-05), 0.0, 1.0);return ((_2600 * _2600) * (((-2.0) * _2600) + 3.0)) * (1.0 - max(cosCap1, cosCap2));ivec2 _2888 = textureSize(light_iblSpecular, int(frameUniforms.fz));vec3 _2902 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _2909 = _2902 * (1.0 / float(_2888.x));vec3 _2913 = cross(_2902, n) * (1.0 / float(_2888.y));vec3 _2916 = n - _2909;vec3 _2921 = n + _2909;return (((textureLod(light_iblSpecular, _2916 - _2913, frameUniforms.fz).xyz + textureLod(light_iblSpecular, _2921 - _2913, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _2921 + _2913, frameUniforms.fz).xyz) + textureLod(light_iblSpecular, _2916 + _2913, frameUniforms.fz).xyz) * 0.25;vec3 _1631 = shadowPosition.xyz * (1.0 / shadowPosition.w);vec3 _6420 = dFdx(_1631);vec3 _6421 = dFdy(_1631);vec2 _6440 = inverse(transpose(mat2(vec2(_6420.xy), vec2(_6421.xy)))) * vec2(_6420.z, _6421.z);float _7322;_7322 = frameUniforms.s;_7322 = shadowUniforms.a[index].bulbRadiusLs / zLight;float _6466 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _6468 = cos(_6466);float _6470 = sin(_6466);mat2 _6483 = mat2(vec2(_6468, _6470), vec2(-_6470, _6468));vec2 _1655 = _1631.xy;float _1657 = _1631.z;vec2 _1660 = (vec2(1.0) / vec2(vec3(textureSize(map, 0)).xy)) * _7322;float _7324;_7325 = 0.0;_7324 = 0.0;for (uint _7323 = 0u; _7323 < 12u; )vec2 _6507 = _6483 * (poissonDisk[_7323] * _1660);vec4 _6515 = textureLod(map, vec3(_1655 + _6507, float(layer)), 0.0);float _6516 = _6515.x;float _6523 = step(dot(_6440, _6507), _6516 - _1657);_7325 += (_6516 * _6523);_7324 += _6523;_7323++;if (_7325 == 0.0)float _1677 = _7325 / _7324;float _7326;_7326 = (_1677 - _1657) / (1.0 - _1677);_7326 = ((shadowUniforms.a[index].nearOverFarMinusNear + _1677) / (shadowUniforms.a[index].nearOverFarMinusNear + _1657)) - 1.0;float _6568 = (_7324 * 0.16666667163372039794921875) - 1.0;float _6570 = sign(_6568);float _6574 = 1.0 - (_6570 * _6568);return 1.0 - mix((0.5 * (_6570 - (((_6574 * _6574) * _6574) * _6570))) + 0.5, _7324 * 0.083333335816860198974609375, clamp(_7326 * frameUniforms.u, 0.0, 1.0));vec2 _1706 = vec2(vec3(textureSize(map, 0)).xy);vec2 _1709 = vec2(1.0) / _1706;vec3 _1714 = shadowPosition.xyz * (1.0 / shadowPosition.w);vec3 _6593 = dFdx(_1714);vec3 _6594 = dFdy(_1714);vec2 _6613 = inverse(transpose(mat2(vec2(_6593.xy), vec2(_6594.xy)))) * vec2(_6593.z, _6594.z);float _7328;_7328 = frameUniforms.s;_7328 = shadowUniforms.a[index].bulbRadiusLs / zLight;float _6639 = fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy + vec2(frameUniforms.izz), vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) * 6.283185482025146484375;float _6641 = cos(_6639);float _6643 = sin(_6639);mat2 _6656 = mat2(vec2(_6641, _6643), vec2(-_6643, _6641));vec2 _1728 = _1714.xy;float _1730 = _1714.z;vec2 _1733 = _1709 * _7328;float _7331;_7331 = 0.0;for (uint _7329 = 0u; _7329 < 16u; )vec2 _6680 = _6656 * (poissonDisk[_7329] * _1733);vec4 _6688 = textureLod(map, vec3(_1728 + _6680, float(layer)), 0.0);float _6689 = _6688.x;float _6696 = step(dot(_6613, _6680), _6689 - _1730);_7331 += (_6689 * _6696);_7330 += _6696;_7329++;if (_7331 == 0.0)float _1750 = _7331 / _7330;float _7332;_7332 = (_1750 - _1730) / (1.0 - _1750);_7332 = ((shadowUniforms.a[index].nearOverFarMinusNear + _1750) / (shadowUniforms.a[index].nearOverFarMinusNear + _1730)) - 1.0;vec2 _1766 = _1709 * (_7328 * (_7332 * frameUniforms.u));_7334 = 0.0;for (uint _7333 = 0u; _7333 < 16u; )vec2 _6756 = _6656 * (poissonDisk[_7333] * _1766);vec2 _6758 = _1728 + _6756;vec2 _6763 = fract((_6758 * _1706) - vec2(0.5));vec4 _6780 = step(vec4(dot(_6613, _6756)), textureGather(map, vec3(_6758, float(layer))) - vec4(_1730));float _6786 = _6763.x;_7334 += mix(mix(_6780.w, _6780.z, _6786), mix(_6780.x, _6780.y, _6786), _6763.y);_7333++;return 1.0 - (_7334 * 0.0625);vec4 _7335;float _7336;_7336 = 0.0;_7335 = getCascadeLightSpacePosition(param);_7336 = dot(shadowUniforms.a[index].lightFromWorldZ, vec4(shading_position, 1.0));_7335 = (shadowUniforms.a[index].lightFromWorldMatrix[0] * shading_position.x) + ((shadowUniforms.a[index].lightFromWorldMatrix[1] * shading_position.y) + ((shadowUniforms.a[index].lightFromWorldMatrix[2] * shading_position.z) + shadowUniforms.a[index].lightFromWorldMatrix[3]));vec4 _6266 = texture(shadowMap, vec3(_7335.xy * (1.0 / _7335.w), float(layer)));float _6276 = exp(frameUniforms.bzz * ((_7335.z * 2.0) - 1.0));float _6288 = frameUniforms.czz * _6276;float _6302 = _6266.x;float _6307 = max(_6266.y - (_6302 * _6302), _6288 * _6288);float _6309 = _6276 - _6302;return (_6276 <= _6302) ? 1.0 : clamp(((_6307 / (_6307 + (_6309 * _6309))) - frameUniforms.dzz) / (1.0 - frameUniforms.dzz), 0.0, 1.0);return ShadowSample_DPCF(DIRECTIONAL, shadowMap, layer, index, _7335, _7336);return ShadowSample_PCSS(DIRECTIONAL, shadowMap, layer, index, _7335, _7336);vec3 _6343 = _7335.xyz * (1.0 / _7335.w);vec4 _6370 = step(vec4(0.0), _6343.zzzz - textureGather(shadowMap, vec3(_6343.xy, float(layer))));vec2 _6372 = fract((_6343.xy * vec2(vec3(textureSize(shadowMap, 0)).xy)) - vec2(0.5));float _6378 = _6372.x;return mix(mix(_6370.w, _6370.z, _6378), mix(_6370.x, _6370.y, _6378), _6372.y);float _5708 = clamp(dot(shading_normal, frameUniforms.q), 0.0, 1.0);if (_5708 <= 0.0)float _7357;if (_5708 > 0.0)bvec4 _5731 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z));uint _5741 = clamp(uint(dot(vec4(_5731.x ? vec4(1.0).x : vec4(0.0).x, _5731.y ? vec4(1.0).y : vec4(0.0).y, _5731.z ? vec4(1.0).z : vec4(0.0).z, _5731.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);float _7342;if (((frameUniforms.iz & 1u) != 0u) && ((frameUniforms.uz & ((1u << _5741) << 8u)) != 0u))_7342 = shadow(true, light_shadowMap, _5741, 0u, _5741);_7342 = 1.0;float _7350;if (((frameUniforms.iz & 2u) != 0u) && (_7342 > 0.0))float _7352;uint _5787 = (frameUniforms.iz >> 8u) & 255u;vec4 _5895 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _5902 = frameUniforms.e * vec4(shading_position + (frameUniforms.q * frameUniforms.kz), 1.0);vec4 _5908 = _5895 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));vec3 _5914 = _5895.xyz * (1.0 / _5895.w);vec3 _5921 = _5902.xyz * (1.0 / _5902.w);float _5948 = _5914.z;vec3 _5951 = vec3((_5914.xy * 0.5) + vec2(0.5), _5948);vec3 _5956 = vec3((_5921.xy * 0.5) + vec2(0.5), _5921.z) - _5951;float _5797 = 1.0 / float(_5787);float _5805 = abs((_5908.xyz * (1.0 / _5908.w)).z - _5948) * _5797;float _5817 = (_5797 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _5797;vec3 _7346;_7346 = _7341;vec3 _5830;vec3 _7345;float _7348;uint _7343 = 0u;float _7344 = _5817;if (_7343 < _5787)_5830 = _5951 + (_5956 * _7344);if (abs(_5805 - (textureLod(light_structure, _5830.xy, 0.0).x - _5830.z)) < _5805)_7348 = 1.0;_7345 = _5830;_7344 += _5797;_7343++;_7346 = _5830;_7348 = 0.0;_7345 = _7346;vec2 _5865 = max((abs(_7345.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_7352 = _7348 * clamp(1.0 - dot(_5865, _5865), 0.0, 1.0);_7352 = 0.0;_7350 = _7352;_7350 = 0.0;float _3224 = _7342 * (1.0 - _7350);if (_3224 <= 0.0)_7357 = _3224;_7357 = 1.0;vec3 _5989 = normalize(shading_view + frameUniforms.q);float _5992 = clamp(_5708, 0.0, 1.0);float _5996 = clamp(dot(shading_normal, _5989), 0.0, 1.0);float _6084 = _5996 * pixel.roughness;float _6091 = pixel.roughness / ((1.0 - (_5996 * _5996)) + (_6084 * _6084));float _6114 = pixel.roughness * pixel.roughness;float _6161 = 1.0 - clamp(dot(frameUniforms.q, _5989), 0.0, 1.0);float _6170 = _6161 * _6161;color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_6170 * _6170) * _6161))) * (((_6091 * _6091) * 0.3183098733425140380859375) * (0.5 / ((_5992 * sqrt(((shading_NoV - (_6114 * shading_NoV)) * shading_NoV) + _6114)) + (shading_NoV * sqrt(((_5992 - (_6114 * _5992)) * _5992) + _6114)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _5992) * _7357));vec2 _3854 = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);vec3 _3892 = reflect(-shading_view, shading_normal);vec4 _7098 = vec4(1.0);_7098.x = materialParams.a.x;vec4 _7100 = _7098;_7100.y = materialParams.a.y;vec4 _7102 = _7100;_7102.z = materialParams.a.z;float _3996 = 1.0 - materialParams.b;vec3 _3997 = _7102.xyz * _3996;vec3 _4014 = (_7102.xyz * materialParams.b) + vec3(((0.1599999964237213134765625 * materialParams.d) * materialParams.d) * _3996);float _4024 = clamp(materialParams.c, 0.04500000178813934326171875, 1.0);float _4034 = _4024 * _4024;vec4 _4068 = textureLod(light_iblDFG, vec2(shading_NoV, _4024), 0.0);vec3 _4053 = vec3(1.0) + (_4014 * ((1.0 / _4068.y) - 1.0));float _4202 = _3854.x;vec3 _4215 = mix(_4068.xxx, _4068.yyy, _4014);float _4228 = _4034 * _4034;SSAOInterpolationCache _4077 = SSAOInterpolationCache(_7247, vec3(_4202, _3854.y, _7369).xy);float _4119 = evaluateSSAO(_4077);float _4123 = min(1.0, _4119);float _4345 = clamp((pow(shading_NoV + _4123, exp2(((-16.0) * _4034) - 1.0)) - 1.0) + _4123, 0.0, 1.0);float _7250;vec3 _7248;vec3 _4292 = vec3(_4077.uv, 1.0);vec3 _7105 = _7245;_7105.x = dot(textureGather(light_ssao, _4292), _4077.weights);vec3 _7107 = _7105;_7107.y = dot(textureGather(light_ssao, _4292, 1), _4077.weights);vec3 _7109 = _7107;_7109.z = dot(textureGather(light_ssao, _4292, 2), _4077.weights);_7248 = _7109;_7248 = textureLod(light_ssao, vec3(_4077.uv, 1.0), 0.0).xyz;float _4368 = exp2((-3.3219280242919921875) * _4228);float _4357 = sqrt(1.0 - _4123);float _4358 = _4368;float _4359 = dot(normalize((_7248 * 2.0) - vec3(1.0)), _3892);_7250 = min(_4345, mix(1.0, sphericalCapsIntersection(_4357, _4358, _4359) / (1.0 - _4368), smoothstep(0.00999999977648258209228515625, 0.0900000035762786865234375, _4034)));_7250 = _4345;vec3 _3913 = ((((_4215 * textureLod(light_iblSpecular, mix(_3892, shading_normal, vec3(_4228)), (frameUniforms.fz * _4024) * (2.0 - _4024)).xyz) * (_4053 * 1.0)) * max(vec3(_7250), ((((((_4014 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _7250) + ((_4014 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _7250) + ((_4014 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _7250)) * frameUniforms.az) + (((((_3997 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _4215)) * 1.0) * max(vec3(_4123), ((((((_3997 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _4123) + ((_3997 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _4123) + ((_3997 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _4123)) * frameUniforms.az);evaluateDirectionalLight(MaterialInputs(_7102, materialParams.c, materialParams.b, materialParams.d, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _7245, _7246, _7246, _7246, _7246, _7245), PixelParams(_3997, _4024, materialParams.c, _4014, _4034, _4068.xyz, _4053), _3913);uvec2 _4605 = uvec2((vec3(_4202, _3854.y, gl_FragCoord.z).xy * frameUniforms.i.xy) * vec2(frameUniforms.z, frameUniforms.v));uint _4587 = ((_4605.x * frameUniforms.r) + (_4605.y * frameUniforms.x.x)) + (uint(clamp((log2((frameUniforms.w.x * gl_FragCoord.z) + frameUniforms.w.y) * frameUniforms.w.z) + frameUniforms.w.w, 0.0, frameUniforms.w.w - 1.0)) * frameUniforms.x.y);uvec4 _4644 = texelFetch(light_froxels, ivec2(int(_4587 & 63u), int(_4587 >> 6u)), 0);uint _4647 = _4644.x;uint _4482 = _4647 + (_4644.y & 255u);uint _4485 = objectUniforms.e & 255u;vec3 _7259;vec4 _7265;vec3 _7281;_7281 = _7245;_7265 = _7247;_7259 = _3913;vec4 _7136;vec3 _7308;vec3 _7318;for (uint _7258 = _4647; _7258 < _4482; _7281 = _7318, _7265 = _7136, _7259 = _7308, _7258++)uvec4 _4789 = froxelRecordUniforms.a[_7258 >> 4u];uint _4805 = (_4789[(_7258 >> 2u) & 3u] >> ((_7258 & 3u) * 8u)) & 255u;vec2 _4691 = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_4805][2].x));uint _4708 = floatBitsToUint(lightsUniforms.a[_4805][3].z);uint _4711 = floatBitsToUint(lightsUniforms.a[_4805][3].w);vec3 _4716 = lightsUniforms.a[_4805][0].xyz - shading_position;vec4 _7130 = _7265;_7130.x = _4691.x;vec4 _7132 = _7130;_7132.y = _4691.y;vec4 _7134 = _7132;_7134.z = unpackHalf2x16(floatBitsToUint(lightsUniforms.a[_4805][2].y)).x;float _4811 = lightsUniforms.a[_4805][3].y * frameUniforms.bz;_7136 = _7134;_7136.w = _4811;vec3 _4731 = normalize(_4716);float _4820 = dot(_4716, _4716);float _4850 = _4820 * lightsUniforms.a[_4805][0].w;float _4855 = clamp(1.0 - (_4850 * _4850), 0.0, 1.0);vec3 _4826 = shading_position - frameUniforms.j;float _4843 = ((_4855 * _4855) * clamp(frameUniforms.n.x - (dot(_4826, _4826) * frameUniforms.n.y), 0.0, 1.0)) / max(_4820, 9.9999997473787516355514526367188e-05);float _4742 = clamp(dot(shading_normal, _4731), 0.0, 1.0);uint _7268;uint _7269;bool _7270;bool _7271;float _7272;if ((_4708 & 1u) == 1u)float _4876 = clamp((dot(-lightsUniforms.a[_4805][1].xyz, _4731) * lightsUniforms.a[_4805][2].z) + lightsUniforms.a[_4805][2].w, 0.0, 1.0);_7272 = _4843 * (_4876 * _4876);_7271 = (_4711 & 65536u) != 0u;_7270 = (_4708 & 16u) != 0u;_7269 = (_4708 >> 8u) & 255u;_7268 = (_4708 >> 16u) & 255u;_7272 = _4843;_7271 = false;_7270 = false;_7269 = 0u;_7268 = 0u;if ((_4711 & _4485) == 0u)_7318 = _7281;_7308 = _7259;bool _4503 = _4742 <= 0.0;bool _4510;if (!_4503)_4510 = _7272 <= 0.0;_4510 = _4503;if (_4510)float _7290;vec3 _7321;if (_4742 > 0.0)float _7273;if (_7271)_7273 = shadow(false, light_shadowMap, _7268, _7269, 0u);_7273 = 1.0;float _7288;vec3 _7319;if (_7270 && (_7273 > 0.0))float _7289;vec3 _7320;uint _4903 = (frameUniforms.iz >> 8u) & 255u;vec4 _5011 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _5018 = frameUniforms.e * vec4(shading_position + (_4731 * frameUniforms.kz), 1.0);vec4 _5024 = _5011 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.kz, 0.0));vec3 _5030 = _5011.xyz * (1.0 / _5011.w);vec3 _5037 = _5018.xyz * (1.0 / _5018.w);float _5064 = _5030.z;vec3 _5067 = vec3((_5030.xy * 0.5) + vec2(0.5), _5064);vec3 _5072 = vec3((_5037.xy * 0.5) + vec2(0.5), _5037.z) - _5067;float _4913 = 1.0 / float(_4903);float _4921 = abs((_5024.xyz * (1.0 / _5024.w)).z - _5064) * _4913;float _4933 = (_4913 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _4913;vec3 _7277;_7277 = _7281;vec3 _4946;vec3 _7276;float _7284;uint _7274 = 0u;float _7275 = _4933;if (_7274 < _4903)_4946 = _5067 + (_5072 * _7275);if (abs(_4921 - (textureLod(light_structure, _4946.xy, 0.0).x - _4946.z)) < _4921)_7284 = 1.0;_7276 = _4946;_7275 += _4913;_7274++;_7277 = _4946;_7284 = 0.0;_7276 = _7277;vec2 _4981 = max((abs(_7276.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_7320 = _7276;_7289 = _7273 * (1.0 - (_7284 * clamp(1.0 - dot(_4981, _4981), 0.0, 1.0)));_7320 = _7281;_7289 = _7273;_7319 = _7320;_7288 = _7289;_7319 = _7281;_7288 = _7273;if (_7288 <= 0.0)_7318 = _7319;_7321 = _7319;_7290 = _7288;_7321 = _7281;_7290 = 1.0;vec3 _5105 = normalize(shading_view + _4731);float _5108 = clamp(_4742, 0.0, 1.0);float _5112 = clamp(dot(shading_normal, _5105), 0.0, 1.0);float _5200 = _5112 * _4034;float _5207 = _4034 / ((1.0 - (_5112 * _5112)) + (_5200 * _5200));float _5277 = 1.0 - clamp(dot(_4731, _5105), 0.0, 1.0);float _5286 = _5277 * _5277;_7318 = _7321;_7308 = _7259 + ((((_3997 * 0.3183098733425140380859375) + (((_4014 + ((vec3(clamp(dot(_4014, vec3(16.5)), 0.0, 1.0)) - _4014) * ((_5286 * _5286) * _5277))) * (((_5207 * _5207) * 0.3183098733425140380859375) * (0.5 / ((_5108 * sqrt(((shading_NoV - (_4228 * shading_NoV)) * shading_NoV) + _4228)) + (shading_NoV * sqrt(((_5108 - (_4228 * _5108)) * _5108) + _4228)))))) * _4053)) * _7136.xyz) * (((_4811 * _7272) * _5108) * _7290));fragColor = vec4(_7259, 1.0);bvec4 _5327 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z));uint param = clamp(uint(dot(vec4(_5327.x ? vec4(1.0).x : vec4(0.0).x, _5327.y ? vec4(1.0).y : vec4(0.0).y, _5327.z ? vec4(1.0).z : vec4(0.0).z, _5327.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.uz & 15u) - 1u);vec4 _3813 = fragColor;vec3 _3815 = _3813.xyz * uintToColorDebug(param);fragColor.x = _3815.x;fragColor.y = _3815.y;fragColor.z = _3815.z;vec3 _3826 = shading_position - frameUniforms.j;vec4 _7264;float _5392 = length(_3826);float _5395 = max(0.001000000047497451305389404296875, _3826.y);float _5405 = frameUniforms.qz * ((1.0 - exp((-frameUniforms.oz) * _5395)) / _5395);float _5421 = min(max(1.0 - exp2(-(_5405 * max(_5392 - frameUniforms.lz, 0.0))), 0.0), frameUniforms.mz);vec3 _7260;_7260 = frameUniforms.pz * (textureLod(light_iblSpecular, _3826, frameUniforms.fz).xyz * frameUniforms.az);_7260 = frameUniforms.pz;vec3 _5443 = _7260 * _5421;vec3 _7263;_7263 = _5443 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_3826, frameUniforms.q) / _5392, 0.0), frameUniforms.sz) * max(1.0 - exp2(-(_5405 * max(_5392 - frameUniforms.rz, 0.0))), 0.0)));_7263 = _5443;vec3 _5491 = (fragColor.xyz * (1.0 - _5421)) + _7263;vec4 _7149 = fragColor;_7149.x = _5491.x;vec4 _7151 = _7149;_7151.y = _5491.y;vec4 _7153 = _7151;_7153.z = _5491.z;_7264 = _7153;_7264 = fragColor;fragColor = _7264;LSLG_TAMTT TTT> P $TP     vv $!!p#"8&#@)%,&0'D50r;D;E;F@GEPRMPNXBNe~OfTgYbbbdb.gbilmbqltu,{ ,{ ,{ ,{ |,{|\~ 8 r!"d#\%&'0&DXEtFtGrPPʫXe0fgҷb  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~GU^^^^     ^^^^^^^^ !^"^ 3_`abcdefghijklmnopqrstuvwxyz{|}~GHa#$%&'(O)*+U,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd^ef^ghiEjklmnopqrstu^v^wxyz{|}~^^^^^^^^^^^^^^^'W_`abcdefghijklmnopqrstuvwxyz{|}~GHa#$%&'(OU^^^^     ^^^^^^^^ ^!"#$%&'()*+,-./0123456789:;<=>?@ABCDE^F^GHI^JKLM^N^OHI^PQRSTUV^W^,_`abcdefghijklmnopqrstuvwxyz{|}~GHa#$%&'(OXYZU[\]^_`abcdefghijklmnopqrstuvwxyz{|}~^^t^^^^^^^^^^^^^^^^^^I^^^I^     ^^ f  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUZ\]^6_`abcdefghijklmnopqrstuvwxyz{|}~GHa#$%&'(O !U"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ^[\^]^_;`abcdefghijk^l^mnopqrstuvwxy^z^{|}^~^^^^^^^^^^^^^^^I^^^^^^^^^^^^^^^^^^^^^   ^^h:_`  abcdefghijklmnopqrstuvwxyz{|}~GHa#$%&'(OU !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST^UV^WXY5Z[\]^_`abcde^f^ghijklmnopqrs^t^uvw^xyz^^{|}~^^^^^^I^^^I^^^^   I^  ^^^^^^I^^^ !"#$^%^+T_`  abcdefghijklmnopqrstuvwxyz{|}~GHa#$%&'(O&'()*U+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc^de^fghDijklmnopqrst^u^vwxyz{|}~^^^^^^^^^^^^^^^^^^I^^^^^^^^^^      !"#$%&'()*+,-./^01234^567I^89:;^<^=67I^>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a^b^cdefghijklmnopqrstuvwxyz{|}~^I^^^^^^^7I^^^^^^^^^^^^^^^^^O  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUI^^^^^^^\]^  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU     I^^^ !"^#^$%&'()*+,-./0123456789:;<=>?@ABC^D^EFGHIJKL\]^]  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPTQRSUM\]^ _`U^X   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPTQRSNUOPQRSTUVWXYI^Z^[^\]^_`abcdefghi^j^k\]^{"_`abcdefghijklmnopqrstuvwxyz{|}~GlmnUopqrstuvwxyz{|}~^^^^^^^^^^^^^^^^^^^^$`_`abcdefghijklmnopqrstuvwxyz{|}~GHa#$%&'(OU      !"#$%&'()*+,^-.^/01 23456789:;<=^>^?@ABCDEFGHIJK^L^MNO^PQR^^STUV^W^XY^Z[\]^^_`abcdefgh^i^j^klm^nm^opqrstuvwxyz{|}~^^^^^^^3,_`abcdefghijklmnopqrstuvwxyz{|}~GHa#$%&'(OU^^^^^^^^^^^^^                           ^ ^! " I^# $ % & ^' ^( " I^) * + , - . / ^0 1 2 3 4 5 6 7 8 ^9 ^: ; < ^= ^> ? @ A B C D E ^F ^G ^0_`abcdefghijklmnopqrstuvwxyz{|}~GHa#$%&'(OH I J UK L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  ^ ^  d  ^ ^   ^ ^  ^  ^^ ^ ^  ^ ^    ^ ^ ^  ^  ^   ^ ^  I^  ^ ^  I^    ^      ^ ^   ^ ^        ^ ^ ^^:"_`abcdefghijklmnopqrstuvwxyz{|}~GHa#$%&'(O    U! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y ^Z [ ^\ ] ^ : _ ` a b c d e f g h i j ^k ^ul m n o p q r s t u v w ^x ^y z { ^| } ~ ^^ ^ ^  ^ ^    ^ ^ ^  ^  ^     ^ ^ ^      ^ I^ ^^ ^ ^ ^ ^  ^ ^ ^    ^  ^  ^  ^  ^  ^^^^^^    ^       ^ ^   ^ ^        ^ ^! ^>"_`  abcdefghijklmnopqrstuvwxyz{|}~GHa#$%&'(O" # $ % U& ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ ^_ ` ^a b c ? d e f g h i j k l m n o ^p ^q r s t u v w x y z { | } ^~ ^  ^  ^^ ^ ^  ^ ^   ^ ^  I^  ^ ^  I^   ^ ^                ^   I^  ^^   ^  ^  ^ ^! " I^# $ ^% & ^' ( ) * + , - . ^/ 0 1 2 3 4 5 6 7 ^8 ^9 : ; ^< ^= > ? @ A B C D ^E ^F ^wX_`  abcdefghijklmnopqrstuvwxyz{|}~GHa#$%&'(OG H I J K UL M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  ^ ^  e  ^ ^   ^ ^  ^  ^^ ^ ^  ^ ^    ^ ^ ^  ^  ^     ^ ^ ^               ^   I^  ^^  ^ ^ ^ ^   ^ ^ ^   ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T ^U V W X Y ^Z [ \ I^] ^ _ ` ^a ^b [ \ I^c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  ^ ^      ^ I^ ^^ ^ ^ ^ ^  \ I^ ^ ^ ^    ^  ^  ^  ^  ^  ^^^^^^ ^   ^ ^  ^ ^ ^ ^ ^_`Ha#$%&'(O U ^ _`U ^ISo_` abcdefghijklmnopqrstuvwxyz{|}~GHa#$%&'(O  U       !"#$%&'()*+,-./012^34^56789:;<=>?@ABC^D^EFGHIJKLMNOPQ^R^STU^VWX^^YZ[\^]^^_^`abc^defghij^k^l^mno^po^qrstuvwxyz^{|}~^I^^^I^^I^^^^^^  I^  ^^ ^^^^o^^^ !"^#$^%&^'(^)*^+,^^^^^^-./012^^bXs_`3  abcdefghijklmnopqrstuvwxyz{|}~GHa#$%&'(O 4567U89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop^qr^stuQvwxyz{|}~^^^^ ^^^^^^^^^I^^^I^|^I^^     ^ !"#$%&'(I^)*^+,-./0123456789:;<=>I^?@^ABCDEFGHIJKLMNO^PQ^R^STUVWXYZ[\]^_`abcdefghijklmnop^qrsI^tu^^vwx^yz^{|^}~^I^^^^^_`  abcdefghijklmnopqrstuvwxyz{|}~GHa#$%&'(O U^^^^^^^^^^^^^^^^    ^  ^^|^ !"#$%&'()*+,-./01234567I^89^:;<=>?^@ABCDEFGHIJKLMNOPQRSTUVWXYI^Z[^\]^_`abcdefghijklmnopI^qr^stuvwxyz{|}~^^^^I^^^^^^^ ^^^^^I^^^I^|^     I^^ !"^#$%&'()*+,-./0123456789:;<=I^>?^@ABCDEFGHIJKLMNOPQRSI^TU^VWXYZ[\]^_`abcd^ef^g^hijklmnopqrstuvwxyz{|}~^I^^^^^^^I^^^^^^^^^^^^^^^^^s_  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPRTQSU\]^_`U^   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPRTQSUI^^^]^^\]^W_`abcdefghijklmnopqrstuvwxyz{|}~GHa#$%&'(O U     ^ !^"#$%&'()*+,-./0^1^23456789:;<=>^?^@AB^CDE^^FGHI^J^KL^MNOP^QRSTUVWXYZ[^\^]^^_`^a`^bcdetfghij^k|lmnopqr^stuvwxyz{|}~I^^^NI^^I^^^^^^I^^^^^^^`^^^   ^  ^^^^^^^^^^^ !"#^$^%&'^(^)*+,-./0^1^2^\_`3  abcdefghijklmnopqrstuvwxyz{|}~GHa#$%&'(O 4567U89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop^qr^stuQvwxyz{|}~^^^^^^^^^^^3^^I^^^I^|^I^ ^    ^ !"#$%&'()I^*+^,-./0123456789:;<=>?I^@A^BCDEFGHIJKLMNOP^QR^S^TUVAWXYZ[\]^_`abcdefghijklmnop^qrsI^tu^^vwx^yz^{|^}~^I^d^^^^^^^^^^_`  abcdefghijklmnopqrstuvwxyz{|}~GHa#$%&'(O U^^^^^^^^^    ^ ^^^^ ^!^"#$%&^'&^()*+,-./01^2|3456789^:;<=>?@ABCDEFGHIJKLMNOPQI^RS^TUVWXY^Z[\]^_`abcdefghijklmnopqrI^st^uvwxyz{|}~I^^^^^^I^^^^^^^&^^^^^I^   ^ ^ I^|^ !"#$%&'()*+,-./01234I^56^789:;^<=>?@ABCDEFGHIJKLMNOPQRSTUVI^WX^YZ[\]^_`abcdefghijklI^mn^opqrstuvwxyz{|}^~^^^I^^^^^^^I^^^^^^^^^^^^^^^^^^^^^^^c lmnopqrstuvwxyz{}~=>?@AGHI$%&'(OPQUZ\]^ lmnopqrstuvwxyz{}~=>?@AG     ^^^ !"#$%&^'^()*^+,-^^./0^12345678^9^^U:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ^[^\]^_`^a^b^=&/cdefghijklmnopqrsteuv lmnopqrstuvwxyz{}~=>?@AGHI$%&'(Owxyz{|}~^^^%^^*^-^^^1^9^^^^^U;^^^^^*O lmnopqrstuvwxyz{}~=>?@AGHI$%&'(O  ^^^   %^^*^-^^^1^9^^U ;!"#$%&'()*+,-./0123456789:;<=>?@AB^C^DEFGH^I^JKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn^o^pqI^rstu^v^wqI^xyz{|}~^^2cdefghijklmnopqrsteuv lmnopqrstuvwxyz{}~=>?@AGHI$%&'(Owxy^^^%^^*^-^^^1^9^^^^^U;^^^^     ^^I^^^I^ ^!^Ig lmnopqrstuvwxyz{}~=>?@AGHI$%&'(OPQ"U#$%&Z'()*\]^:cdefghijklmnopqrsteuv lmnopqrstuvwxyz{}~=>?@AGHI$%&'(O+,-xwy./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ^^^RSTUV%W^X^YZ*^[\-^^]^_^1`abcdef^9^^ghi^jkl^m^n^opqrstuvwxyz{|}~^^^I^^^^^^^^^^^^^^^^^^^^^^^U;^^^^^^<  lmnopqrstuvwxyz{}~=>?@AGHI$%&'(O+, 678    ABCDQ IS PQ^^^%^ ^Y!*^"#-^^$%_^1`&'()*+^9^^U,;-./0123456789:;<=>?@ABCDEFGHIJKLMN^O^PQRST^U^VWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~^^I^^^I^^^^I^^^^^^^I^^^^^[Xcdefghijklmnopqrsteuv  lmnopqrstuvwxyz{}~=>?@AGHI$%&'(O+,-xwy     ^^^%^^ !*^"#-^^$%&^1'()*+,-^9^^ghi^./0^1^2^3456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU^V^WXYZ[\]^_`abcdefghijklmnopq^rstI^uv^^wx^y^z^{^|}^~^^^^^^^^^^^^^^^U;^^^^u^^I^^^I^     ^^ !"#$%&'()*+,-./012^345I^67^^89:^;<^=>^?@^ABI^CD^EF^GHIJKLMNO^PQRSTUVW^^ lmnopqrstuvwxyz{}~=>?@AGHI$%&'(OXYPQZ[U\]^_`abcI^^d^efghijklmnopqrs^t^uvwgxyz{|}~^^\]^ lmnopqrstuvwxyz{}~=>?@AGHI$%&'(OXYPQ"UI^^^^^^^\]^^ lmnopqrstuvwxyz{}~=>?@AGHI$%&'(OPQUM\]^U^  lmnopqrstuvwxyz{}~=>?@AGHI$%&'(OXYPQU\O[I^j^^]^^\]^+" lmnopqrstuvwxyz{}~=>?@AG     ^^^ %!^"^#$*^%&-^^'()^1*+,-./0^9^^U1;23456789:;<=>?@ABCDEFGHIJKLMNOP^Q^RSTUV^W^XYZ[\]^_`^a^bcd^e^fghijklm^n^o^*Xcdefghijklmnopqrsteuv lmnopqrstuvwxyz{}~=>?@AGHI$%&'(Owxypqrstuvwxyz{|}~^^^%^^*^-^^^1^9^^^^^U;^^^^^^^^^^^,/x lmnopqrstuvwxyz{}~=>?@AGHI$%&'(O     ^^^%^^*^-^^^1 !"#$^9^^U%;&'()*+,-./0123456789:;<=>?@ABCDEFG^H^IJKLM^N^OPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrs^t^uvI^wxyz^{^|vI^}~^^^^^^^^-7cdefghijklmnopqrsteuv lmnopqrstuvwxyz{}~=>?@AGHI$%&'(Owxy^^^%^^*^-^^^1^9^^^^^U;^^    ^ ^                      ! " # $ % & ' ( ) * + ^, ^- . I^/ 0 1 2 ^3 ^4 . I^5 6 7 8 9 : ; < ^= > ? @ A B C D E ^F ^G H I ^J ^K L M N O P Q R ^S ^T ^:?cdefghijklmnopqrsteuv lmnopqrstuvwxyz{}~=>?@AGHI$%&'(O+,-xwyU V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x ^^^y z { | } %~ ^ ^ *^ -^^ ^1 ^9^^ghi^ ^ ^ ^   ^ ^      ^ I^ ^^ ^ ^ ^ ^ ^ ^ ^ ^^^^^^^^^^^^^U;  !!!!!!!!^!^ ! ! ! ! !^!^!!!!!!!!!!^!!!!!!! !^!!^"!#!$!^%!^&!'!(!)!*!+!,!-!^.!^/!^j@  lmnopqrstuvwxyz{}~=>?@AGHI$%&'(O+,0!1!2!3!4!5!6!7!8!9!:!;!!?!@!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!^^^Q!R!S!T!U!%V!^W!^X!Y!*^Z![!-^^\!]!^!^1_!`!a!b!c!d!e!^9^^Uf!;g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!{!|!}!~!!!!!!!!!!!^!^!!!!!^!^!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^!!!!!^!!!I^!!!!^!^!!!I^!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^!^!!!!!!!!!!!""""""""" " " " " """""^"""I^""^^"""^""^""^""^ "!"!I^""#"^$"%"^&"'"(")"*"+","-"."^/"0"1"2"3"4"5"6"7"^8"^9":";"^<"^=">"?"@"A"B"C"D"^E"^F"^\cdefghijklmnopqrsteuv  lmnopqrstuvwxyz{}~=>?@AGHI$%&'(O+,-xwyG"H"I"J"K"L"M"N"O"P"Q"R"S"T"U"V"W"X"Y"Z"["\"]"^"_"`"a"b"c"d"e"f"g"h"i"^^^j"k"l"m"n"%o"^p"^q"r"*^s"t"-^^u"v"w"^1x"y"z"{"|"}"~"^9^^ghi^"""^"^"^""""""""""""""""""""""""""""""""""""^"^"""""""""""""""""""""""""""^"""I^""^^""^"^"^"^""^"^"^"""""""""^^^^^^^^^^^^^U;"""""""""""""""""""""""""""^"^"""""^"^"""######### # # # # ################### #!#"###$#%#&#'#(#)#*#+#,#-#.#/#0#^1#2#3#4#5#^6#7#8#I^9#:#;#<#^=#^>#7#8#I^?#@#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O#P#Q#R#S#T#U#V#W#X#Y#Z#[#\#]#^#_#`#a#b#^c#^d#e#f#g#h#i#j#k#l#m#n#o#p#q#r#s#t#u#v#w#x#y#z#{#|#}#~###^###I^##^^###^##^##^##^##8#I^##^##^#########^########^########^#^###^#^########^#^#^HI$%&'(O#U ^$ U ^Y|cdefghijklmnopqrsteuv  lmnopqrstuvwxyz{}~=>?@AGHI$%&'(O+#-#xwy####################################^^^#####%#^#^##*^##-^^###^1#######^9^^ghi^#^######$$^$^$$$$$$ $ $ $ $ $$$$$$$$$I^$$^$$$$^$^$$$$^ $!$"$#$$$%$&$'$$($^)$^*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$I^=$$^>$?$$@$^A$^B$C$D$E$F$G$H$I$J$K$L$I^M$^N$$O$P$^Q$^|R$S$T$U$V$W$X$^Y$^Z$^[$\$]$^$_$^-^`$^a$^b$c$d$e$f$g$h$^i$^j$k$l$m$n$o$p$q$r$s$t$u$v$w$x$y$z${$|$}$~$$$$$$$^$$$I^$$^^$$^$^$^$^$$^$^$^$$$$$$$$$^^^^^^^^^^^^^U$;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$^$^$$$$$^$^$$$$$$$$$$^^Z{  lmnopqrstuvwxyz{}~=>?@AGHI$%&'(O+##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$^^^$$$$$%$^$^$$*^$$-^^$$$^1$$$$$%%^9^^#%%%%%$%^%^ % % % % %%%%%%%%%%%%%%%I^%$^%%$%^ %^!%"%#%$%^ $%%&%'%(%)%*%+%$,%^-%^.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%I^A%$^B%C%$D%^E%^F%G%H%I%J%K%L%M%N%O%P%I^Q%^N$R%S%$T%U%^V%W%^|X%Y%Z%[%\%]%^%^_%^`%^a%b%c%d%e%^-^U$f%;g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v%w%x%y%z%{%|%}%~%%%%%%%%%%%^%^%%%%%^%^%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%^%%%%%^%%%I^%%%%^%^%%%I^%%%%%%^%^%%%%%%%%%%%%%%%%%%%%%%%%%%%%%^%%%I^%%^^%%%^%%^%%^&&^&&%I^&&^&&^& & & & & &&&&^&^dpDcdefghijklmnopqrsteuv  lmnopqrstuvwxyz{}~=>?@AGHI$%&'(O+#-#xwy&&&&&&&&&&&&&& &!&"&#&$&%&&&'&(&)&*&+&,&-&.&/&0&1&2&3&4&^^^5&6&7&8&9&%:&^;&^<&=&*^>&?&-^^@&A&B&^1C&D&E&F&G&H&I&^9^^ghi^#^#J&K&L&M&N&$O&^P&^Q&R&S&T&U&V&W&X&ktY&Z&[&\&]&^&_&`&a&I^b&$^c&d&$e&^f&^g&h&i&j&^ $k&l&m&n&o&p&q&$r&^s&^t&u&v&w&x&y&z&A{&|&}&~&&&&&&&I^&$^&&$&^&^&&&&&&&&&&I^&^N$&&$O$&&^&&^|&&&&&&&^&^&^&&&&&^-^&^&^&&&&&&&^&^&&&&&&&&&&&&&&&&&&&&&&&&&&^&&&I^&&^^&&^&^&^&^&&^&^&^&&&&&&&&&^^^^^^^^^^^^^U$;&&&&&&&&&&&&&&&&&&&&&&& #&&&&&'''^'^'''''^ '^ ' ' ' ''''' #'''''''''''''' '!'"'#'$'%'&'''(')'*'+','-'.'/'0'1'2'3'4'5'6'7'8'9':';'^<'='>'?'@'^A'B'C'I^D'E'F'G'^H'^I'B'C'I^J'K'L'M'N'^O'^P'Q'R'S'T'U'V'W'X'Y'Z'['\']'^'_'`'"a' b'c'd'e'f'g'h'i'j'^k'?l'I^m'n'^^o'p'q'^r's'^t'u'^v'w'^x'y'C'I^z'{'^|'+^}'~''''''''^''''''''^^` lmnopqrstuvwxyz{}~=>?@AGHI$%&'(OPQU'''\]^U'''^  lmnopqrstuvwxyz{}~=>?@AGHI$%&'(OXYPQ'U''''''''I^^'^']''''''''''''^'^'''\]^#^cdefghijklmnopqrsteuv  lmnopqrstuvwxyz{}~=>?@AGHI$%&'(O+#-#xwy''''''''''''''''''''''''''''''''''''^^^'''''%'^'^'*^''-^^'''^1'''''''^9^^ghi^#^#'''''$'^'^''''''''''''''''''(I^($^(($(^(^((( (^ $ ( ( ( (((($(^(^((((((((((((( (!("(#($(%(I^&($^'((($)(^*(^+(,(-(.(/(0(1(2(3(4(5(I^6(^N$7($O$8(^9(^|:(;(<(=(>(?(@(^A(^B(^C(D(E(F(G(^-^H(^I(^J(K(L(M(N(O(P(^Q(^R(S(T(U(V(W(X(Y(Z([(\(](^(_(`(a(b(c(d(e(f(g(h(i(j(k(l(^m(n(o(I^p(q(^^r(s(^t(^u(^v(^w(x(^y(^z(^{(|(}(~((((((^^^^^^^^^^^^^U$;((((((((((((((((((((((((((((((^(^(((((^(^((((((((((^((((((((^(^(((^(^(((0 ((((^(^(^a^  lmnopqrstuvwxyz{}~=>?@AGHI$%&'(O+##(((((((((((((((((((((((((((((((((^^^(((((%(^(^((*^((-^^(((^1(((((((^9^^#())))$)^)^))) ) ) ) ) ))))))))))))I^)$^))$)^)^)) )!)^ $")#)$)%)&)')()$))^*)^+),)-).)/)0)1)2)3)4)5)6)7)8)9):);)<)=)I^>)$^?)@)$A)^B)^C)D)E)F)G)H)I)J)K)L)M)I^N)^N$O)P)$Q)R)^S)T)^|U)V)W)X)Y)Z)[)^\)^])^^)_)`)a)b)^-^U$c);d)e)f)g)h)i)j)k)l)m)n)o)p)q)r)s)t)u)v)w)x)y)z){)|)})~))))))))^)^)))))^)^))))))))))))))))))))))))))))))))))))))))))))))))))^)))))^)))I^))))^)^)))I^))))))^)^)))))))))))))))))))))))))))))^)))I^))^^)))^))^))^))^)*)I^**^**^**** * * * * *^*********^*^***^*^**** *!*"*#*^$*^%*^tmcdefghijklmnopqrsteuv  lmnopqrstuvwxyz{}~=>?@AGHI$%&'(O+#-#xwy&*'*(*)***+*,*-*.*/*0*1*2*3*4*5*6*7*8*9*:*;*<*=*>*?*@*A*B*C*D*E*F*G*H*^^^I*J*K*L*M*%N*^O*^P*Q**^R*S*-^^T*U*V*^1W*X*Y*Z*[*\*]*^9^^ghi^#^#^*_*`*a*b*$c*^d*^e*f*g*h*i*j*k*l*b m*n*o*p*q*r*s*t*u*v*I^w*$^x*y*$z*^{*^|*}*~**^ $*******$*^*^******* ** ********I^*$^**$*^*^* *********I^*^N$**$O$**^**^|*******^*^*^*****^-^*^*^*******^*^***************************^***I^**^^**^*^*^*^**^*^*^*********^^^^^^^^^^^^^U$;******+++++++++ + + + + +++++++++++++^+^+++++^ +^!+"+#+$+%+&+'+(+)+*+++,+-+.+/+0+1+2+3+4+5+6+7+8+9+:+;+<+=+>+?+@+A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+^U+V+W+X+Y+^Z+[+\+I^]+^+_+`+^a+^b+[+\+I^c+d+e+f+g+h+^i+^j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z+{+|+}+~+++++++++^+++I^++^^+++^++^++^++^++\+I^++^++^+++++++++^++++++++^++++++++^+^+++^+^++++++++^+^+^