Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
open3d / resources / gaussianSplat.filamat
Size: Mime:
SREV_TAM
EMAN_TAMdefaultLitLDMS_TAMNMOD_TAMMFER_TAMTFER_TAM BIU_TAMôMaterialParams
baseColorbaseMetallicbaseRoughnessreflectancepointSizeclearCoatclearCoatRoughnessanisotropyshDegree_doubleSided BIS_TAMkMaterialParamsalbedoao_rough_metalMapnormalMapreflectanceMapanisotropyMap BUS_TAMMaterialParamsSSOD_TAMISOD_TAMNELB_TAMDMRT_TAMSWED_TAMIRWC_TAMIRWD_TAMSETD_TAMOMUC_TAMPORP_TAMDAHS_TAMROIC_TAMAQER_TAMÿAAPS_TAMRAVS_TAMš™>RHTS_TAMÍÌL>ODEV_TAMRTNI_TAMPDSC_TAMTXET_CID+#version 410layout(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;vec4 l;vec4 m;vec3 n;uint o;vec3 p;uint q;vec3 r;float s;vec4 t;uvec2 u;vec2 v;float w;float x;float y;float z;vec3 az[9];vec4 bz;float cz;float dz;float ez;uint fz;vec3 gz;float hz;float iz;float jz;float kz;float lz;vec3 mz;float nz;float oz;float pz;float qz;uint rz;float sz;float tz;float uz;float vz;vec2 wz;vec2 xz;vec4 yz[60];} frameUniforms;layout(std140) uniform ObjectUniformsmat3 b;vec4 c;int d;int e;uint f;float g;} objectUniforms;layout(std140) uniform MaterialParamsvec3 a;float b;float c;float d;float e;float f;float h;int i;uint j;} materialParams;layout(location = 0) in vec4 mesh_position;layout(location = 8) in vec4 mesh_custom0;layout(location = 9) in vec4 mesh_custom1;layout(location = 10) in vec4 mesh_custom2;layout(location = 11) in vec4 mesh_custom3;layout(location = 12) in vec4 mesh_custom4;layout(location = 13) in vec4 mesh_custom5;layout(location = 14) in vec4 mesh_custom6;layout(location = 15) in vec4 mesh_custom7;layout(location = 2) in vec4 mesh_color;layout(location = 1) in vec4 mesh_tangents;layout(location = 9) out vec4 vertex_color;layout(location = 0) out vec4 variable_colorFromSh;layout(location = 1) out vec4 variable_test1;layout(location = 2) out vec4 variable_test2;layout(location = 3) out vec4 variable_test3;layout(location = 4) out vec3 vertex_worldPosition;layout(location = 5) out vec3 vertex_worldNormal;layout(location = 7) out vec4 vertex_position;void main()vec4 _654 = (objectUniforms.a[0] * mesh_position.x) + ((objectUniforms.a[1] * mesh_position.y) + ((objectUniforms.a[2] * mesh_position.z) + objectUniforms.a[3]));gl_PointSize = materialParams.e;vec3 _692 = _654.xyz;vec3 _699 = _692 * inversesqrt(dot(_692, _692));vec3 _812 = mesh_custom0.xyz * 0.2820948064327239990234375;vec3 _1118;if (materialParams.i >= 1)vec4 _671 = mesh_custom1;vec4 _672 = mesh_custom2;float _674[9];for (int _1110 = 0; _1110 < 4; )_674[_1110] = _671[_1110];_674[4 + _1110] = _672[_1110];_1110++;continue;}_674[8] = mesh_custom3.x;float _677[9] = _674;vec3 _823;for (int _1111 = 0; _1111 < 3; )_823[_1111] = 0.48860251903533935546875 * ((((-_699.y) * _677[_1111]) + (_699.z * _677[3 + _1111])) - (_699.x * _677[6 + _1111]));_1111++;_1118 = _812 + _823;else_1118 = _812;vec3 _1119;if (materialParams.i >= 2)float _679[15];_679[0] = mesh_custom3.y;_679[1] = mesh_custom3.z;_679[2] = mesh_custom3.w;vec4 _680 = mesh_custom4;vec4 _681 = mesh_custom5;vec4 _682 = mesh_custom6;for (int _1114 = 0; _1114 < 4; )_679[3 + _1114] = _680[_1114];_679[7 + _1114] = _681[_1114];_679[11 + _1114] = _682[_1114];_1114++;float _685[15] = _679;float _909 = _699.z;float _915 = (-1.09254848957061767578125) * _909;float _917 = _699.x;float _922 = _699.y;float _935 = (0.946174681186676025390625 * (_909 * _909)) - 0.3153915703296661376953125;float _939 = _915 * _917;float _943 = _915 * _922;float _945 = 0.546274244785308837890625 * ((_917 * _917) - (_922 * _922));float _947 = 0.546274244785308837890625 * ((2.0 * _917) * _922);vec3 _889;for (int _1115 = 0; _1115 < 3; )_889[_1115] = ((((_947 * _685[_1115]) + (_943 * _685[3 + _1115])) + (_935 * _685[6 + _1115])) + (_939 * _685[9 + _1115])) + (_945 * _685[12 + _1115]);_1115++;_1119 = _1118 + _889;_1119 = _1118;vec4 _1100 = vec4(0.0);_1100.x = _1119.x;vec4 _1103 = _1100;_1103.y = _1119.y;vec4 _1106 = _1103;_1106.z = _1119.z;vec4 _1108 = _1106;_1108.w = 0.0;vertex_color = mesh_color;variable_colorFromSh = _1108;variable_test1 = mesh_custom7;variable_test2 = mesh_custom1;variable_test3 = mesh_custom6;vertex_worldPosition = _692;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 * _654;vertex_position = gl_Position;gl_Position.z = dot(gl_Position.zw, frameUniforms.wz);uniform sampler2D light_ssao;uniform sampler2D light_iblDFG;uniform samplerCube light_iblSpecular;layout(location = 5) in vec3 vertex_worldNormal;layout(location = 4) in vec3 vertex_worldPosition;layout(location = 7) in vec4 vertex_position;layout(location = 0) in vec4 variable_colorFromSh;layout(location = 0) out vec4 fragColor;layout(location = 9) in vec4 vertex_color;layout(location = 1) in vec4 variable_test1;layout(location = 2) in vec4 variable_test2;layout(location = 3) in vec4 variable_test3;vec2 shading_normalizedViewportCoord;vec3 shading_position;vec4 _2017;float _2040;float evaluateSSAO()vec2 _433 = vec3(shading_normalizedViewportCoord, _2040).xy;if (frameUniforms.sz > 0.0)vec4 _459 = textureGather(light_ssao, _433, 1);vec4 _463 = textureGather(light_ssao, _433, 2);vec2 _470 = fract((_433 * vec2(textureSize(light_ssao, 0))) - vec2(0.5));float _473 = _470.x;float _474 = 1.0 - _473;float _476 = _470.y;vec4 _1940 = _2017;_1940.x = _474 * _476;vec4 _1944 = _1940;_1944.y = _473 * _476;float _489 = 1.0 - _476;vec4 _1948 = _1944;_1948.z = _473 * _489;vec4 _1952 = _1948;_1952.w = _474 * _489;vec4 _1958 = _2017;_1958.x = (_459.x * 0.996108949184417724609375) + (_463.x * 0.00389105058275163173675537109375);vec4 _1964 = _1958;_1964.y = (_459.y * 0.996108949184417724609375) + (_463.y * 0.00389105058275163173675537109375);vec4 _1970 = _1964;_1970.z = (_459.z * 0.996108949184417724609375) + (_463.z * 0.00389105058275163173675537109375);vec4 _1976 = _1970;_1976.w = (_459.w * 0.996108949184417724609375) + (_463.w * 0.00389105058275163173675537109375);vec4 _562 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_1976 * (-frameUniforms.dz))) * frameUniforms.sz;vec4 _572 = max(vec4(6.103515625e-05), vec4(1.0) - (_562 * _562)) * _1952;return dot(textureGather(light_ssao, _433), _572) * (1.0 / (((_572.x + _572.y) + _572.z) + _572.w));return textureLod(light_ssao, _433, 0.0).x;vec3 diffuseIrradiance(vec3 n)if (frameUniforms.az[0].x == 65504.0)ivec2 _778 = textureSize(light_iblSpecular, int(frameUniforms.cz));vec3 _793 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _800 = _793 * (1.0 / float(_778.x));vec3 _804 = cross(_793, n) * (1.0 / float(_778.y));vec3 _807 = n - _800;vec3 _812 = n + _800;return (((textureLod(light_iblSpecular, _807 - _804, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _812 - _804, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _812 + _804, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _807 + _804, frameUniforms.cz).xyz) * 0.25;return max((((((((frameUniforms.az[0] + (frameUniforms.az[1] * n.y)) + (frameUniforms.az[2] * n.z)) + (frameUniforms.az[3] * n.x)) + (frameUniforms.az[4] * (n.y * n.x))) + (frameUniforms.az[5] * (n.y * n.z))) + (frameUniforms.az[6] * (((3.0 * n.z) * n.z) - 1.0))) + (frameUniforms.az[7] * (n.z * n.x))) + (frameUniforms.az[8] * ((n.x * n.x) - (n.y * n.y))), vec3(0.0));vec3 _1988;if (materialParams.j != 0u)vec3 _1987;if (gl_FrontFacing)_1987 = vertex_worldNormal;_1987 = -vertex_worldNormal;_1988 = _1987;_1988 = vertex_worldNormal;vec3 _1166 = normalize(_1988);shading_position = vertex_worldPosition;shading_normalizedViewportCoord = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5);float _1229 = max(dot(_1166, normalize(frameUniforms.j - shading_position)), 9.9999997473787516355514526367188e-05);vec3 _1317 = variable_colorFromSh.xyz * 1.0;vec4 _1388 = textureLod(light_iblDFG, vec2(_1229, 1.0), 0.0);float _1424 = min(1.0, evaluateSSAO());float _1517 = clamp((pow(_1229 + _1424, 7.62939453125e-06) - 1.0) + _1424, 0.0, 1.0);vec3 _1525 = mix(_1388.xxx, _1388.yyy, vec3(0.039999999105930328369140625));fragColor = vec4((((((_1317 * diffuseIrradiance(_1166)) * (vec3(1.0) - _1525)) * 1.0) * max(vec3(_1424), ((((((_1317 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _1424) + ((_1317 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _1424) + ((_1317 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _1424)) + (((_1525 * textureLod(light_iblSpecular, _1166, frameUniforms.cz).xyz) * ((vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _1388.y) - 1.0))) * 1.0)) * max(vec3(_1517), ((((vec3(-0.250783979892730712890625) * _1517) + vec3(0.449896037578582763671875)) * _1517) + vec3(0.800507962703704833984375)) * _1517))) * frameUniforms.x, 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 shading_reflected;vec3 _2679;float _2682;vec4 _2706;float _2735;vec2 _749 = vec3(shading_normalizedViewportCoord, _2735).xy;vec4 _775 = textureGather(light_ssao, _749, 1);vec4 _779 = textureGather(light_ssao, _749, 2);vec2 _786 = fract((_749 * vec2(textureSize(light_ssao, 0))) - vec2(0.5));float _789 = _786.x;float _790 = 1.0 - _789;float _792 = _786.y;vec4 _2629 = _2706;_2629.x = _790 * _792;vec4 _2633 = _2629;_2633.y = _789 * _792;float _805 = 1.0 - _792;vec4 _2637 = _2633;_2637.z = _789 * _805;vec4 _2641 = _2637;_2641.w = _790 * _805;vec4 _2647 = _2706;_2647.x = (_775.x * 0.996108949184417724609375) + (_779.x * 0.00389105058275163173675537109375);vec4 _2653 = _2647;_2653.y = (_775.y * 0.996108949184417724609375) + (_779.y * 0.00389105058275163173675537109375);vec4 _2659 = _2653;_2659.z = (_775.z * 0.996108949184417724609375) + (_779.z * 0.00389105058275163173675537109375);vec4 _2665 = _2659;_2665.w = (_775.w * 0.996108949184417724609375) + (_779.w * 0.00389105058275163173675537109375);vec4 _878 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_2665 * (-frameUniforms.dz))) * frameUniforms.sz;vec4 _888 = max(vec4(6.103515625e-05), vec4(1.0) - (_878 * _878)) * _2641;return dot(textureGather(light_ssao, _749), _888) * (1.0 / (((_888.x + _888.y) + _888.z) + _888.w));return textureLod(light_ssao, _749, 0.0).x;ivec2 _1093 = textureSize(light_iblSpecular, int(frameUniforms.cz));vec3 _1108 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _1115 = _1108 * (1.0 / float(_1093.x));vec3 _1119 = cross(_1108, n) * (1.0 / float(_1093.y));vec3 _1122 = n - _1115;vec3 _1127 = n + _1115;return (((textureLod(light_iblSpecular, _1122 - _1119, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1127 - _1119, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1127 + _1119, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1122 + _1119, frameUniforms.cz).xyz) * 0.25;vec3 sampleSunAreaLight(vec3 lightDirection)if (frameUniforms.m.w >= 0.0)float _1317 = dot(lightDirection, shading_reflected);vec3 _2707;if (_1317 < frameUniforms.m.x)_2707 = normalize((lightDirection * frameUniforms.m.x) + (normalize(shading_reflected - (lightDirection * _1317)) * frameUniforms.m.y));_2707 = shading_reflected;return _2707;return lightDirection;void evaluateDirectionalLight(MaterialInputs material, PixelParams pixel, inout vec3 color)vec3 _2211 = sampleSunAreaLight(frameUniforms.p);float _2218 = clamp(dot(shading_normal, _2211), 0.0, 1.0);if (_2218 <= 0.0)return;vec3 _2241 = normalize(shading_view + _2211);float _2244 = clamp(_2218, 0.0, 1.0);float _2248 = clamp(dot(shading_normal, _2241), 0.0, 1.0);float _2336 = _2248 * pixel.roughness;float _2343 = pixel.roughness / ((1.0 - (_2248 * _2248)) + (_2336 * _2336));float _2366 = pixel.roughness * pixel.roughness;float _2413 = 1.0 - clamp(dot(_2211, _2241), 0.0, 1.0);float _2422 = _2413 * _2413;color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_2422 * _2422) * _2413))) * (((_2343 * _2343) * 0.3183098733425140380859375) * (0.5 / ((_2244 * sqrt(((shading_NoV - (_2366 * shading_NoV)) * shading_NoV) + _2366)) + (shading_NoV * sqrt(((_2244 - (_2366 * _2244)) * _2244) + _2366)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * (frameUniforms.l.w * _2244));vec3 _2677;vec3 _2676;_2676 = vertex_worldNormal;_2676 = -vertex_worldNormal;_2677 = _2676;_2677 = vertex_worldNormal;shading_view = normalize(frameUniforms.j - shading_position);shading_normal = normalize(_2677);shading_NoV = max(dot(shading_normal, shading_view), 9.9999997473787516355514526367188e-05);shading_reflected = reflect(-shading_view, shading_normal);vec3 _1717 = variable_colorFromSh.xyz * 1.0;vec4 _1788 = textureLod(light_iblDFG, vec2(shading_NoV, 1.0), 0.0);vec3 _1773 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _1788.y) - 1.0));float _1824 = min(1.0, evaluateSSAO());float _1917 = clamp((pow(shading_NoV + _1824, 7.62939453125e-06) - 1.0) + _1824, 0.0, 1.0);vec3 _1925 = mix(_1788.xxx, _1788.yyy, vec3(0.039999999105930328369140625));vec3 _1638 = (((((_1717 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _1925)) * 1.0) * max(vec3(_1824), ((((((_1717 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _1824) + ((_1717 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _1824) + ((_1717 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _1824)) + (((_1925 * textureLod(light_iblSpecular, shading_normal, frameUniforms.cz).xyz) * (_1773 * 1.0)) * max(vec3(_1917), ((((vec3(-0.250783979892730712890625) * _1917) + vec3(0.449896037578582763671875)) * _1917) + vec3(0.800507962703704833984375)) * _1917))) * frameUniforms.x;evaluateDirectionalLight(MaterialInputs(vec4(variable_colorFromSh.x, variable_colorFromSh.y, variable_colorFromSh.z, vec4(0.0, 0.0, 0.0, 1.0).w), 1.0, 0.0, 0.5, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _2679, _2682, _2682, _2682, _2682, _2679), PixelParams(_1717, 1.0, 1.0, vec3(0.039999999105930328369140625), 1.0, _1788.xyz, _1773), _1638);fragColor = vec4(_1638, 1.0);layout(std140) uniform LightsUniformsmat4 a[256];} lightsUniforms;uniform usampler2D light_froxels;uniform usampler2D light_records;vec4 _3293;vec4 _3319;float _3320;vec2 _794 = vec3(shading_normalizedViewportCoord, _3320).xy;vec4 _819 = textureGather(light_ssao, _794, 1);vec4 _823 = textureGather(light_ssao, _794, 2);vec2 _830 = fract((_794 * vec2(textureSize(light_ssao, 0))) - vec2(0.5));float _833 = _830.x;float _834 = 1.0 - _833;float _836 = _830.y;vec4 _3178 = _3293;_3178.x = _834 * _836;vec4 _3182 = _3178;_3182.y = _833 * _836;float _849 = 1.0 - _836;vec4 _3186 = _3182;_3186.z = _833 * _849;vec4 _3190 = _3186;_3190.w = _834 * _849;vec4 _3196 = _3293;_3196.x = (_819.x * 0.996108949184417724609375) + (_823.x * 0.00389105058275163173675537109375);vec4 _3202 = _3196;_3202.y = (_819.y * 0.996108949184417724609375) + (_823.y * 0.00389105058275163173675537109375);vec4 _3208 = _3202;_3208.z = (_819.z * 0.996108949184417724609375) + (_823.z * 0.00389105058275163173675537109375);vec4 _3214 = _3208;_3214.w = (_819.w * 0.996108949184417724609375) + (_823.w * 0.00389105058275163173675537109375);vec4 _922 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_3214 * (-frameUniforms.dz))) * frameUniforms.sz;vec4 _932 = max(vec4(6.103515625e-05), vec4(1.0) - (_922 * _922)) * _3190;return dot(textureGather(light_ssao, _794), _932) * (1.0 / (((_932.x + _932.y) + _932.z) + _932.w));return textureLod(light_ssao, _794, 0.0).x;ivec2 _1137 = textureSize(light_iblSpecular, int(frameUniforms.cz));vec3 _1152 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _1159 = _1152 * (1.0 / float(_1137.x));vec3 _1163 = cross(_1152, n) * (1.0 / float(_1137.y));vec3 _1166 = n - _1159;vec3 _1171 = n + _1159;return (((textureLod(light_iblSpecular, _1166 - _1163, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1171 - _1163, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1171 + _1163, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1166 + _1163, frameUniforms.cz).xyz) * 0.25;vec3 _3226;vec3 _3225;_3225 = vertex_worldNormal;_3225 = -vertex_worldNormal;_3226 = _3225;_3226 = vertex_worldNormal;vec3 _1833 = normalize(_3226);vec3 _1839 = normalize(frameUniforms.j - shading_position);float _1895 = max(dot(_1833, _1839), 9.9999997473787516355514526367188e-05);vec3 _1988 = variable_colorFromSh.xyz * 1.0;vec4 _2059 = textureLod(light_iblDFG, vec2(_1895, 1.0), 0.0);vec3 _2044 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2059.y) - 1.0));float _2095 = min(1.0, evaluateSSAO());float _2188 = clamp((pow(_1895 + _2095, 7.62939453125e-06) - 1.0) + _2095, 0.0, 1.0);vec3 _2196 = mix(_2059.xxx, _2059.yyy, vec3(0.039999999105930328369140625));float _2361 = 1.0 - gl_FragCoord.z;uvec2 _2400 = uvec2((vec3(shading_normalizedViewportCoord, _2361).xy * frameUniforms.i.xy) * vec2(frameUniforms.w, frameUniforms.s));uint _2385 = ((_2400.x * frameUniforms.q) + (_2400.y * frameUniforms.u.x)) + (uint(max(0.0, (log2((frameUniforms.t.x * _2361) + frameUniforms.t.y) * frameUniforms.t.z) + frameUniforms.t.w)) * frameUniforms.u.y);uvec4 _2432 = texelFetch(light_froxels, ivec2(int(_2385 & 63u), int(_2385 >> 6u)), 0);uint _2435 = _2432.x;uint _2333 = _2435 + (_2432.y & 255u);vec3 _3259;_3259 = (((((_1988 * diffuseIrradiance(_1833)) * (vec3(1.0) - _2196)) * 1.0) * max(vec3(_2095), ((((((_1988 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2095) + ((_1988 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2095) + ((_1988 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2095)) + (((_2196 * textureLod(light_iblSpecular, _1833, frameUniforms.cz).xyz) * (_2044 * 1.0)) * max(vec3(_2188), ((((vec3(-0.250783979892730712890625) * _2188) + vec3(0.449896037578582763671875)) * _2188) + vec3(0.800507962703704833984375)) * _2188))) * frameUniforms.x;vec3 _3286;for (uint _3258 = _2435; _3258 < _2333; _3259 = _3286, _3258++)uvec4 _2470 = texelFetch(light_records, ivec2(int(_3258 & 31u), int(_3258 >> 5u)), 0);uint _2471 = _2470.x;vec3 _2488 = lightsUniforms.a[_2471][0].xyz - vertex_worldPosition;float _2568 = lightsUniforms.a[_2471][1].w * frameUniforms.y;vec4 _3171 = vec4(lightsUniforms.a[_2471][1].x, lightsUniforms.a[_2471][1].y, lightsUniforms.a[_2471][1].z, _3319.w);_3171.w = _2568;vec3 _2501 = normalize(_2488);float _2575 = dot(_2488, _2488);float _2590 = _2575 * lightsUniforms.a[_2471][0].w;float _2595 = clamp(1.0 - (_2590 * _2590), 0.0, 1.0);float _2583 = (_2595 * _2595) / max(_2575, 9.9999997473787516355514526367188e-05);float _2512 = clamp(dot(_1833, _2501), 0.0, 1.0);float _3282;if (floatBitsToUint(lightsUniforms.a[_2471][3].w) == 1u)float _2609 = clamp((dot(-lightsUniforms.a[_2471][2].xyz, _2501) * lightsUniforms.a[_2471][3].x) + lightsUniforms.a[_2471][3].y, 0.0, 1.0);_3282 = _2583 * (_2609 * _2609);_3282 = _2583;if (_2512 <= 0.0)_3286 = _3259;vec3 _2633 = normalize(_1839 + _2501);float _2636 = clamp(_2512, 0.0, 1.0);float _2640 = clamp(dot(_1833, _2633), 0.0, 1.0);float _2785 = (_2636 * sqrt(((_1895 - _1895) * _1895) + 1.0)) + (_1895 * sqrt(((_2636 - _2636) * _2636) + 1.0));float _2805 = 1.0 - clamp(dot(_2501, _2633), 0.0, 1.0);float _2814 = _2805 * _2805;_3286 = _3259 + ((((_1988 * 0.3183098733425140380859375) + (((vec3(0.039999999105930328369140625) + (vec3(0.959999978542327880859375) * ((_2814 * _2814) * _2805))) * (0.15915493667125701904296875 / _2785)) * _2044)) * _3171.xyz) * ((_2568 * _3282) * _2636));fragColor = vec4(_3259, 1.0);vec3 _3607;float _3610;vec4 _3672;vec4 _3704;float _3705;vec2 _805 = vec3(shading_normalizedViewportCoord, _3705).xy;vec4 _830 = textureGather(light_ssao, _805, 1);vec4 _834 = textureGather(light_ssao, _805, 2);vec2 _841 = fract((_805 * vec2(textureSize(light_ssao, 0))) - vec2(0.5));float _844 = _841.x;float _845 = 1.0 - _844;float _847 = _841.y;vec4 _3557 = _3672;_3557.x = _845 * _847;vec4 _3561 = _3557;_3561.y = _844 * _847;float _860 = 1.0 - _847;vec4 _3565 = _3561;_3565.z = _844 * _860;vec4 _3569 = _3565;_3569.w = _845 * _860;vec4 _3575 = _3672;_3575.x = (_830.x * 0.996108949184417724609375) + (_834.x * 0.00389105058275163173675537109375);vec4 _3581 = _3575;_3581.y = (_830.y * 0.996108949184417724609375) + (_834.y * 0.00389105058275163173675537109375);vec4 _3587 = _3581;_3587.z = (_830.z * 0.996108949184417724609375) + (_834.z * 0.00389105058275163173675537109375);vec4 _3593 = _3587;_3593.w = (_830.w * 0.996108949184417724609375) + (_834.w * 0.00389105058275163173675537109375);vec4 _933 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_3593 * (-frameUniforms.dz))) * frameUniforms.sz;vec4 _943 = max(vec4(6.103515625e-05), vec4(1.0) - (_933 * _933)) * _3569;return dot(textureGather(light_ssao, _805), _943) * (1.0 / (((_943.x + _943.y) + _943.z) + _943.w));return textureLod(light_ssao, _805, 0.0).x;ivec2 _1148 = textureSize(light_iblSpecular, int(frameUniforms.cz));vec3 _1163 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _1170 = _1163 * (1.0 / float(_1148.x));vec3 _1174 = cross(_1163, n) * (1.0 / float(_1148.y));vec3 _1177 = n - _1170;vec3 _1182 = n + _1170;return (((textureLod(light_iblSpecular, _1177 - _1174, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1182 - _1174, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1182 + _1174, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1177 + _1174, frameUniforms.cz).xyz) * 0.25;float _1372 = dot(lightDirection, shading_reflected);vec3 _3673;if (_1372 < frameUniforms.m.x)_3673 = normalize((lightDirection * frameUniforms.m.x) + (normalize(shading_reflected - (lightDirection * _1372)) * frameUniforms.m.y));_3673 = shading_reflected;return _3673;vec3 _3097 = sampleSunAreaLight(frameUniforms.p);float _3104 = clamp(dot(shading_normal, _3097), 0.0, 1.0);if (_3104 <= 0.0)vec3 _3127 = normalize(shading_view + _3097);float _3130 = clamp(_3104, 0.0, 1.0);float _3134 = clamp(dot(shading_normal, _3127), 0.0, 1.0);float _3222 = _3134 * pixel.roughness;float _3229 = pixel.roughness / ((1.0 - (_3134 * _3134)) + (_3222 * _3222));float _3252 = pixel.roughness * pixel.roughness;float _3299 = 1.0 - clamp(dot(_3097, _3127), 0.0, 1.0);float _3308 = _3299 * _3299;color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_3308 * _3308) * _3299))) * (((_3229 * _3229) * 0.3183098733425140380859375) * (0.5 / ((_3130 * sqrt(((shading_NoV - (_3252 * shading_NoV)) * shading_NoV) + _3252)) + (shading_NoV * sqrt(((_3130 - (_3252 * _3130)) * _3130) + _3252)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * (frameUniforms.l.w * _3130));vec3 _3605;vec3 _3604;_3604 = vertex_worldNormal;_3604 = -vertex_worldNormal;_3605 = _3604;_3605 = vertex_worldNormal;shading_normal = normalize(_3605);vec3 _2082 = variable_colorFromSh.xyz * 1.0;vec4 _2153 = textureLod(light_iblDFG, vec2(shading_NoV, 1.0), 0.0);vec3 _2138 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2153.y) - 1.0));float _2189 = min(1.0, evaluateSSAO());float _2282 = clamp((pow(shading_NoV + _2189, 7.62939453125e-06) - 1.0) + _2189, 0.0, 1.0);vec3 _2290 = mix(_2153.xxx, _2153.yyy, vec3(0.039999999105930328369140625));vec3 _1998 = (((((_2082 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _2290)) * 1.0) * max(vec3(_2189), ((((((_2082 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2189) + ((_2082 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2189) + ((_2082 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2189)) + (((_2290 * textureLod(light_iblSpecular, shading_normal, frameUniforms.cz).xyz) * (_2138 * 1.0)) * max(vec3(_2282), ((((vec3(-0.250783979892730712890625) * _2282) + vec3(0.449896037578582763671875)) * _2282) + vec3(0.800507962703704833984375)) * _2282))) * frameUniforms.x;evaluateDirectionalLight(MaterialInputs(vec4(variable_colorFromSh.x, variable_colorFromSh.y, variable_colorFromSh.z, vec4(0.0, 0.0, 0.0, 1.0).w), 1.0, 0.0, 0.5, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _3607, _3610, _3610, _3610, _3610, _3607), PixelParams(_2082, 1.0, 1.0, vec3(0.039999999105930328369140625), 1.0, _2153.xyz, _2138), _1998);float _2455 = 1.0 - gl_FragCoord.z;uvec2 _2494 = uvec2((vec3(shading_normalizedViewportCoord, _2455).xy * frameUniforms.i.xy) * vec2(frameUniforms.w, frameUniforms.s));uint _2479 = ((_2494.x * frameUniforms.q) + (_2494.y * frameUniforms.u.x)) + (uint(max(0.0, (log2((frameUniforms.t.x * _2455) + frameUniforms.t.y) * frameUniforms.t.z) + frameUniforms.t.w)) * frameUniforms.u.y);uvec4 _2526 = texelFetch(light_froxels, ivec2(int(_2479 & 63u), int(_2479 >> 6u)), 0);uint _2529 = _2526.x;uint _2427 = _2529 + (_2526.y & 255u);vec3 _3638;_3638 = _1998;vec3 _3665;for (uint _3637 = _2529; _3637 < _2427; _3638 = _3665, _3637++)uvec4 _2564 = texelFetch(light_records, ivec2(int(_3637 & 31u), int(_3637 >> 5u)), 0);uint _2565 = _2564.x;vec3 _2582 = lightsUniforms.a[_2565][0].xyz - vertex_worldPosition;float _2662 = lightsUniforms.a[_2565][1].w * frameUniforms.y;vec4 _3550 = vec4(lightsUniforms.a[_2565][1].x, lightsUniforms.a[_2565][1].y, lightsUniforms.a[_2565][1].z, _3704.w);_3550.w = _2662;vec3 _2595 = normalize(_2582);float _2669 = dot(_2582, _2582);float _2684 = _2669 * lightsUniforms.a[_2565][0].w;float _2689 = clamp(1.0 - (_2684 * _2684), 0.0, 1.0);float _2677 = (_2689 * _2689) / max(_2669, 9.9999997473787516355514526367188e-05);float _2606 = clamp(dot(shading_normal, _2595), 0.0, 1.0);float _3661;if (floatBitsToUint(lightsUniforms.a[_2565][3].w) == 1u)float _2703 = clamp((dot(-lightsUniforms.a[_2565][2].xyz, _2595) * lightsUniforms.a[_2565][3].x) + lightsUniforms.a[_2565][3].y, 0.0, 1.0);_3661 = _2677 * (_2703 * _2703);_3661 = _2677;if (_2606 <= 0.0)_3665 = _3638;vec3 _2727 = normalize(shading_view + _2595);float _2730 = clamp(_2606, 0.0, 1.0);float _2734 = clamp(dot(shading_normal, _2727), 0.0, 1.0);float _2879 = (_2730 * sqrt(((shading_NoV - shading_NoV) * shading_NoV) + 1.0)) + (shading_NoV * sqrt(((_2730 - _2730) * _2730) + 1.0));float _2899 = 1.0 - clamp(dot(_2595, _2727), 0.0, 1.0);float _2908 = _2899 * _2899;_3665 = _3638 + ((((_2082 * 0.3183098733425140380859375) + (((vec3(0.039999999105930328369140625) + (vec3(0.959999978542327880859375) * ((_2908 * _2908) * _2899))) * (0.15915493667125701904296875 / _2879)) * _2138)) * _3550.xyz) * ((_2662 * _3661) * _2730));fragColor = vec4(_3638, 1.0);layout(location = 11) out vec4 vertex_lightSpacePosition;vec4 _709 = (objectUniforms.a[0] * mesh_position.x) + ((objectUniforms.a[1] * mesh_position.y) + ((objectUniforms.a[2] * mesh_position.z) + objectUniforms.a[3]));vec3 _747 = _709.xyz;vec3 _754 = _747 * inversesqrt(dot(_747, _747));vec3 _867 = mesh_custom0.xyz * 0.2820948064327239990234375;vec3 _1201;vec4 _726 = mesh_custom1;vec4 _727 = mesh_custom2;float _729[9];for (int _1193 = 0; _1193 < 4; )_729[_1193] = _726[_1193];_729[4 + _1193] = _727[_1193];_1193++;_729[8] = mesh_custom3.x;float _732[9] = _729;vec3 _878;for (int _1194 = 0; _1194 < 3; )_878[_1194] = 0.48860251903533935546875 * ((((-_754.y) * _732[_1194]) + (_754.z * _732[3 + _1194])) - (_754.x * _732[6 + _1194]));_1194++;_1201 = _867 + _878;_1201 = _867;vec3 _1202;float _734[15];_734[0] = mesh_custom3.y;_734[1] = mesh_custom3.z;_734[2] = mesh_custom3.w;vec4 _735 = mesh_custom4;vec4 _736 = mesh_custom5;vec4 _737 = mesh_custom6;for (int _1197 = 0; _1197 < 4; )_734[3 + _1197] = _735[_1197];_734[7 + _1197] = _736[_1197];_734[11 + _1197] = _737[_1197];_1197++;float _740[15] = _734;float _964 = _754.z;float _970 = (-1.09254848957061767578125) * _964;float _972 = _754.x;float _977 = _754.y;float _990 = (0.946174681186676025390625 * (_964 * _964)) - 0.3153915703296661376953125;float _994 = _970 * _972;float _998 = _970 * _977;float _1000 = 0.546274244785308837890625 * ((_972 * _972) - (_977 * _977));float _1002 = 0.546274244785308837890625 * ((2.0 * _972) * _977);vec3 _944;for (int _1198 = 0; _1198 < 3; )_944[_1198] = ((((_1002 * _740[_1198]) + (_998 * _740[3 + _1198])) + (_990 * _740[6 + _1198])) + (_994 * _740[9 + _1198])) + (_1000 * _740[12 + _1198]);_1198++;_1202 = _1201 + _944;_1202 = _1201;vec4 _1183 = vec4(0.0);_1183.x = _1202.x;vec4 _1186 = _1183;_1186.y = _1202.y;vec4 _1189 = _1186;_1189.z = _1202.z;vec4 _1191 = _1189;_1191.w = 0.0;variable_colorFromSh = _1191;vertex_worldPosition = _747;float _1069 = clamp(dot(vertex_worldNormal, frameUniforms.p), 0.0, 1.0);vertex_lightSpacePosition = frameUniforms.g[0] * vec4(vertex_worldPosition + (vertex_worldNormal * (sqrt(1.0 - (_1069 * _1069)) * frameUniforms.r.y)), 1.0);gl_Position = frameUniforms.e * _709;uniform sampler2D light_structure;uniform sampler2DArrayShadow light_shadowMap;layout(location = 11) in vec4 vertex_lightSpacePosition;vec3 _4052;float _4055;vec4 _4079;vec3 _4083;float _4125;vec3 _518;vec2 _1421 = vec3(shading_normalizedViewportCoord, _4125).xy;vec4 _1443 = textureGather(light_ssao, _1421, 1);vec4 _1447 = textureGather(light_ssao, _1421, 2);vec2 _1454 = fract((_1421 * vec2(textureSize(light_ssao, 0))) - vec2(0.5));float _1457 = _1454.x;float _1458 = 1.0 - _1457;float _1460 = _1454.y;vec4 _3964 = _4079;_3964.x = _1458 * _1460;vec4 _3968 = _3964;_3968.y = _1457 * _1460;float _1473 = 1.0 - _1460;vec4 _3972 = _3968;_3972.z = _1457 * _1473;vec4 _3976 = _3972;_3976.w = _1458 * _1473;vec4 _3982 = _4079;_3982.x = (_1443.x * 0.996108949184417724609375) + (_1447.x * 0.00389105058275163173675537109375);vec4 _3988 = _3982;_3988.y = (_1443.y * 0.996108949184417724609375) + (_1447.y * 0.00389105058275163173675537109375);vec4 _3994 = _3988;_3994.z = (_1443.z * 0.996108949184417724609375) + (_1447.z * 0.00389105058275163173675537109375);vec4 _4000 = _3994;_4000.w = (_1443.w * 0.996108949184417724609375) + (_1447.w * 0.00389105058275163173675537109375);vec4 _1545 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_4000 * (-frameUniforms.dz))) * frameUniforms.sz;vec4 _1555 = max(vec4(6.103515625e-05), vec4(1.0) - (_1545 * _1545)) * _3976;return dot(textureGather(light_ssao, _1421), _1555) * (1.0 / (((_1555.x + _1555.y) + _1555.z) + _1555.w));return textureLod(light_ssao, _1421, 0.0).x;ivec2 _1758 = textureSize(light_iblSpecular, int(frameUniforms.cz));vec3 _1772 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _1779 = _1772 * (1.0 / float(_1758.x));vec3 _1783 = cross(_1772, n) * (1.0 / float(_1758.y));vec3 _1786 = n - _1779;vec3 _1791 = n + _1779;return (((textureLod(light_iblSpecular, _1786 - _1783, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1791 - _1783, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1791 + _1783, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1786 + _1783, frameUniforms.cz).xyz) * 0.25;float _1980 = dot(lightDirection, shading_reflected);vec3 _4080;if (_1980 < frameUniforms.m.x)_4080 = normalize((lightDirection * frameUniforms.m.x) + (normalize(shading_reflected - (lightDirection * _1980)) * frameUniforms.m.y));_4080 = shading_reflected;return _4080;vec3 getCascadeLightSpacePosition(uint cascade)if (cascade == 0u)return vertex_lightSpacePosition.xyz * (1.0 / vertex_lightSpacePosition.w);float _3740 = clamp(dot(shading_normal, frameUniforms.p), 0.0, 1.0);vec4 _3755 = frameUniforms.g[cascade] * vec4(shading_position + (shading_normal * (sqrt(1.0 - (_3740 * _3740)) * frameUniforms.r.y)), 1.0);return _3755.xyz * (1.0 / _3755.w);float _2094;vec3 _2984 = sampleSunAreaLight(frameUniforms.p);float _2991 = clamp(dot(shading_normal, _2984), 0.0, 1.0);if (_2991 > 0.0)bvec4 _3008 = 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 _3018 = clamp(uint(dot(vec4(_3008.x ? vec4(1.0).x : vec4(0.0).x, _3008.y ? vec4(1.0).y : vec4(0.0).y, _3008.z ? vec4(1.0).z : vec4(0.0).z, _3008.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u);float _4084;if (((frameUniforms.fz & 1u) != 0u) && ((frameUniforms.rz & ((1u << _3018) << 8u)) != 0u))uint param = _3018;vec3 _2066 = getCascadeLightSpacePosition(param);vec2 _3051 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);vec2 _3086 = vec2(1.0) / _3051;vec2 _3096 = (clamp(_2066.xy, vec2(-1.0), vec2(2.0)).xy * _3051) + vec2(0.5);vec2 _3102 = (floor(_3096) - vec2(0.5)) * _3086;vec2 _3104 = fract(_3096);float _3106 = _3104.x;float _3107 = 2.0 * _3106;float _3108 = 3.0 - _3107;float _3112 = 1.0 + _3107;float _3115 = _3104.y;float _3116 = 2.0 * _3115;float _3117 = 3.0 - _3116;float _3121 = 1.0 + _3116;vec2 _3154 = vec2(((2.0 - _3106) / _3108) - 1.0, (_3106 / _3112) + 1.0) * _3086.x;vec2 _3158 = vec2(((2.0 - _3115) / _3117) - 1.0, (_3115 / _3121) + 1.0) * _3086.y;float _3172 = _3154.x;float _3174 = _3158.x;float _3249 = float(_3018);float _3251 = clamp(_2066.z, 0.0, 1.0);float _3189 = _3154.y;float _3208 = _3158.y;_4084 = (((((_3108 * _3117) * texture(light_shadowMap, vec4(vec4(_3102 + vec2(_3172, _3174), _3249, _3251).xyz, _3251))) + ((_3112 * _3117) * texture(light_shadowMap, vec4(vec4(_3102 + vec2(_3189, _3174), _3249, _3251).xyz, _3251)))) + ((_3108 * _3121) * texture(light_shadowMap, vec4(vec4(_3102 + vec2(_3172, _3208), _3249, _3251).xyz, _3251)))) + ((_3112 * _3121) * texture(light_shadowMap, vec4(vec4(_3102 + vec2(_3189, _3208), _3249, _3251).xyz, _3251)))) * 0.0625;_4084 = 1.0;float _4092;if (((frameUniforms.fz & 2u) != 0u) && (_4084 > 0.0))float _4094;if (objectUniforms.f != 0u)uint _3322 = (frameUniforms.fz >> 8u) & 255u;vec4 _3432 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _3439 = frameUniforms.e * vec4(shading_position + (_2984 * frameUniforms.hz), 1.0);vec4 _3445 = _3432 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0));vec3 _3451 = _3432.xyz * (1.0 / _3432.w);vec3 _3476 = (_3451 * 0.5) + vec3(0.5);vec3 _3481 = (((_3439.xyz * (1.0 / _3439.w)) * 0.5) + vec3(0.5)) - _3476;float _3332 = 1.0 / float(_3322);float _3341 = (abs((_3445.xyz * (1.0 / _3445.w)).z - _3451.z) * _3332) * 0.5;float _3353 = (_3332 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _3332;vec3 _4088;_4088 = _4083;vec3 _3366;vec3 _4087;float _4090;uint _4085 = 0u;float _4086 = _3353;for (;;)if (_4085 < _3322)_3366 = _3476 + (_3481 * _4086);if (abs(_3341 - (_3366.z - (1.0 - textureLod(light_structure, _3366.xy, 0.0).x))) < _3341)_4090 = 1.0;_4087 = _3366;break;_4086 += _3332;_4085++;_4088 = _3366;_4090 = 0.0;_4087 = _4088;vec2 _3402 = max((abs(_4087.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_4094 = _4090 * clamp(1.0 - dot(_3402, _3402), 0.0, 1.0);_4094 = 0.0;_4092 = _4094;_4092 = 0.0;_2094 = _4084 * (1.0 - _4092);vec3 _3514 = normalize(shading_view + _2984);float _3517 = clamp(_2991, 0.0, 1.0);float _3521 = clamp(dot(shading_normal, _3514), 0.0, 1.0);float _3609 = _3521 * pixel.roughness;float _3616 = pixel.roughness / ((1.0 - (_3521 * _3521)) + (_3609 * _3609));float _3639 = pixel.roughness * pixel.roughness;float _3686 = 1.0 - clamp(dot(_2984, _3514), 0.0, 1.0);float _3695 = _3686 * _3686;color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_3695 * _3695) * _3686))) * (((_3616 * _3616) * 0.3183098733425140380859375) * (0.5 / ((_3517 * sqrt(((shading_NoV - (_3639 * shading_NoV)) * shading_NoV) + _3639)) + (shading_NoV * sqrt(((_3517 - (_3639 * _3517)) * _3517) + _3639)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _3517) * _2094));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 _4050;vec3 _4049;_4049 = vertex_worldNormal;_4049 = -vertex_worldNormal;_4050 = _4049;_4050 = vertex_worldNormal;shading_normal = normalize(_4050);vec3 _2443 = variable_colorFromSh.xyz * 1.0;vec4 _2514 = textureLod(light_iblDFG, vec2(shading_NoV, 1.0), 0.0);vec3 _2499 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2514.y) - 1.0));float _2550 = min(1.0, evaluateSSAO());float _2643 = clamp((pow(shading_NoV + _2550, 7.62939453125e-06) - 1.0) + _2550, 0.0, 1.0);vec3 _2651 = mix(_2514.xxx, _2514.yyy, vec3(0.039999999105930328369140625));vec3 _2364 = (((((_2443 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _2651)) * 1.0) * max(vec3(_2550), ((((((_2443 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2550) + ((_2443 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2550) + ((_2443 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2550)) + (((_2651 * textureLod(light_iblSpecular, shading_normal, frameUniforms.cz).xyz) * (_2499 * 1.0)) * max(vec3(_2643), ((((vec3(-0.250783979892730712890625) * _2643) + vec3(0.449896037578582763671875)) * _2643) + vec3(0.800507962703704833984375)) * _2643))) * frameUniforms.x;evaluateDirectionalLight(MaterialInputs(vec4(variable_colorFromSh.x, variable_colorFromSh.y, variable_colorFromSh.z, vec4(0.0, 0.0, 0.0, 1.0).w), 1.0, 0.0, 0.5, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _4052, _4055, _4055, _4055, _4055, _4052), PixelParams(_2443, 1.0, 1.0, vec3(0.039999999105930328369140625), 1.0, _2514.xyz, _2499), _2364);fragColor = vec4(_2364, 1.0);if ((frameUniforms.rz & 16u) != 0u)bvec4 _2789 = 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(_2789.x ? vec4(1.0).x : vec4(0.0).x, _2789.y ? vec4(1.0).y : vec4(0.0).y, _2789.z ? vec4(1.0).z : vec4(0.0).z, _2789.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u);vec3 _2247 = fragColor.xyz * uintToColorDebug(param);fragColor = vec4(_2247.x, _2247.y, _2247.z, fragColor.w);layout(std140) uniform ShadowUniformsmat4 a[2];vec4 b[2];} shadowUniforms;layout(location = 12) out vec4 vertex_spotLightSpacePosition[2];vec4 _733 = (objectUniforms.a[0] * mesh_position.x) + ((objectUniforms.a[1] * mesh_position.y) + ((objectUniforms.a[2] * mesh_position.z) + objectUniforms.a[3]));vec3 _771 = _733.xyz;vec3 _778 = _771 * inversesqrt(dot(_771, _771));vec3 _891 = mesh_custom0.xyz * 0.2820948064327239990234375;vec3 _1234;vec4 _750 = mesh_custom1;vec4 _751 = mesh_custom2;float _753[9];for (int _1226 = 0; _1226 < 4; )_753[_1226] = _750[_1226];_753[4 + _1226] = _751[_1226];_1226++;_753[8] = mesh_custom3.x;float _756[9] = _753;vec3 _902;for (int _1227 = 0; _1227 < 3; )_902[_1227] = 0.48860251903533935546875 * ((((-_778.y) * _756[_1227]) + (_778.z * _756[3 + _1227])) - (_778.x * _756[6 + _1227]));_1227++;_1234 = _891 + _902;_1234 = _891;vec3 _1235;float _758[15];_758[0] = mesh_custom3.y;_758[1] = mesh_custom3.z;_758[2] = mesh_custom3.w;vec4 _759 = mesh_custom4;vec4 _760 = mesh_custom5;vec4 _761 = mesh_custom6;for (int _1230 = 0; _1230 < 4; )_758[3 + _1230] = _759[_1230];_758[7 + _1230] = _760[_1230];_758[11 + _1230] = _761[_1230];_1230++;float _764[15] = _758;float _988 = _778.z;float _994 = (-1.09254848957061767578125) * _988;float _996 = _778.x;float _1001 = _778.y;float _1014 = (0.946174681186676025390625 * (_988 * _988)) - 0.3153915703296661376953125;float _1018 = _994 * _996;float _1022 = _994 * _1001;float _1024 = 0.546274244785308837890625 * ((_996 * _996) - (_1001 * _1001));float _1026 = 0.546274244785308837890625 * ((2.0 * _996) * _1001);vec3 _968;for (int _1231 = 0; _1231 < 3; )_968[_1231] = ((((_1026 * _764[_1231]) + (_1022 * _764[3 + _1231])) + (_1014 * _764[6 + _1231])) + (_1018 * _764[9 + _1231])) + (_1024 * _764[12 + _1231]);_1231++;_1235 = _1234 + _968;_1235 = _1234;vec4 _1216 = vec4(0.0);_1216.x = _1235.x;vec4 _1219 = _1216;_1219.y = _1235.y;vec4 _1222 = _1219;_1222.z = _1235.z;vec4 _1224 = _1222;_1224.w = 0.0;variable_colorFromSh = _1224;vertex_worldPosition = _771;for (uint _1242 = 0u; _1242 < 2u; )float _1094 = clamp(dot(vertex_worldNormal, shadowUniforms.b[_1242].xyz), 0.0, 1.0);vertex_spotLightSpacePosition[_1242] = shadowUniforms.a[_1242] * vec4(vertex_worldPosition + (vertex_worldNormal * (sqrt(1.0 - (_1094 * _1094)) * shadowUniforms.b[_1242].w)), 1.0);_1242++;gl_Position = frameUniforms.e * _733;layout(location = 12) in vec4 vertex_spotLightSpacePosition[2];vec3 _4325;uint _4364;bool _4373;vec4 _4453;vec4 _4481;float _4482;vec2 _1299 = vec3(shading_normalizedViewportCoord, _4482).xy;vec4 _1320 = textureGather(light_ssao, _1299, 1);vec4 _1324 = textureGather(light_ssao, _1299, 2);vec2 _1331 = fract((_1299 * vec2(textureSize(light_ssao, 0))) - vec2(0.5));float _1334 = _1331.x;float _1335 = 1.0 - _1334;float _1337 = _1331.y;vec4 _4275 = _4453;_4275.x = _1335 * _1337;vec4 _4279 = _4275;_4279.y = _1334 * _1337;float _1350 = 1.0 - _1337;vec4 _4283 = _4279;_4283.z = _1334 * _1350;vec4 _4287 = _4283;_4287.w = _1335 * _1350;vec4 _4293 = _4453;_4293.x = (_1320.x * 0.996108949184417724609375) + (_1324.x * 0.00389105058275163173675537109375);vec4 _4299 = _4293;_4299.y = (_1320.y * 0.996108949184417724609375) + (_1324.y * 0.00389105058275163173675537109375);vec4 _4305 = _4299;_4305.z = (_1320.z * 0.996108949184417724609375) + (_1324.z * 0.00389105058275163173675537109375);vec4 _4311 = _4305;_4311.w = (_1320.w * 0.996108949184417724609375) + (_1324.w * 0.00389105058275163173675537109375);vec4 _1422 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_4311 * (-frameUniforms.dz))) * frameUniforms.sz;vec4 _1432 = max(vec4(6.103515625e-05), vec4(1.0) - (_1422 * _1422)) * _4287;return dot(textureGather(light_ssao, _1299), _1432) * (1.0 / (((_1432.x + _1432.y) + _1432.z) + _1432.w));return textureLod(light_ssao, _1299, 0.0).x;ivec2 _1636 = textureSize(light_iblSpecular, int(frameUniforms.cz));vec3 _1651 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _1658 = _1651 * (1.0 / float(_1636.x));vec3 _1662 = cross(_1651, n) * (1.0 / float(_1636.y));vec3 _1665 = n - _1658;vec3 _1670 = n + _1658;return (((textureLod(light_iblSpecular, _1665 - _1662, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1670 - _1662, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1670 + _1662, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1665 + _1662, frameUniforms.cz).xyz) * 0.25;vec3 _4323;vec3 _4322;_4322 = vertex_worldNormal;_4322 = -vertex_worldNormal;_4323 = _4322;_4323 = vertex_worldNormal;vec3 _2362 = normalize(_4323);vec3 _2368 = normalize(frameUniforms.j - shading_position);float _2424 = max(dot(_2362, _2368), 9.9999997473787516355514526367188e-05);vec3 _2517 = variable_colorFromSh.xyz * 1.0;vec4 _2588 = textureLod(light_iblDFG, vec2(_2424, 1.0), 0.0);vec3 _2573 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2588.y) - 1.0));float _2624 = min(1.0, evaluateSSAO());float _2717 = clamp((pow(_2424 + _2624, 7.62939453125e-06) - 1.0) + _2624, 0.0, 1.0);vec3 _2725 = mix(_2588.xxx, _2588.yyy, vec3(0.039999999105930328369140625));float _2926 = 1.0 - gl_FragCoord.z;uvec2 _2965 = uvec2((vec3(shading_normalizedViewportCoord, _2926).xy * frameUniforms.i.xy) * vec2(frameUniforms.w, frameUniforms.s));uint _2950 = ((_2965.x * frameUniforms.q) + (_2965.y * frameUniforms.u.x)) + (uint(max(0.0, (log2((frameUniforms.t.x * _2926) + frameUniforms.t.y) * frameUniforms.t.z) + frameUniforms.t.w)) * frameUniforms.u.y);uvec4 _2997 = texelFetch(light_froxels, ivec2(int(_2950 & 63u), int(_2950 >> 6u)), 0);uint _3000 = _2997.x;uint _2865 = _3000 + (_2997.y & 255u);vec3 _4356;vec3 _4387;_4387 = _4325;_4356 = (((((_2517 * diffuseIrradiance(_2362)) * (vec3(1.0) - _2725)) * 1.0) * max(vec3(_2624), ((((((_2517 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2624) + ((_2517 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2624) + ((_2517 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2624)) + (((_2725 * textureLod(light_iblSpecular, _2362, frameUniforms.cz).xyz) * (_2573 * 1.0)) * max(vec3(_2717), ((((vec3(-0.250783979892730712890625) * _2717) + vec3(0.449896037578582763671875)) * _2717) + vec3(0.800507962703704833984375)) * _2717))) * frameUniforms.x;uint _4361;uint _4366;bool _4370;bool _4375;vec3 _4412;vec3 _4450;uint _4362;uint _4367;bool _4371;bool _4376;for (uint _4355 = _3000; _4355 < _2865; _4387 = _4450, _4376 = _4375, _4371 = _4370, _4367 = _4366, _4362 = _4361, _4356 = _4412, _4355++)uvec4 _3035 = texelFetch(light_records, ivec2(int(_4355 & 31u), int(_4355 >> 5u)), 0);uint _3036 = _3035.x;vec3 _3053 = lightsUniforms.a[_3036][0].xyz - vertex_worldPosition;float _3133 = lightsUniforms.a[_3036][1].w * frameUniforms.y;vec4 _4230 = vec4(lightsUniforms.a[_3036][1].x, lightsUniforms.a[_3036][1].y, lightsUniforms.a[_3036][1].z, _4481.w);_4230.w = _3133;vec3 _3066 = normalize(_3053);float _3140 = dot(_3053, _3053);float _3155 = _3140 * lightsUniforms.a[_3036][0].w;float _3160 = clamp(1.0 - (_3155 * _3155), 0.0, 1.0);float _3148 = (_3160 * _3160) / max(_3140, 9.9999997473787516355514526367188e-05);float _3077 = clamp(dot(_2362, _3066), 0.0, 1.0);float _4379;if (floatBitsToUint(lightsUniforms.a[_3036][3].w) == 1u)float _3174 = clamp((dot(-lightsUniforms.a[_3036][2].xyz, _3066) * lightsUniforms.a[_3036][3].x) + lightsUniforms.a[_3036][3].y, 0.0, 1.0);uint _3102 = floatBitsToUint(lightsUniforms.a[_3036][3].z);_4379 = _3148 * (_3174 * _3174);_4375 = (_3102 & 1u) != 0u;_4370 = ((_3102 >> 1u) & 1u) != 0u;_4366 = (_3102 >> 2u) & 15u;_4361 = (_3102 >> 6u) & 15u;_4379 = _3148;_4375 = _4376;_4370 = _4371;_4366 = _4367;_4361 = _4362;float _4394;if (_3077 > 0.0)float _4380;if (_4375)vec3 _3189 = vertex_spotLightSpacePosition[_4366].xyz * (1.0 / vertex_spotLightSpacePosition[_4366].w);vec2 _3200 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);vec2 _3235 = vec2(1.0) / _3200;vec2 _3245 = (clamp(_3189.xy, vec2(-1.0), vec2(2.0)).xy * _3200) + vec2(0.5);vec2 _3251 = (floor(_3245) - vec2(0.5)) * _3235;vec2 _3253 = fract(_3245);float _3255 = _3253.x;float _3256 = 2.0 * _3255;float _3257 = 3.0 - _3256;float _3261 = 1.0 + _3256;float _3264 = _3253.y;float _3265 = 2.0 * _3264;float _3266 = 3.0 - _3265;float _3270 = 1.0 + _3265;vec2 _3303 = vec2(((2.0 - _3255) / _3257) - 1.0, (_3255 / _3261) + 1.0) * _3235.x;vec2 _3307 = vec2(((2.0 - _3264) / _3266) - 1.0, (_3264 / _3270) + 1.0) * _3235.y;float _3321 = _3303.x;float _3323 = _3307.x;float _3398 = float(_4361);float _3400 = clamp(_3189.z, 0.0, 1.0);float _3338 = _3303.y;float _3357 = _3307.y;_4380 = (((((_3257 * _3266) * texture(light_shadowMap, vec4(vec4(_3251 + vec2(_3321, _3323), _3398, _3400).xyz, _3400))) + ((_3261 * _3266) * texture(light_shadowMap, vec4(vec4(_3251 + vec2(_3338, _3323), _3398, _3400).xyz, _3400)))) + ((_3257 * _3270) * texture(light_shadowMap, vec4(vec4(_3251 + vec2(_3321, _3357), _3398, _3400).xyz, _3400)))) + ((_3261 * _3270) * texture(light_shadowMap, vec4(vec4(_3251 + vec2(_3338, _3357), _3398, _3400).xyz, _3400)))) * 0.0625;_4380 = 1.0;float _4395;vec3 _4451;if (_4370 && (_4380 > 0.0))float _4396;vec3 _4452;uint _3471 = (frameUniforms.fz >> 8u) & 255u;vec4 _3581 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _3588 = frameUniforms.e * vec4(shading_position + (_3066 * frameUniforms.hz), 1.0);vec4 _3594 = _3581 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0));vec3 _3600 = _3581.xyz * (1.0 / _3581.w);vec3 _3625 = (_3600 * 0.5) + vec3(0.5);vec3 _3630 = (((_3588.xyz * (1.0 / _3588.w)) * 0.5) + vec3(0.5)) - _3625;float _3481 = 1.0 / float(_3471);float _3490 = (abs((_3594.xyz * (1.0 / _3594.w)).z - _3600.z) * _3481) * 0.5;float _3502 = (_3481 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _3481;vec3 _4384;_4384 = _4387;vec3 _3515;vec3 _4383;float _4390;uint _4381 = 0u;float _4382 = _3502;if (_4381 < _3471)_3515 = _3625 + (_3630 * _4382);if (abs(_3490 - (_3515.z - (1.0 - textureLod(light_structure, _3515.xy, 0.0).x))) < _3490)_4390 = 1.0;_4383 = _3515;_4382 += _3481;_4381++;_4384 = _3515;_4390 = 0.0;_4383 = _4384;vec2 _3551 = max((abs(_4383.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_4452 = _4383;_4396 = _4380 * (1.0 - (_4390 * clamp(1.0 - dot(_3551, _3551), 0.0, 1.0)));_4452 = _4387;_4396 = _4380;_4451 = _4452;_4395 = _4396;_4451 = _4387;_4395 = _4380;_4450 = _4451;_4394 = _4395;_4450 = _4387;_4394 = 1.0;if (_3077 <= 0.0)_4412 = _4356;vec3 _3663 = normalize(_2368 + _3066);float _3666 = clamp(_3077, 0.0, 1.0);float _3670 = clamp(dot(_2362, _3663), 0.0, 1.0);float _3815 = (_3666 * sqrt(((_2424 - _2424) * _2424) + 1.0)) + (_2424 * sqrt(((_3666 - _3666) * _3666) + 1.0));float _3835 = 1.0 - clamp(dot(_3066, _3663), 0.0, 1.0);float _3844 = _3835 * _3835;_4412 = _4356 + ((((_2517 * 0.3183098733425140380859375) + (((vec3(0.039999999105930328369140625) + (vec3(0.959999978542327880859375) * ((_3844 * _3844) * _3835))) * (0.15915493667125701904296875 / _3815)) * _2573)) * _4230.xyz) * (((_3133 * _4379) * _3666) * _4394));fragColor = vec4(_4356, 1.0);vec4 _751 = (objectUniforms.a[0] * mesh_position.x) + ((objectUniforms.a[1] * mesh_position.y) + ((objectUniforms.a[2] * mesh_position.z) + objectUniforms.a[3]));vec3 _789 = _751.xyz;vec3 _796 = _789 * inversesqrt(dot(_789, _789));vec3 _909 = mesh_custom0.xyz * 0.2820948064327239990234375;vec3 _1280;vec4 _768 = mesh_custom1;vec4 _769 = mesh_custom2;float _771[9];for (int _1272 = 0; _1272 < 4; )_771[_1272] = _768[_1272];_771[4 + _1272] = _769[_1272];_1272++;_771[8] = mesh_custom3.x;float _774[9] = _771;vec3 _920;for (int _1273 = 0; _1273 < 3; )_920[_1273] = 0.48860251903533935546875 * ((((-_796.y) * _774[_1273]) + (_796.z * _774[3 + _1273])) - (_796.x * _774[6 + _1273]));_1273++;_1280 = _909 + _920;_1280 = _909;vec3 _1281;float _776[15];_776[0] = mesh_custom3.y;_776[1] = mesh_custom3.z;_776[2] = mesh_custom3.w;vec4 _777 = mesh_custom4;vec4 _778 = mesh_custom5;vec4 _779 = mesh_custom6;for (int _1276 = 0; _1276 < 4; )_776[3 + _1276] = _777[_1276];_776[7 + _1276] = _778[_1276];_776[11 + _1276] = _779[_1276];_1276++;float _782[15] = _776;float _1006 = _796.z;float _1012 = (-1.09254848957061767578125) * _1006;float _1014 = _796.x;float _1019 = _796.y;float _1032 = (0.946174681186676025390625 * (_1006 * _1006)) - 0.3153915703296661376953125;float _1036 = _1012 * _1014;float _1040 = _1012 * _1019;float _1042 = 0.546274244785308837890625 * ((_1014 * _1014) - (_1019 * _1019));float _1044 = 0.546274244785308837890625 * ((2.0 * _1014) * _1019);vec3 _986;for (int _1277 = 0; _1277 < 3; )_986[_1277] = ((((_1044 * _782[_1277]) + (_1040 * _782[3 + _1277])) + (_1032 * _782[6 + _1277])) + (_1036 * _782[9 + _1277])) + (_1042 * _782[12 + _1277]);_1277++;_1281 = _1280 + _986;_1281 = _1280;vec4 _1262 = vec4(0.0);_1262.x = _1281.x;vec4 _1265 = _1262;_1265.y = _1281.y;vec4 _1268 = _1265;_1268.z = _1281.z;vec4 _1270 = _1268;_1270.w = 0.0;variable_colorFromSh = _1270;vertex_worldPosition = _789;float _1111 = clamp(dot(vertex_worldNormal, frameUniforms.p), 0.0, 1.0);vertex_lightSpacePosition = frameUniforms.g[0] * vec4(vertex_worldPosition + (vertex_worldNormal * (sqrt(1.0 - (_1111 * _1111)) * frameUniforms.r.y)), 1.0);for (uint _1288 = 0u; _1288 < 2u; )float _1140 = clamp(dot(vertex_worldNormal, shadowUniforms.b[_1288].xyz), 0.0, 1.0);vertex_spotLightSpacePosition[_1288] = shadowUniforms.a[_1288] * vec4(vertex_worldPosition + (vertex_worldNormal * (sqrt(1.0 - (_1140 * _1140)) * shadowUniforms.b[_1288].w)), 1.0);_1288++;gl_Position = frameUniforms.e * _751;vec3 _5601;float _5604;uint _5640;bool _5649;vec4 _5729;vec3 _5733;vec4 _5778;float _5779;vec3 _576;vec2 _1494 = vec3(shading_normalizedViewportCoord, _5779).xy;vec4 _1515 = textureGather(light_ssao, _1494, 1);vec4 _1519 = textureGather(light_ssao, _1494, 2);vec2 _1526 = fract((_1494 * vec2(textureSize(light_ssao, 0))) - vec2(0.5));float _1529 = _1526.x;float _1530 = 1.0 - _1529;float _1532 = _1526.y;vec4 _5513 = _5729;_5513.x = _1530 * _1532;vec4 _5517 = _5513;_5517.y = _1529 * _1532;float _1545 = 1.0 - _1532;vec4 _5521 = _5517;_5521.z = _1529 * _1545;vec4 _5525 = _5521;_5525.w = _1530 * _1545;vec4 _5531 = _5729;_5531.x = (_1515.x * 0.996108949184417724609375) + (_1519.x * 0.00389105058275163173675537109375);vec4 _5537 = _5531;_5537.y = (_1515.y * 0.996108949184417724609375) + (_1519.y * 0.00389105058275163173675537109375);vec4 _5543 = _5537;_5543.z = (_1515.z * 0.996108949184417724609375) + (_1519.z * 0.00389105058275163173675537109375);vec4 _5549 = _5543;_5549.w = (_1515.w * 0.996108949184417724609375) + (_1519.w * 0.00389105058275163173675537109375);vec4 _1617 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_5549 * (-frameUniforms.dz))) * frameUniforms.sz;vec4 _1627 = max(vec4(6.103515625e-05), vec4(1.0) - (_1617 * _1617)) * _5525;return dot(textureGather(light_ssao, _1494), _1627) * (1.0 / (((_1627.x + _1627.y) + _1627.z) + _1627.w));return textureLod(light_ssao, _1494, 0.0).x;ivec2 _1830 = textureSize(light_iblSpecular, int(frameUniforms.cz));vec3 _1844 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _1851 = _1844 * (1.0 / float(_1830.x));vec3 _1855 = cross(_1844, n) * (1.0 / float(_1830.y));vec3 _1858 = n - _1851;vec3 _1863 = n + _1851;return (((textureLod(light_iblSpecular, _1858 - _1855, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1863 - _1855, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1863 + _1855, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1858 + _1855, frameUniforms.cz).xyz) * 0.25;float _2052 = dot(lightDirection, shading_reflected);vec3 _5730;if (_2052 < frameUniforms.m.x)_5730 = normalize((lightDirection * frameUniforms.m.x) + (normalize(shading_reflected - (lightDirection * _2052)) * frameUniforms.m.y));_5730 = shading_reflected;return _5730;float _5177 = clamp(dot(shading_normal, frameUniforms.p), 0.0, 1.0);vec4 _5192 = frameUniforms.g[cascade] * vec4(shading_position + (shading_normal * (sqrt(1.0 - (_5177 * _5177)) * frameUniforms.r.y)), 1.0);return _5192.xyz * (1.0 / _5192.w);float _2166;vec3 _4421 = sampleSunAreaLight(frameUniforms.p);float _4428 = clamp(dot(shading_normal, _4421), 0.0, 1.0);if (_4428 > 0.0)bvec4 _4445 = 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 _4455 = clamp(uint(dot(vec4(_4445.x ? vec4(1.0).x : vec4(0.0).x, _4445.y ? vec4(1.0).y : vec4(0.0).y, _4445.z ? vec4(1.0).z : vec4(0.0).z, _4445.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u);float _5734;if (((frameUniforms.fz & 1u) != 0u) && ((frameUniforms.rz & ((1u << _4455) << 8u)) != 0u))uint param = _4455;vec3 _2138 = getCascadeLightSpacePosition(param);vec2 _4488 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);vec2 _4523 = vec2(1.0) / _4488;vec2 _4533 = (clamp(_2138.xy, vec2(-1.0), vec2(2.0)).xy * _4488) + vec2(0.5);vec2 _4539 = (floor(_4533) - vec2(0.5)) * _4523;vec2 _4541 = fract(_4533);float _4543 = _4541.x;float _4544 = 2.0 * _4543;float _4545 = 3.0 - _4544;float _4549 = 1.0 + _4544;float _4552 = _4541.y;float _4553 = 2.0 * _4552;float _4554 = 3.0 - _4553;float _4558 = 1.0 + _4553;vec2 _4591 = vec2(((2.0 - _4543) / _4545) - 1.0, (_4543 / _4549) + 1.0) * _4523.x;vec2 _4595 = vec2(((2.0 - _4552) / _4554) - 1.0, (_4552 / _4558) + 1.0) * _4523.y;float _4609 = _4591.x;float _4611 = _4595.x;float _4686 = float(_4455);float _4688 = clamp(_2138.z, 0.0, 1.0);float _4626 = _4591.y;float _4645 = _4595.y;_5734 = (((((_4545 * _4554) * texture(light_shadowMap, vec4(vec4(_4539 + vec2(_4609, _4611), _4686, _4688).xyz, _4688))) + ((_4549 * _4554) * texture(light_shadowMap, vec4(vec4(_4539 + vec2(_4626, _4611), _4686, _4688).xyz, _4688)))) + ((_4545 * _4558) * texture(light_shadowMap, vec4(vec4(_4539 + vec2(_4609, _4645), _4686, _4688).xyz, _4688)))) + ((_4549 * _4558) * texture(light_shadowMap, vec4(vec4(_4539 + vec2(_4626, _4645), _4686, _4688).xyz, _4688)))) * 0.0625;_5734 = 1.0;float _5742;if (((frameUniforms.fz & 2u) != 0u) && (_5734 > 0.0))float _5744;uint _4759 = (frameUniforms.fz >> 8u) & 255u;vec4 _4869 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _4876 = frameUniforms.e * vec4(shading_position + (_4421 * frameUniforms.hz), 1.0);vec4 _4882 = _4869 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0));vec3 _4888 = _4869.xyz * (1.0 / _4869.w);vec3 _4913 = (_4888 * 0.5) + vec3(0.5);vec3 _4918 = (((_4876.xyz * (1.0 / _4876.w)) * 0.5) + vec3(0.5)) - _4913;float _4769 = 1.0 / float(_4759);float _4778 = (abs((_4882.xyz * (1.0 / _4882.w)).z - _4888.z) * _4769) * 0.5;float _4790 = (_4769 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _4769;vec3 _5738;_5738 = _5733;vec3 _4803;vec3 _5737;float _5740;uint _5735 = 0u;float _5736 = _4790;if (_5735 < _4759)_4803 = _4913 + (_4918 * _5736);if (abs(_4778 - (_4803.z - (1.0 - textureLod(light_structure, _4803.xy, 0.0).x))) < _4778)_5740 = 1.0;_5737 = _4803;_5736 += _4769;_5735++;_5738 = _4803;_5740 = 0.0;_5737 = _5738;vec2 _4839 = max((abs(_5737.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_5744 = _5740 * clamp(1.0 - dot(_4839, _4839), 0.0, 1.0);_5744 = 0.0;_5742 = _5744;_5742 = 0.0;_2166 = _5734 * (1.0 - _5742);vec3 _4951 = normalize(shading_view + _4421);float _4954 = clamp(_4428, 0.0, 1.0);float _4958 = clamp(dot(shading_normal, _4951), 0.0, 1.0);float _5046 = _4958 * pixel.roughness;float _5053 = pixel.roughness / ((1.0 - (_4958 * _4958)) + (_5046 * _5046));float _5076 = pixel.roughness * pixel.roughness;float _5123 = 1.0 - clamp(dot(_4421, _4951), 0.0, 1.0);float _5132 = _5123 * _5123;color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_5132 * _5132) * _5123))) * (((_5053 * _5053) * 0.3183098733425140380859375) * (0.5 / ((_4954 * sqrt(((shading_NoV - (_5076 * shading_NoV)) * shading_NoV) + _5076)) + (shading_NoV * sqrt(((_4954 - (_5076 * _4954)) * _4954) + _5076)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _4954) * _2166));vec3 _5599;vec3 _5598;_5598 = vertex_worldNormal;_5598 = -vertex_worldNormal;_5599 = _5598;_5599 = vertex_worldNormal;shading_normal = normalize(_5599);vec3 _2858 = variable_colorFromSh.xyz * 1.0;vec4 _2929 = textureLod(light_iblDFG, vec2(shading_NoV, 1.0), 0.0);vec3 _2914 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2929.y) - 1.0));float _2965 = min(1.0, evaluateSSAO());float _3058 = clamp((pow(shading_NoV + _2965, 7.62939453125e-06) - 1.0) + _2965, 0.0, 1.0);vec3 _3066 = mix(_2929.xxx, _2929.yyy, vec3(0.039999999105930328369140625));vec3 _2774 = (((((_2858 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _3066)) * 1.0) * max(vec3(_2965), ((((((_2858 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2965) + ((_2858 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2965) + ((_2858 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2965)) + (((_3066 * textureLod(light_iblSpecular, shading_normal, frameUniforms.cz).xyz) * (_2914 * 1.0)) * max(vec3(_3058), ((((vec3(-0.250783979892730712890625) * _3058) + vec3(0.449896037578582763671875)) * _3058) + vec3(0.800507962703704833984375)) * _3058))) * frameUniforms.x;evaluateDirectionalLight(MaterialInputs(vec4(variable_colorFromSh.x, variable_colorFromSh.y, variable_colorFromSh.z, vec4(0.0, 0.0, 0.0, 1.0).w), 1.0, 0.0, 0.5, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _5601, _5604, _5604, _5604, _5604, _5601), PixelParams(_2858, 1.0, 1.0, vec3(0.039999999105930328369140625), 1.0, _2929.xyz, _2914), _2774);float _3267 = 1.0 - gl_FragCoord.z;uvec2 _3306 = uvec2((vec3(shading_normalizedViewportCoord, _3267).xy * frameUniforms.i.xy) * vec2(frameUniforms.w, frameUniforms.s));uint _3291 = ((_3306.x * frameUniforms.q) + (_3306.y * frameUniforms.u.x)) + (uint(max(0.0, (log2((frameUniforms.t.x * _3267) + frameUniforms.t.y) * frameUniforms.t.z) + frameUniforms.t.w)) * frameUniforms.u.y);uvec4 _3338 = texelFetch(light_froxels, ivec2(int(_3291 & 63u), int(_3291 >> 6u)), 0);uint _3341 = _3338.x;uint _3206 = _3341 + (_3338.y & 255u);vec3 _5632;vec3 _5663;_5663 = _5601;_5632 = _2774;uint _5637;uint _5642;bool _5646;bool _5651;vec3 _5688;vec3 _5726;uint _5638;uint _5643;bool _5647;bool _5652;for (uint _5631 = _3341; _5631 < _3206; _5663 = _5726, _5652 = _5651, _5647 = _5646, _5643 = _5642, _5638 = _5637, _5632 = _5688, _5631++)uvec4 _3376 = texelFetch(light_records, ivec2(int(_5631 & 31u), int(_5631 >> 5u)), 0);uint _3377 = _3376.x;vec3 _3394 = lightsUniforms.a[_3377][0].xyz - vertex_worldPosition;float _3474 = lightsUniforms.a[_3377][1].w * frameUniforms.y;vec4 _5466 = vec4(lightsUniforms.a[_3377][1].x, lightsUniforms.a[_3377][1].y, lightsUniforms.a[_3377][1].z, _5778.w);_5466.w = _3474;vec3 _3407 = normalize(_3394);float _3481 = dot(_3394, _3394);float _3496 = _3481 * lightsUniforms.a[_3377][0].w;float _3501 = clamp(1.0 - (_3496 * _3496), 0.0, 1.0);float _3489 = (_3501 * _3501) / max(_3481, 9.9999997473787516355514526367188e-05);float _3418 = clamp(dot(shading_normal, _3407), 0.0, 1.0);float _5655;if (floatBitsToUint(lightsUniforms.a[_3377][3].w) == 1u)float _3515 = clamp((dot(-lightsUniforms.a[_3377][2].xyz, _3407) * lightsUniforms.a[_3377][3].x) + lightsUniforms.a[_3377][3].y, 0.0, 1.0);uint _3443 = floatBitsToUint(lightsUniforms.a[_3377][3].z);_5655 = _3489 * (_3515 * _3515);_5651 = (_3443 & 1u) != 0u;_5646 = ((_3443 >> 1u) & 1u) != 0u;_5642 = (_3443 >> 2u) & 15u;_5637 = (_3443 >> 6u) & 15u;_5655 = _3489;_5651 = _5652;_5646 = _5647;_5642 = _5643;_5637 = _5638;float _5670;if (_3418 > 0.0)float _5656;if (_5651)vec3 _3530 = vertex_spotLightSpacePosition[_5642].xyz * (1.0 / vertex_spotLightSpacePosition[_5642].w);vec2 _3541 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);vec2 _3576 = vec2(1.0) / _3541;vec2 _3586 = (clamp(_3530.xy, vec2(-1.0), vec2(2.0)).xy * _3541) + vec2(0.5);vec2 _3592 = (floor(_3586) - vec2(0.5)) * _3576;vec2 _3594 = fract(_3586);float _3596 = _3594.x;float _3597 = 2.0 * _3596;float _3598 = 3.0 - _3597;float _3602 = 1.0 + _3597;float _3605 = _3594.y;float _3606 = 2.0 * _3605;float _3607 = 3.0 - _3606;float _3611 = 1.0 + _3606;vec2 _3644 = vec2(((2.0 - _3596) / _3598) - 1.0, (_3596 / _3602) + 1.0) * _3576.x;vec2 _3648 = vec2(((2.0 - _3605) / _3607) - 1.0, (_3605 / _3611) + 1.0) * _3576.y;float _3662 = _3644.x;float _3664 = _3648.x;float _3739 = float(_5637);float _3741 = clamp(_3530.z, 0.0, 1.0);float _3679 = _3644.y;float _3698 = _3648.y;_5656 = (((((_3598 * _3607) * texture(light_shadowMap, vec4(vec4(_3592 + vec2(_3662, _3664), _3739, _3741).xyz, _3741))) + ((_3602 * _3607) * texture(light_shadowMap, vec4(vec4(_3592 + vec2(_3679, _3664), _3739, _3741).xyz, _3741)))) + ((_3598 * _3611) * texture(light_shadowMap, vec4(vec4(_3592 + vec2(_3662, _3698), _3739, _3741).xyz, _3741)))) + ((_3602 * _3611) * texture(light_shadowMap, vec4(vec4(_3592 + vec2(_3679, _3698), _3739, _3741).xyz, _3741)))) * 0.0625;_5656 = 1.0;float _5671;vec3 _5727;if (_5646 && (_5656 > 0.0))float _5672;vec3 _5728;uint _3812 = (frameUniforms.fz >> 8u) & 255u;vec4 _3922 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _3929 = frameUniforms.e * vec4(shading_position + (_3407 * frameUniforms.hz), 1.0);vec4 _3935 = _3922 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0));vec3 _3941 = _3922.xyz * (1.0 / _3922.w);vec3 _3966 = (_3941 * 0.5) + vec3(0.5);vec3 _3971 = (((_3929.xyz * (1.0 / _3929.w)) * 0.5) + vec3(0.5)) - _3966;float _3822 = 1.0 / float(_3812);float _3831 = (abs((_3935.xyz * (1.0 / _3935.w)).z - _3941.z) * _3822) * 0.5;float _3843 = (_3822 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _3822;vec3 _5660;_5660 = _5663;vec3 _3856;vec3 _5659;float _5666;uint _5657 = 0u;float _5658 = _3843;if (_5657 < _3812)_3856 = _3966 + (_3971 * _5658);if (abs(_3831 - (_3856.z - (1.0 - textureLod(light_structure, _3856.xy, 0.0).x))) < _3831)_5666 = 1.0;_5659 = _3856;_5658 += _3822;_5657++;_5660 = _3856;_5666 = 0.0;_5659 = _5660;vec2 _3892 = max((abs(_5659.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_5728 = _5659;_5672 = _5656 * (1.0 - (_5666 * clamp(1.0 - dot(_3892, _3892), 0.0, 1.0)));_5728 = _5663;_5672 = _5656;_5727 = _5728;_5671 = _5672;_5727 = _5663;_5671 = _5656;_5726 = _5727;_5670 = _5671;_5726 = _5663;_5670 = 1.0;if (_3418 <= 0.0)_5688 = _5632;vec3 _4004 = normalize(shading_view + _3407);float _4007 = clamp(_3418, 0.0, 1.0);float _4011 = clamp(dot(shading_normal, _4004), 0.0, 1.0);float _4156 = (_4007 * sqrt(((shading_NoV - shading_NoV) * shading_NoV) + 1.0)) + (shading_NoV * sqrt(((_4007 - _4007) * _4007) + 1.0));float _4176 = 1.0 - clamp(dot(_3407, _4004), 0.0, 1.0);float _4185 = _4176 * _4176;_5688 = _5632 + ((((_2858 * 0.3183098733425140380859375) + (((vec3(0.039999999105930328369140625) + (vec3(0.959999978542327880859375) * ((_4185 * _4185) * _4176))) * (0.15915493667125701904296875 / _4156)) * _2914)) * _5466.xyz) * (((_3474 * _5655) * _4007) * _5670));fragColor = vec4(_5632, 1.0);bvec4 _4226 = 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(_4226.x ? vec4(1.0).x : vec4(0.0).x, _4226.y ? vec4(1.0).y : vec4(0.0).y, _4226.z ? vec4(1.0).z : vec4(0.0).z, _4226.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u);vec3 _2667 = fragColor.xyz * uintToColorDebug(param);fragColor = vec4(_2667.x, _2667.y, _2667.z, fragColor.w);layout(std140) uniform BonesUniformsvec4 a[1024];} bonesUniforms;layout(location = 5) in uvec4 mesh_bone_indices;layout(location = 6) in vec4 mesh_bone_weights;vec4 _1754;if (objectUniforms.e == 1)_1754 = (((mesh_position + (mesh_custom0 * objectUniforms.c.x)) + (mesh_custom1 * objectUniforms.c.y)) + (mesh_custom2 * objectUniforms.c.z)) + (mesh_custom3 * objectUniforms.c.w);_1754 = mesh_position;bool _901 = objectUniforms.d == 1;vec4 _1755;if (_901)uint _923 = mesh_bone_indices.x * 4u;vec3 _970 = _1754.xyz * bonesUniforms.a[_923 + 2u].xyz;uint _929 = mesh_bone_indices.y * 4u;vec3 _1011 = _1754.xyz * bonesUniforms.a[_929 + 2u].xyz;uint _936 = mesh_bone_indices.z * 4u;vec3 _1052 = _1754.xyz * bonesUniforms.a[_936 + 2u].xyz;uint _943 = mesh_bone_indices.w * 4u;vec3 _1093 = _1754.xyz * bonesUniforms.a[_943 + 2u].xyz;vec3 _948 = (((((_970 + (cross(bonesUniforms.a[_923].xyz, cross(bonesUniforms.a[_923].xyz, _970) + (_970 * bonesUniforms.a[_923].w)) * 2.0)) + bonesUniforms.a[_923 + 1u].xyz) * mesh_bone_weights.x) + (((_1011 + (cross(bonesUniforms.a[_929].xyz, cross(bonesUniforms.a[_929].xyz, _1011) + (_1011 * bonesUniforms.a[_929].w)) * 2.0)) + bonesUniforms.a[_929 + 1u].xyz) * mesh_bone_weights.y)) + (((_1052 + (cross(bonesUniforms.a[_936].xyz, cross(bonesUniforms.a[_936].xyz, _1052) + (_1052 * bonesUniforms.a[_936].w)) * 2.0)) + bonesUniforms.a[_936 + 1u].xyz) * mesh_bone_weights.z)) + (((_1093 + (cross(bonesUniforms.a[_943].xyz, cross(bonesUniforms.a[_943].xyz, _1093) + (_1093 * bonesUniforms.a[_943].w)) * 2.0)) + bonesUniforms.a[_943 + 1u].xyz) * mesh_bone_weights.w);_1755 = vec4(_948.x, _948.y, _948.z, _1754.w);_1755 = _1754;vec4 _1127 = (objectUniforms.a[0] * _1755.x) + ((objectUniforms.a[1] * _1755.y) + ((objectUniforms.a[2] * _1755.z) + objectUniforms.a[3]));vec3 _1138 = (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 _1759;uint _1149 = mesh_bone_indices.x * 4u;vec3 _1190 = _1138 * bonesUniforms.a[_1149 + 3u].xyz;uint _1155 = mesh_bone_indices.y * 4u;vec3 _1222 = _1138 * bonesUniforms.a[_1155 + 3u].xyz;uint _1162 = mesh_bone_indices.z * 4u;vec3 _1254 = _1138 * bonesUniforms.a[_1162 + 3u].xyz;uint _1169 = mesh_bone_indices.w * 4u;vec3 _1286 = _1138 * bonesUniforms.a[_1169 + 3u].xyz;_1759 = ((((_1190 + (cross(bonesUniforms.a[_1149].xyz, cross(bonesUniforms.a[_1149].xyz, _1190) + (_1190 * bonesUniforms.a[_1149].w)) * 2.0)) * mesh_bone_weights.x) + ((_1222 + (cross(bonesUniforms.a[_1155].xyz, cross(bonesUniforms.a[_1155].xyz, _1222) + (_1222 * bonesUniforms.a[_1155].w)) * 2.0)) * mesh_bone_weights.y)) + ((_1254 + (cross(bonesUniforms.a[_1162].xyz, cross(bonesUniforms.a[_1162].xyz, _1254) + (_1254 * bonesUniforms.a[_1162].w)) * 2.0)) * mesh_bone_weights.z)) + ((_1286 + (cross(bonesUniforms.a[_1169].xyz, cross(bonesUniforms.a[_1169].xyz, _1286) + (_1286 * bonesUniforms.a[_1169].w)) * 2.0)) * mesh_bone_weights.w);_1759 = _1138;vec3 _1329 = _1127.xyz;vec3 _1336 = _1329 * inversesqrt(dot(_1329, _1329));vec3 _1449 = mesh_custom0.xyz * 0.2820948064327239990234375;vec3 _1774;vec4 _1308 = mesh_custom1;vec4 _1309 = mesh_custom2;float _1311[9];for (int _1766 = 0; _1766 < 4; )_1311[_1766] = _1308[_1766];_1311[4 + _1766] = _1309[_1766];_1766++;_1311[8] = mesh_custom3.x;float _1314[9] = _1311;vec3 _1460;for (int _1767 = 0; _1767 < 3; )_1460[_1767] = 0.48860251903533935546875 * ((((-_1336.y) * _1314[_1767]) + (_1336.z * _1314[3 + _1767])) - (_1336.x * _1314[6 + _1767]));_1767++;_1774 = _1449 + _1460;_1774 = _1449;vec3 _1775;float _1316[15];_1316[0] = mesh_custom3.y;_1316[1] = mesh_custom3.z;_1316[2] = mesh_custom3.w;vec4 _1317 = mesh_custom4;vec4 _1318 = mesh_custom5;vec4 _1319 = mesh_custom6;for (int _1770 = 0; _1770 < 4; )_1316[3 + _1770] = _1317[_1770];_1316[7 + _1770] = _1318[_1770];_1316[11 + _1770] = _1319[_1770];_1770++;float _1322[15] = _1316;float _1546 = _1336.z;float _1552 = (-1.09254848957061767578125) * _1546;float _1554 = _1336.x;float _1559 = _1336.y;float _1572 = (0.946174681186676025390625 * (_1546 * _1546)) - 0.3153915703296661376953125;float _1576 = _1552 * _1554;float _1580 = _1552 * _1559;float _1582 = 0.546274244785308837890625 * ((_1554 * _1554) - (_1559 * _1559));float _1584 = 0.546274244785308837890625 * ((2.0 * _1554) * _1559);vec3 _1526;for (int _1771 = 0; _1771 < 3; )_1526[_1771] = ((((_1584 * _1322[_1771]) + (_1580 * _1322[3 + _1771])) + (_1572 * _1322[6 + _1771])) + (_1576 * _1322[9 + _1771])) + (_1582 * _1322[12 + _1771]);_1771++;_1775 = _1774 + _1526;_1775 = _1774;vec4 _1745 = vec4(0.0);_1745.x = _1775.x;vec4 _1748 = _1745;_1748.y = _1775.y;vec4 _1751 = _1748;_1751.z = _1775.z;vec4 _1753 = _1751;_1753.w = 0.0;variable_colorFromSh = _1753;vertex_worldPosition = _1329;vertex_worldNormal = objectUniforms.b * _1759;gl_Position = frameUniforms.e * _1127;vec4 _1837;_1837 = (((mesh_position + (mesh_custom0 * objectUniforms.c.x)) + (mesh_custom1 * objectUniforms.c.y)) + (mesh_custom2 * objectUniforms.c.z)) + (mesh_custom3 * objectUniforms.c.w);_1837 = mesh_position;bool _956 = objectUniforms.d == 1;vec4 _1838;if (_956)uint _978 = mesh_bone_indices.x * 4u;vec3 _1025 = _1837.xyz * bonesUniforms.a[_978 + 2u].xyz;uint _984 = mesh_bone_indices.y * 4u;vec3 _1066 = _1837.xyz * bonesUniforms.a[_984 + 2u].xyz;uint _991 = mesh_bone_indices.z * 4u;vec3 _1107 = _1837.xyz * bonesUniforms.a[_991 + 2u].xyz;uint _998 = mesh_bone_indices.w * 4u;vec3 _1148 = _1837.xyz * bonesUniforms.a[_998 + 2u].xyz;vec3 _1003 = (((((_1025 + (cross(bonesUniforms.a[_978].xyz, cross(bonesUniforms.a[_978].xyz, _1025) + (_1025 * bonesUniforms.a[_978].w)) * 2.0)) + bonesUniforms.a[_978 + 1u].xyz) * mesh_bone_weights.x) + (((_1066 + (cross(bonesUniforms.a[_984].xyz, cross(bonesUniforms.a[_984].xyz, _1066) + (_1066 * bonesUniforms.a[_984].w)) * 2.0)) + bonesUniforms.a[_984 + 1u].xyz) * mesh_bone_weights.y)) + (((_1107 + (cross(bonesUniforms.a[_991].xyz, cross(bonesUniforms.a[_991].xyz, _1107) + (_1107 * bonesUniforms.a[_991].w)) * 2.0)) + bonesUniforms.a[_991 + 1u].xyz) * mesh_bone_weights.z)) + (((_1148 + (cross(bonesUniforms.a[_998].xyz, cross(bonesUniforms.a[_998].xyz, _1148) + (_1148 * bonesUniforms.a[_998].w)) * 2.0)) + bonesUniforms.a[_998 + 1u].xyz) * mesh_bone_weights.w);_1838 = vec4(_1003.x, _1003.y, _1003.z, _1837.w);_1838 = _1837;vec4 _1182 = (objectUniforms.a[0] * _1838.x) + ((objectUniforms.a[1] * _1838.y) + ((objectUniforms.a[2] * _1838.z) + objectUniforms.a[3]));vec3 _1193 = (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 _1842;uint _1204 = mesh_bone_indices.x * 4u;vec3 _1245 = _1193 * bonesUniforms.a[_1204 + 3u].xyz;uint _1210 = mesh_bone_indices.y * 4u;vec3 _1277 = _1193 * bonesUniforms.a[_1210 + 3u].xyz;uint _1217 = mesh_bone_indices.z * 4u;vec3 _1309 = _1193 * bonesUniforms.a[_1217 + 3u].xyz;uint _1224 = mesh_bone_indices.w * 4u;vec3 _1341 = _1193 * bonesUniforms.a[_1224 + 3u].xyz;_1842 = ((((_1245 + (cross(bonesUniforms.a[_1204].xyz, cross(bonesUniforms.a[_1204].xyz, _1245) + (_1245 * bonesUniforms.a[_1204].w)) * 2.0)) * mesh_bone_weights.x) + ((_1277 + (cross(bonesUniforms.a[_1210].xyz, cross(bonesUniforms.a[_1210].xyz, _1277) + (_1277 * bonesUniforms.a[_1210].w)) * 2.0)) * mesh_bone_weights.y)) + ((_1309 + (cross(bonesUniforms.a[_1217].xyz, cross(bonesUniforms.a[_1217].xyz, _1309) + (_1309 * bonesUniforms.a[_1217].w)) * 2.0)) * mesh_bone_weights.z)) + ((_1341 + (cross(bonesUniforms.a[_1224].xyz, cross(bonesUniforms.a[_1224].xyz, _1341) + (_1341 * bonesUniforms.a[_1224].w)) * 2.0)) * mesh_bone_weights.w);_1842 = _1193;vec3 _1384 = _1182.xyz;vec3 _1391 = _1384 * inversesqrt(dot(_1384, _1384));vec3 _1504 = mesh_custom0.xyz * 0.2820948064327239990234375;vec3 _1857;vec4 _1363 = mesh_custom1;vec4 _1364 = mesh_custom2;float _1366[9];for (int _1849 = 0; _1849 < 4; )_1366[_1849] = _1363[_1849];_1366[4 + _1849] = _1364[_1849];_1849++;_1366[8] = mesh_custom3.x;float _1369[9] = _1366;vec3 _1515;for (int _1850 = 0; _1850 < 3; )_1515[_1850] = 0.48860251903533935546875 * ((((-_1391.y) * _1369[_1850]) + (_1391.z * _1369[3 + _1850])) - (_1391.x * _1369[6 + _1850]));_1850++;_1857 = _1504 + _1515;_1857 = _1504;vec3 _1858;float _1371[15];_1371[0] = mesh_custom3.y;_1371[1] = mesh_custom3.z;_1371[2] = mesh_custom3.w;vec4 _1372 = mesh_custom4;vec4 _1373 = mesh_custom5;vec4 _1374 = mesh_custom6;for (int _1853 = 0; _1853 < 4; )_1371[3 + _1853] = _1372[_1853];_1371[7 + _1853] = _1373[_1853];_1371[11 + _1853] = _1374[_1853];_1853++;float _1377[15] = _1371;float _1601 = _1391.z;float _1607 = (-1.09254848957061767578125) * _1601;float _1609 = _1391.x;float _1614 = _1391.y;float _1627 = (0.946174681186676025390625 * (_1601 * _1601)) - 0.3153915703296661376953125;float _1631 = _1607 * _1609;float _1635 = _1607 * _1614;float _1637 = 0.546274244785308837890625 * ((_1609 * _1609) - (_1614 * _1614));float _1639 = 0.546274244785308837890625 * ((2.0 * _1609) * _1614);vec3 _1581;for (int _1854 = 0; _1854 < 3; )_1581[_1854] = ((((_1639 * _1377[_1854]) + (_1635 * _1377[3 + _1854])) + (_1627 * _1377[6 + _1854])) + (_1631 * _1377[9 + _1854])) + (_1637 * _1377[12 + _1854]);_1854++;_1858 = _1857 + _1581;_1858 = _1857;vec4 _1828 = vec4(0.0);_1828.x = _1858.x;vec4 _1831 = _1828;_1831.y = _1858.y;vec4 _1834 = _1831;_1834.z = _1858.z;vec4 _1836 = _1834;_1836.w = 0.0;variable_colorFromSh = _1836;vertex_worldPosition = _1384;vertex_worldNormal = objectUniforms.b * _1842;float _1706 = clamp(dot(vertex_worldNormal, frameUniforms.p), 0.0, 1.0);vertex_lightSpacePosition = frameUniforms.g[0] * vec4(vertex_worldPosition + (vertex_worldNormal * (sqrt(1.0 - (_1706 * _1706)) * frameUniforms.r.y)), 1.0);gl_Position = frameUniforms.e * _1182;vec4 _1868;_1868 = (((mesh_position + (mesh_custom0 * objectUniforms.c.x)) + (mesh_custom1 * objectUniforms.c.y)) + (mesh_custom2 * objectUniforms.c.z)) + (mesh_custom3 * objectUniforms.c.w);_1868 = mesh_position;bool _978 = objectUniforms.d == 1;vec4 _1869;if (_978)uint _1000 = mesh_bone_indices.x * 4u;vec3 _1047 = _1868.xyz * bonesUniforms.a[_1000 + 2u].xyz;uint _1006 = mesh_bone_indices.y * 4u;vec3 _1088 = _1868.xyz * bonesUniforms.a[_1006 + 2u].xyz;uint _1013 = mesh_bone_indices.z * 4u;vec3 _1129 = _1868.xyz * bonesUniforms.a[_1013 + 2u].xyz;uint _1020 = mesh_bone_indices.w * 4u;vec3 _1170 = _1868.xyz * bonesUniforms.a[_1020 + 2u].xyz;vec3 _1025 = (((((_1047 + (cross(bonesUniforms.a[_1000].xyz, cross(bonesUniforms.a[_1000].xyz, _1047) + (_1047 * bonesUniforms.a[_1000].w)) * 2.0)) + bonesUniforms.a[_1000 + 1u].xyz) * mesh_bone_weights.x) + (((_1088 + (cross(bonesUniforms.a[_1006].xyz, cross(bonesUniforms.a[_1006].xyz, _1088) + (_1088 * bonesUniforms.a[_1006].w)) * 2.0)) + bonesUniforms.a[_1006 + 1u].xyz) * mesh_bone_weights.y)) + (((_1129 + (cross(bonesUniforms.a[_1013].xyz, cross(bonesUniforms.a[_1013].xyz, _1129) + (_1129 * bonesUniforms.a[_1013].w)) * 2.0)) + bonesUniforms.a[_1013 + 1u].xyz) * mesh_bone_weights.z)) + (((_1170 + (cross(bonesUniforms.a[_1020].xyz, cross(bonesUniforms.a[_1020].xyz, _1170) + (_1170 * bonesUniforms.a[_1020].w)) * 2.0)) + bonesUniforms.a[_1020 + 1u].xyz) * mesh_bone_weights.w);_1869 = vec4(_1025.x, _1025.y, _1025.z, _1868.w);_1869 = _1868;vec4 _1204 = (objectUniforms.a[0] * _1869.x) + ((objectUniforms.a[1] * _1869.y) + ((objectUniforms.a[2] * _1869.z) + objectUniforms.a[3]));vec3 _1215 = (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 _1873;uint _1226 = mesh_bone_indices.x * 4u;vec3 _1267 = _1215 * bonesUniforms.a[_1226 + 3u].xyz;uint _1232 = mesh_bone_indices.y * 4u;vec3 _1299 = _1215 * bonesUniforms.a[_1232 + 3u].xyz;uint _1239 = mesh_bone_indices.z * 4u;vec3 _1331 = _1215 * bonesUniforms.a[_1239 + 3u].xyz;uint _1246 = mesh_bone_indices.w * 4u;vec3 _1363 = _1215 * bonesUniforms.a[_1246 + 3u].xyz;_1873 = ((((_1267 + (cross(bonesUniforms.a[_1226].xyz, cross(bonesUniforms.a[_1226].xyz, _1267) + (_1267 * bonesUniforms.a[_1226].w)) * 2.0)) * mesh_bone_weights.x) + ((_1299 + (cross(bonesUniforms.a[_1232].xyz, cross(bonesUniforms.a[_1232].xyz, _1299) + (_1299 * bonesUniforms.a[_1232].w)) * 2.0)) * mesh_bone_weights.y)) + ((_1331 + (cross(bonesUniforms.a[_1239].xyz, cross(bonesUniforms.a[_1239].xyz, _1331) + (_1331 * bonesUniforms.a[_1239].w)) * 2.0)) * mesh_bone_weights.z)) + ((_1363 + (cross(bonesUniforms.a[_1246].xyz, cross(bonesUniforms.a[_1246].xyz, _1363) + (_1363 * bonesUniforms.a[_1246].w)) * 2.0)) * mesh_bone_weights.w);_1873 = _1215;vec3 _1406 = _1204.xyz;vec3 _1413 = _1406 * inversesqrt(dot(_1406, _1406));vec3 _1526 = mesh_custom0.xyz * 0.2820948064327239990234375;vec3 _1888;vec4 _1385 = mesh_custom1;vec4 _1386 = mesh_custom2;float _1388[9];for (int _1880 = 0; _1880 < 4; )_1388[_1880] = _1385[_1880];_1388[4 + _1880] = _1386[_1880];_1880++;_1388[8] = mesh_custom3.x;float _1391[9] = _1388;vec3 _1537;for (int _1881 = 0; _1881 < 3; )_1537[_1881] = 0.48860251903533935546875 * ((((-_1413.y) * _1391[_1881]) + (_1413.z * _1391[3 + _1881])) - (_1413.x * _1391[6 + _1881]));_1881++;_1888 = _1526 + _1537;_1888 = _1526;vec3 _1889;float _1393[15];_1393[0] = mesh_custom3.y;_1393[1] = mesh_custom3.z;_1393[2] = mesh_custom3.w;vec4 _1394 = mesh_custom4;vec4 _1395 = mesh_custom5;vec4 _1396 = mesh_custom6;for (int _1884 = 0; _1884 < 4; )_1393[3 + _1884] = _1394[_1884];_1393[7 + _1884] = _1395[_1884];_1393[11 + _1884] = _1396[_1884];_1884++;float _1399[15] = _1393;float _1623 = _1413.z;float _1629 = (-1.09254848957061767578125) * _1623;float _1631 = _1413.x;float _1636 = _1413.y;float _1649 = (0.946174681186676025390625 * (_1623 * _1623)) - 0.3153915703296661376953125;float _1653 = _1629 * _1631;float _1657 = _1629 * _1636;float _1659 = 0.546274244785308837890625 * ((_1631 * _1631) - (_1636 * _1636));float _1661 = 0.546274244785308837890625 * ((2.0 * _1631) * _1636);vec3 _1603;for (int _1885 = 0; _1885 < 3; )_1603[_1885] = ((((_1661 * _1399[_1885]) + (_1657 * _1399[3 + _1885])) + (_1649 * _1399[6 + _1885])) + (_1653 * _1399[9 + _1885])) + (_1659 * _1399[12 + _1885]);_1885++;_1889 = _1888 + _1603;_1889 = _1888;vec4 _1859 = vec4(0.0);_1859.x = _1889.x;vec4 _1862 = _1859;_1862.y = _1889.y;vec4 _1865 = _1862;_1865.z = _1889.z;vec4 _1867 = _1865;_1867.w = 0.0;variable_colorFromSh = _1867;vertex_worldPosition = _1406;vertex_worldNormal = objectUniforms.b * _1873;for (uint _1896 = 0u; _1896 < 2u; )float _1729 = clamp(dot(vertex_worldNormal, shadowUniforms.b[_1896].xyz), 0.0, 1.0);vertex_spotLightSpacePosition[_1896] = shadowUniforms.a[_1896] * vec4(vertex_worldPosition + (vertex_worldNormal * (sqrt(1.0 - (_1729 * _1729)) * shadowUniforms.b[_1896].w)), 1.0);_1896++;gl_Position = frameUniforms.e * _1204;vec4 _1914;_1914 = (((mesh_position + (mesh_custom0 * objectUniforms.c.x)) + (mesh_custom1 * objectUniforms.c.y)) + (mesh_custom2 * objectUniforms.c.z)) + (mesh_custom3 * objectUniforms.c.w);_1914 = mesh_position;bool _996 = objectUniforms.d == 1;vec4 _1915;if (_996)uint _1018 = mesh_bone_indices.x * 4u;vec3 _1065 = _1914.xyz * bonesUniforms.a[_1018 + 2u].xyz;uint _1024 = mesh_bone_indices.y * 4u;vec3 _1106 = _1914.xyz * bonesUniforms.a[_1024 + 2u].xyz;uint _1031 = mesh_bone_indices.z * 4u;vec3 _1147 = _1914.xyz * bonesUniforms.a[_1031 + 2u].xyz;uint _1038 = mesh_bone_indices.w * 4u;vec3 _1188 = _1914.xyz * bonesUniforms.a[_1038 + 2u].xyz;vec3 _1043 = (((((_1065 + (cross(bonesUniforms.a[_1018].xyz, cross(bonesUniforms.a[_1018].xyz, _1065) + (_1065 * bonesUniforms.a[_1018].w)) * 2.0)) + bonesUniforms.a[_1018 + 1u].xyz) * mesh_bone_weights.x) + (((_1106 + (cross(bonesUniforms.a[_1024].xyz, cross(bonesUniforms.a[_1024].xyz, _1106) + (_1106 * bonesUniforms.a[_1024].w)) * 2.0)) + bonesUniforms.a[_1024 + 1u].xyz) * mesh_bone_weights.y)) + (((_1147 + (cross(bonesUniforms.a[_1031].xyz, cross(bonesUniforms.a[_1031].xyz, _1147) + (_1147 * bonesUniforms.a[_1031].w)) * 2.0)) + bonesUniforms.a[_1031 + 1u].xyz) * mesh_bone_weights.z)) + (((_1188 + (cross(bonesUniforms.a[_1038].xyz, cross(bonesUniforms.a[_1038].xyz, _1188) + (_1188 * bonesUniforms.a[_1038].w)) * 2.0)) + bonesUniforms.a[_1038 + 1u].xyz) * mesh_bone_weights.w);_1915 = vec4(_1043.x, _1043.y, _1043.z, _1914.w);_1915 = _1914;vec4 _1222 = (objectUniforms.a[0] * _1915.x) + ((objectUniforms.a[1] * _1915.y) + ((objectUniforms.a[2] * _1915.z) + objectUniforms.a[3]));vec3 _1233 = (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 _1919;uint _1244 = mesh_bone_indices.x * 4u;vec3 _1285 = _1233 * bonesUniforms.a[_1244 + 3u].xyz;uint _1250 = mesh_bone_indices.y * 4u;vec3 _1317 = _1233 * bonesUniforms.a[_1250 + 3u].xyz;uint _1257 = mesh_bone_indices.z * 4u;vec3 _1349 = _1233 * bonesUniforms.a[_1257 + 3u].xyz;uint _1264 = mesh_bone_indices.w * 4u;vec3 _1381 = _1233 * bonesUniforms.a[_1264 + 3u].xyz;_1919 = ((((_1285 + (cross(bonesUniforms.a[_1244].xyz, cross(bonesUniforms.a[_1244].xyz, _1285) + (_1285 * bonesUniforms.a[_1244].w)) * 2.0)) * mesh_bone_weights.x) + ((_1317 + (cross(bonesUniforms.a[_1250].xyz, cross(bonesUniforms.a[_1250].xyz, _1317) + (_1317 * bonesUniforms.a[_1250].w)) * 2.0)) * mesh_bone_weights.y)) + ((_1349 + (cross(bonesUniforms.a[_1257].xyz, cross(bonesUniforms.a[_1257].xyz, _1349) + (_1349 * bonesUniforms.a[_1257].w)) * 2.0)) * mesh_bone_weights.z)) + ((_1381 + (cross(bonesUniforms.a[_1264].xyz, cross(bonesUniforms.a[_1264].xyz, _1381) + (_1381 * bonesUniforms.a[_1264].w)) * 2.0)) * mesh_bone_weights.w);_1919 = _1233;vec3 _1424 = _1222.xyz;vec3 _1431 = _1424 * inversesqrt(dot(_1424, _1424));vec3 _1544 = mesh_custom0.xyz * 0.2820948064327239990234375;vec3 _1934;vec4 _1403 = mesh_custom1;vec4 _1404 = mesh_custom2;float _1406[9];for (int _1926 = 0; _1926 < 4; )_1406[_1926] = _1403[_1926];_1406[4 + _1926] = _1404[_1926];_1926++;_1406[8] = mesh_custom3.x;float _1409[9] = _1406;vec3 _1555;for (int _1927 = 0; _1927 < 3; )_1555[_1927] = 0.48860251903533935546875 * ((((-_1431.y) * _1409[_1927]) + (_1431.z * _1409[3 + _1927])) - (_1431.x * _1409[6 + _1927]));_1927++;_1934 = _1544 + _1555;_1934 = _1544;vec3 _1935;float _1411[15];_1411[0] = mesh_custom3.y;_1411[1] = mesh_custom3.z;_1411[2] = mesh_custom3.w;vec4 _1412 = mesh_custom4;vec4 _1413 = mesh_custom5;vec4 _1414 = mesh_custom6;for (int _1930 = 0; _1930 < 4; )_1411[3 + _1930] = _1412[_1930];_1411[7 + _1930] = _1413[_1930];_1411[11 + _1930] = _1414[_1930];_1930++;float _1417[15] = _1411;float _1641 = _1431.z;float _1647 = (-1.09254848957061767578125) * _1641;float _1649 = _1431.x;float _1654 = _1431.y;float _1667 = (0.946174681186676025390625 * (_1641 * _1641)) - 0.3153915703296661376953125;float _1671 = _1647 * _1649;float _1675 = _1647 * _1654;float _1677 = 0.546274244785308837890625 * ((_1649 * _1649) - (_1654 * _1654));float _1679 = 0.546274244785308837890625 * ((2.0 * _1649) * _1654);vec3 _1621;for (int _1931 = 0; _1931 < 3; )_1621[_1931] = ((((_1679 * _1417[_1931]) + (_1675 * _1417[3 + _1931])) + (_1667 * _1417[6 + _1931])) + (_1671 * _1417[9 + _1931])) + (_1677 * _1417[12 + _1931]);_1931++;_1935 = _1934 + _1621;_1935 = _1934;vec4 _1905 = vec4(0.0);_1905.x = _1935.x;vec4 _1908 = _1905;_1908.y = _1935.y;vec4 _1911 = _1908;_1911.z = _1935.z;vec4 _1913 = _1911;_1913.w = 0.0;variable_colorFromSh = _1913;vertex_worldPosition = _1424;vertex_worldNormal = objectUniforms.b * _1919;float _1746 = clamp(dot(vertex_worldNormal, frameUniforms.p), 0.0, 1.0);vertex_lightSpacePosition = frameUniforms.g[0] * vec4(vertex_worldPosition + (vertex_worldNormal * (sqrt(1.0 - (_1746 * _1746)) * frameUniforms.r.y)), 1.0);for (uint _1942 = 0u; _1942 < 2u; )float _1775 = clamp(dot(vertex_worldNormal, shadowUniforms.b[_1942].xyz), 0.0, 1.0);vertex_spotLightSpacePosition[_1942] = shadowUniforms.a[_1942] * vec4(vertex_worldPosition + (vertex_worldNormal * (sqrt(1.0 - (_1775 * _1775)) * shadowUniforms.b[_1942].w)), 1.0);_1942++;gl_Position = frameUniforms.e * _1222;vec4 _2325;float _2348;vec2 _597 = vec3(shading_normalizedViewportCoord, _2348).xy;vec4 _622 = textureGather(light_ssao, _597, 1);vec4 _626 = textureGather(light_ssao, _597, 2);vec2 _633 = fract((_597 * vec2(textureSize(light_ssao, 0))) - vec2(0.5));float _636 = _633.x;float _637 = 1.0 - _636;float _639 = _633.y;vec4 _2243 = _2325;_2243.x = _637 * _639;vec4 _2247 = _2243;_2247.y = _636 * _639;float _652 = 1.0 - _639;vec4 _2251 = _2247;_2251.z = _636 * _652;vec4 _2255 = _2251;_2255.w = _637 * _652;vec4 _2261 = _2325;_2261.x = (_622.x * 0.996108949184417724609375) + (_626.x * 0.00389105058275163173675537109375);vec4 _2267 = _2261;_2267.y = (_622.y * 0.996108949184417724609375) + (_626.y * 0.00389105058275163173675537109375);vec4 _2273 = _2267;_2273.z = (_622.z * 0.996108949184417724609375) + (_626.z * 0.00389105058275163173675537109375);vec4 _2279 = _2273;_2279.w = (_622.w * 0.996108949184417724609375) + (_626.w * 0.00389105058275163173675537109375);vec4 _725 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_2279 * (-frameUniforms.dz))) * frameUniforms.sz;vec4 _735 = max(vec4(6.103515625e-05), vec4(1.0) - (_725 * _725)) * _2255;return dot(textureGather(light_ssao, _597), _735) * (1.0 / (((_735.x + _735.y) + _735.z) + _735.w));return textureLod(light_ssao, _597, 0.0).x;ivec2 _936 = textureSize(light_iblSpecular, int(frameUniforms.cz));vec3 _951 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _958 = _951 * (1.0 / float(_936.x));vec3 _962 = cross(_951, n) * (1.0 / float(_936.y));vec3 _965 = n - _958;vec3 _970 = n + _958;return (((textureLod(light_iblSpecular, _965 - _962, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _970 - _962, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _970 + _962, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _965 + _962, frameUniforms.cz).xyz) * 0.25;vec3 _2291;vec3 _2290;_2290 = vertex_worldNormal;_2290 = -vertex_worldNormal;_2291 = _2290;_2291 = vertex_worldNormal;vec3 _1332 = normalize(_2291);float _1395 = max(dot(_1332, normalize(frameUniforms.j - shading_position)), 9.9999997473787516355514526367188e-05);vec3 _1483 = variable_colorFromSh.xyz * 1.0;vec4 _1554 = textureLod(light_iblDFG, vec2(_1395, 1.0), 0.0);float _1590 = min(1.0, evaluateSSAO());float _1683 = clamp((pow(_1395 + _1590, 7.62939453125e-06) - 1.0) + _1590, 0.0, 1.0);vec3 _1691 = mix(_1554.xxx, _1554.yyy, vec3(0.039999999105930328369140625));fragColor = vec4((((((_1483 * diffuseIrradiance(_1332)) * (vec3(1.0) - _1691)) * 1.0) * max(vec3(_1590), ((((((_1483 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _1590) + ((_1483 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _1590) + ((_1483 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _1590)) + (((_1691 * textureLod(light_iblSpecular, _1332, frameUniforms.cz).xyz) * ((vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _1554.y) - 1.0))) * 1.0)) * max(vec3(_1683), ((((vec3(-0.250783979892730712890625) * _1683) + vec3(0.449896037578582763671875)) * _1683) + vec3(0.800507962703704833984375)) * _1683))) * frameUniforms.x, 1.0);vec3 _1279 = shading_position - frameUniforms.j;vec4 _2324;if (frameUniforms.nz > 0.0)float _1847 = length(_1279);float _1850 = max(0.001000000047497451305389404296875, _1279.y);float _1860 = frameUniforms.nz * ((1.0 - exp((-frameUniforms.lz) * _1850)) / _1850);float _1876 = min(max(1.0 - exp2(-(_1860 * max(_1847 - frameUniforms.iz, 0.0))), 0.0), frameUniforms.jz);vec3 _2320;if (frameUniforms.qz > 0.0)_2320 = frameUniforms.mz * (textureLod(light_iblSpecular, _1279, frameUniforms.cz).xyz * frameUniforms.x);_2320 = frameUniforms.mz;vec3 _1898 = _2320 * _1876;vec3 _2323;if (frameUniforms.pz > 0.0)_2323 = _1898 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_1279, frameUniforms.p) / _1847, 0.0), frameUniforms.pz) * max(1.0 - exp2(-(_1860 * max(_1847 - frameUniforms.oz, 0.0))), 0.0)));_2323 = _1898;vec3 _1946 = (fragColor.xyz * (1.0 - _1876)) + _2323;_2324 = vec4(_1946.x, _1946.y, _1946.z, fragColor.w);_2324 = fragColor;fragColor = _2324;vec3 _2979;float _2982;vec4 _3011;float _3040;vec2 _913 = vec3(shading_normalizedViewportCoord, _3040).xy;vec4 _938 = textureGather(light_ssao, _913, 1);vec4 _942 = textureGather(light_ssao, _913, 2);vec2 _949 = fract((_913 * vec2(textureSize(light_ssao, 0))) - vec2(0.5));float _952 = _949.x;float _953 = 1.0 - _952;float _955 = _949.y;vec4 _2929 = _3011;_2929.x = _953 * _955;vec4 _2933 = _2929;_2933.y = _952 * _955;float _968 = 1.0 - _955;vec4 _2937 = _2933;_2937.z = _952 * _968;vec4 _2941 = _2937;_2941.w = _953 * _968;vec4 _2947 = _3011;_2947.x = (_938.x * 0.996108949184417724609375) + (_942.x * 0.00389105058275163173675537109375);vec4 _2953 = _2947;_2953.y = (_938.y * 0.996108949184417724609375) + (_942.y * 0.00389105058275163173675537109375);vec4 _2959 = _2953;_2959.z = (_938.z * 0.996108949184417724609375) + (_942.z * 0.00389105058275163173675537109375);vec4 _2965 = _2959;_2965.w = (_938.w * 0.996108949184417724609375) + (_942.w * 0.00389105058275163173675537109375);vec4 _1041 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_2965 * (-frameUniforms.dz))) * frameUniforms.sz;vec4 _1051 = max(vec4(6.103515625e-05), vec4(1.0) - (_1041 * _1041)) * _2941;return dot(textureGather(light_ssao, _913), _1051) * (1.0 / (((_1051.x + _1051.y) + _1051.z) + _1051.w));return textureLod(light_ssao, _913, 0.0).x;ivec2 _1251 = textureSize(light_iblSpecular, int(frameUniforms.cz));vec3 _1266 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _1273 = _1266 * (1.0 / float(_1251.x));vec3 _1277 = cross(_1266, n) * (1.0 / float(_1251.y));vec3 _1280 = n - _1273;vec3 _1285 = n + _1273;return (((textureLod(light_iblSpecular, _1280 - _1277, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1285 - _1277, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1285 + _1277, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1280 + _1277, frameUniforms.cz).xyz) * 0.25;float _1474 = dot(lightDirection, shading_reflected);vec3 _3012;if (_1474 < frameUniforms.m.x)_3012 = normalize((lightDirection * frameUniforms.m.x) + (normalize(shading_reflected - (lightDirection * _1474)) * frameUniforms.m.y));_3012 = shading_reflected;return _3012;vec3 _2510 = sampleSunAreaLight(frameUniforms.p);float _2517 = clamp(dot(shading_normal, _2510), 0.0, 1.0);if (_2517 <= 0.0)vec3 _2540 = normalize(shading_view + _2510);float _2543 = clamp(_2517, 0.0, 1.0);float _2547 = clamp(dot(shading_normal, _2540), 0.0, 1.0);float _2635 = _2547 * pixel.roughness;float _2642 = pixel.roughness / ((1.0 - (_2547 * _2547)) + (_2635 * _2635));float _2665 = pixel.roughness * pixel.roughness;float _2712 = 1.0 - clamp(dot(_2510, _2540), 0.0, 1.0);float _2721 = _2712 * _2712;color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_2721 * _2721) * _2712))) * (((_2642 * _2642) * 0.3183098733425140380859375) * (0.5 / ((_2543 * sqrt(((shading_NoV - (_2665 * shading_NoV)) * shading_NoV) + _2665)) + (shading_NoV * sqrt(((_2543 - (_2665 * _2543)) * _2543) + _2665)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * (frameUniforms.l.w * _2543));vec3 _2977;vec3 _2976;_2976 = vertex_worldNormal;_2976 = -vertex_worldNormal;_2977 = _2976;_2977 = vertex_worldNormal;shading_normal = normalize(_2977);vec3 _1880 = variable_colorFromSh.xyz * 1.0;vec4 _1951 = textureLod(light_iblDFG, vec2(shading_NoV, 1.0), 0.0);vec3 _1936 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _1951.y) - 1.0));float _1987 = min(1.0, evaluateSSAO());float _2080 = clamp((pow(shading_NoV + _1987, 7.62939453125e-06) - 1.0) + _1987, 0.0, 1.0);vec3 _2088 = mix(_1951.xxx, _1951.yyy, vec3(0.039999999105930328369140625));vec3 _1801 = (((((_1880 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _2088)) * 1.0) * max(vec3(_1987), ((((((_1880 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _1987) + ((_1880 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _1987) + ((_1880 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _1987)) + (((_2088 * textureLod(light_iblSpecular, shading_normal, frameUniforms.cz).xyz) * (_1936 * 1.0)) * max(vec3(_2080), ((((vec3(-0.250783979892730712890625) * _2080) + vec3(0.449896037578582763671875)) * _2080) + vec3(0.800507962703704833984375)) * _2080))) * frameUniforms.x;evaluateDirectionalLight(MaterialInputs(vec4(variable_colorFromSh.x, variable_colorFromSh.y, variable_colorFromSh.z, vec4(0.0, 0.0, 0.0, 1.0).w), 1.0, 0.0, 0.5, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _2979, _2982, _2982, _2982, _2982, _2979), PixelParams(_1880, 1.0, 1.0, vec3(0.039999999105930328369140625), 1.0, _1951.xyz, _1936), _1801);fragColor = vec4(_1801, 1.0);vec3 _1671 = shading_position - frameUniforms.j;vec4 _3010;float _2244 = length(_1671);float _2247 = max(0.001000000047497451305389404296875, _1671.y);float _2257 = frameUniforms.nz * ((1.0 - exp((-frameUniforms.lz) * _2247)) / _2247);float _2273 = min(max(1.0 - exp2(-(_2257 * max(_2244 - frameUniforms.iz, 0.0))), 0.0), frameUniforms.jz);vec3 _3006;_3006 = frameUniforms.mz * (textureLod(light_iblSpecular, _1671, frameUniforms.cz).xyz * frameUniforms.x);_3006 = frameUniforms.mz;vec3 _2295 = _3006 * _2273;vec3 _3009;_3009 = _2295 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_1671, frameUniforms.p) / _2244, 0.0), frameUniforms.pz) * max(1.0 - exp2(-(_2257 * max(_2244 - frameUniforms.oz, 0.0))), 0.0)));_3009 = _2295;vec3 _2343 = (fragColor.xyz * (1.0 - _2273)) + _3009;_3010 = vec4(_2343.x, _2343.y, _2343.z, fragColor.w);_3010 = fragColor;fragColor = _3010;vec4 _3600;vec4 _3626;float _3627;vec2 _958 = vec3(shading_normalizedViewportCoord, _3627).xy;vec4 _982 = textureGather(light_ssao, _958, 1);vec4 _986 = textureGather(light_ssao, _958, 2);vec2 _993 = fract((_958 * vec2(textureSize(light_ssao, 0))) - vec2(0.5));float _996 = _993.x;float _997 = 1.0 - _996;float _999 = _993.y;vec4 _3480 = _3600;_3480.x = _997 * _999;vec4 _3484 = _3480;_3484.y = _996 * _999;float _1012 = 1.0 - _999;vec4 _3488 = _3484;_3488.z = _996 * _1012;vec4 _3492 = _3488;_3492.w = _997 * _1012;vec4 _3498 = _3600;_3498.x = (_982.x * 0.996108949184417724609375) + (_986.x * 0.00389105058275163173675537109375);vec4 _3504 = _3498;_3504.y = (_982.y * 0.996108949184417724609375) + (_986.y * 0.00389105058275163173675537109375);vec4 _3510 = _3504;_3510.z = (_982.z * 0.996108949184417724609375) + (_986.z * 0.00389105058275163173675537109375);vec4 _3516 = _3510;_3516.w = (_982.w * 0.996108949184417724609375) + (_986.w * 0.00389105058275163173675537109375);vec4 _1085 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_3516 * (-frameUniforms.dz))) * frameUniforms.sz;vec4 _1095 = max(vec4(6.103515625e-05), vec4(1.0) - (_1085 * _1085)) * _3492;return dot(textureGather(light_ssao, _958), _1095) * (1.0 / (((_1095.x + _1095.y) + _1095.z) + _1095.w));return textureLod(light_ssao, _958, 0.0).x;ivec2 _1295 = textureSize(light_iblSpecular, int(frameUniforms.cz));vec3 _1310 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _1317 = _1310 * (1.0 / float(_1295.x));vec3 _1321 = cross(_1310, n) * (1.0 / float(_1295.y));vec3 _1324 = n - _1317;vec3 _1329 = n + _1317;return (((textureLod(light_iblSpecular, _1324 - _1321, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1329 - _1321, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1329 + _1321, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1324 + _1321, frameUniforms.cz).xyz) * 0.25;vec3 _3528;vec3 _3527;_3527 = vertex_worldNormal;_3527 = -vertex_worldNormal;_3528 = _3527;_3528 = vertex_worldNormal;vec3 _1998 = normalize(_3528);vec3 _2004 = normalize(frameUniforms.j - shading_position);float _2060 = max(dot(_1998, _2004), 9.9999997473787516355514526367188e-05);vec3 _2153 = variable_colorFromSh.xyz * 1.0;vec4 _2224 = textureLod(light_iblDFG, vec2(_2060, 1.0), 0.0);vec3 _2209 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2224.y) - 1.0));float _2260 = min(1.0, evaluateSSAO());float _2353 = clamp((pow(_2060 + _2260, 7.62939453125e-06) - 1.0) + _2260, 0.0, 1.0);vec3 _2361 = mix(_2224.xxx, _2224.yyy, vec3(0.039999999105930328369140625));float _2526 = 1.0 - gl_FragCoord.z;uvec2 _2565 = uvec2((vec3(shading_normalizedViewportCoord, _2526).xy * frameUniforms.i.xy) * vec2(frameUniforms.w, frameUniforms.s));uint _2550 = ((_2565.x * frameUniforms.q) + (_2565.y * frameUniforms.u.x)) + (uint(max(0.0, (log2((frameUniforms.t.x * _2526) + frameUniforms.t.y) * frameUniforms.t.z) + frameUniforms.t.w)) * frameUniforms.u.y);uvec4 _2597 = texelFetch(light_froxels, ivec2(int(_2550 & 63u), int(_2550 >> 6u)), 0);uint _2600 = _2597.x;uint _2498 = _2600 + (_2597.y & 255u);vec3 _3561;_3561 = (((((_2153 * diffuseIrradiance(_1998)) * (vec3(1.0) - _2361)) * 1.0) * max(vec3(_2260), ((((((_2153 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2260) + ((_2153 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2260) + ((_2153 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2260)) + (((_2361 * textureLod(light_iblSpecular, _1998, frameUniforms.cz).xyz) * (_2209 * 1.0)) * max(vec3(_2353), ((((vec3(-0.250783979892730712890625) * _2353) + vec3(0.449896037578582763671875)) * _2353) + vec3(0.800507962703704833984375)) * _2353))) * frameUniforms.x;vec3 _3593;for (uint _3560 = _2600; _3560 < _2498; _3561 = _3593, _3560++)uvec4 _2635 = texelFetch(light_records, ivec2(int(_3560 & 31u), int(_3560 >> 5u)), 0);uint _2636 = _2635.x;vec3 _2653 = lightsUniforms.a[_2636][0].xyz - vertex_worldPosition;float _2733 = lightsUniforms.a[_2636][1].w * frameUniforms.y;vec4 _3472 = vec4(lightsUniforms.a[_2636][1].x, lightsUniforms.a[_2636][1].y, lightsUniforms.a[_2636][1].z, _3626.w);_3472.w = _2733;vec3 _2666 = normalize(_2653);float _2740 = dot(_2653, _2653);float _2755 = _2740 * lightsUniforms.a[_2636][0].w;float _2760 = clamp(1.0 - (_2755 * _2755), 0.0, 1.0);float _2748 = (_2760 * _2760) / max(_2740, 9.9999997473787516355514526367188e-05);float _2677 = clamp(dot(_1998, _2666), 0.0, 1.0);float _3589;if (floatBitsToUint(lightsUniforms.a[_2636][3].w) == 1u)float _2774 = clamp((dot(-lightsUniforms.a[_2636][2].xyz, _2666) * lightsUniforms.a[_2636][3].x) + lightsUniforms.a[_2636][3].y, 0.0, 1.0);_3589 = _2748 * (_2774 * _2774);_3589 = _2748;if (_2677 <= 0.0)_3593 = _3561;vec3 _2798 = normalize(_2004 + _2666);float _2801 = clamp(_2677, 0.0, 1.0);float _2805 = clamp(dot(_1998, _2798), 0.0, 1.0);float _2950 = (_2801 * sqrt(((_2060 - _2060) * _2060) + 1.0)) + (_2060 * sqrt(((_2801 - _2801) * _2801) + 1.0));float _2970 = 1.0 - clamp(dot(_2666, _2798), 0.0, 1.0);float _2979 = _2970 * _2970;_3593 = _3561 + ((((_2153 * 0.3183098733425140380859375) + (((vec3(0.039999999105930328369140625) + (vec3(0.959999978542327880859375) * ((_2979 * _2979) * _2970))) * (0.15915493667125701904296875 / _2950)) * _2209)) * _3472.xyz) * ((_2733 * _3589) * _2801));fragColor = vec4(_3561, 1.0);vec3 _1955 = shading_position - frameUniforms.j;vec4 _3566;float _3038 = length(_1955);float _3041 = max(0.001000000047497451305389404296875, _1955.y);float _3051 = frameUniforms.nz * ((1.0 - exp((-frameUniforms.lz) * _3041)) / _3041);float _3067 = min(max(1.0 - exp2(-(_3051 * max(_3038 - frameUniforms.iz, 0.0))), 0.0), frameUniforms.jz);vec3 _3562;_3562 = frameUniforms.mz * (textureLod(light_iblSpecular, _1955, frameUniforms.cz).xyz * frameUniforms.x);_3562 = frameUniforms.mz;vec3 _3089 = _3562 * _3067;vec3 _3565;_3565 = _3089 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_1955, frameUniforms.p) / _3038, 0.0), frameUniforms.pz) * max(1.0 - exp2(-(_3051 * max(_3038 - frameUniforms.oz, 0.0))), 0.0)));_3565 = _3089;vec3 _3137 = (fragColor.xyz * (1.0 - _3067)) + _3565;_3566 = vec4(_3137.x, _3137.y, _3137.z, fragColor.w);_3566 = fragColor;fragColor = _3566;vec3 _3907;float _3910;vec4 _3977;vec4 _4009;float _4010;vec2 _969 = vec3(shading_normalizedViewportCoord, _4010).xy;vec4 _993 = textureGather(light_ssao, _969, 1);vec4 _997 = textureGather(light_ssao, _969, 2);vec2 _1004 = fract((_969 * vec2(textureSize(light_ssao, 0))) - vec2(0.5));float _1007 = _1004.x;float _1008 = 1.0 - _1007;float _1010 = _1004.y;vec4 _3857 = _3977;_3857.x = _1008 * _1010;vec4 _3861 = _3857;_3861.y = _1007 * _1010;float _1023 = 1.0 - _1010;vec4 _3865 = _3861;_3865.z = _1007 * _1023;vec4 _3869 = _3865;_3869.w = _1008 * _1023;vec4 _3875 = _3977;_3875.x = (_993.x * 0.996108949184417724609375) + (_997.x * 0.00389105058275163173675537109375);vec4 _3881 = _3875;_3881.y = (_993.y * 0.996108949184417724609375) + (_997.y * 0.00389105058275163173675537109375);vec4 _3887 = _3881;_3887.z = (_993.z * 0.996108949184417724609375) + (_997.z * 0.00389105058275163173675537109375);vec4 _3893 = _3887;_3893.w = (_993.w * 0.996108949184417724609375) + (_997.w * 0.00389105058275163173675537109375);vec4 _1096 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_3893 * (-frameUniforms.dz))) * frameUniforms.sz;vec4 _1106 = max(vec4(6.103515625e-05), vec4(1.0) - (_1096 * _1096)) * _3869;return dot(textureGather(light_ssao, _969), _1106) * (1.0 / (((_1106.x + _1106.y) + _1106.z) + _1106.w));return textureLod(light_ssao, _969, 0.0).x;ivec2 _1306 = textureSize(light_iblSpecular, int(frameUniforms.cz));vec3 _1321 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _1328 = _1321 * (1.0 / float(_1306.x));vec3 _1332 = cross(_1321, n) * (1.0 / float(_1306.y));vec3 _1335 = n - _1328;vec3 _1340 = n + _1328;return (((textureLod(light_iblSpecular, _1335 - _1332, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1340 - _1332, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1340 + _1332, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1335 + _1332, frameUniforms.cz).xyz) * 0.25;float _1529 = dot(lightDirection, shading_reflected);vec3 _3978;if (_1529 < frameUniforms.m.x)_3978 = normalize((lightDirection * frameUniforms.m.x) + (normalize(shading_reflected - (lightDirection * _1529)) * frameUniforms.m.y));_3978 = shading_reflected;return _3978;vec3 _3396 = sampleSunAreaLight(frameUniforms.p);float _3403 = clamp(dot(shading_normal, _3396), 0.0, 1.0);if (_3403 <= 0.0)vec3 _3426 = normalize(shading_view + _3396);float _3429 = clamp(_3403, 0.0, 1.0);float _3433 = clamp(dot(shading_normal, _3426), 0.0, 1.0);float _3521 = _3433 * pixel.roughness;float _3528 = pixel.roughness / ((1.0 - (_3433 * _3433)) + (_3521 * _3521));float _3551 = pixel.roughness * pixel.roughness;float _3598 = 1.0 - clamp(dot(_3396, _3426), 0.0, 1.0);float _3607 = _3598 * _3598;color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_3607 * _3607) * _3598))) * (((_3528 * _3528) * 0.3183098733425140380859375) * (0.5 / ((_3429 * sqrt(((shading_NoV - (_3551 * shading_NoV)) * shading_NoV) + _3551)) + (shading_NoV * sqrt(((_3429 - (_3551 * _3429)) * _3429) + _3551)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * (frameUniforms.l.w * _3429));vec3 _3905;vec3 _3904;_3904 = vertex_worldNormal;_3904 = -vertex_worldNormal;_3905 = _3904;_3905 = vertex_worldNormal;shading_normal = normalize(_3905);vec3 _2245 = variable_colorFromSh.xyz * 1.0;vec4 _2316 = textureLod(light_iblDFG, vec2(shading_NoV, 1.0), 0.0);vec3 _2301 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2316.y) - 1.0));float _2352 = min(1.0, evaluateSSAO());float _2445 = clamp((pow(shading_NoV + _2352, 7.62939453125e-06) - 1.0) + _2352, 0.0, 1.0);vec3 _2453 = mix(_2316.xxx, _2316.yyy, vec3(0.039999999105930328369140625));vec3 _2161 = (((((_2245 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _2453)) * 1.0) * max(vec3(_2352), ((((((_2245 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2352) + ((_2245 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2352) + ((_2245 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2352)) + (((_2453 * textureLod(light_iblSpecular, shading_normal, frameUniforms.cz).xyz) * (_2301 * 1.0)) * max(vec3(_2445), ((((vec3(-0.250783979892730712890625) * _2445) + vec3(0.449896037578582763671875)) * _2445) + vec3(0.800507962703704833984375)) * _2445))) * frameUniforms.x;evaluateDirectionalLight(MaterialInputs(vec4(variable_colorFromSh.x, variable_colorFromSh.y, variable_colorFromSh.z, vec4(0.0, 0.0, 0.0, 1.0).w), 1.0, 0.0, 0.5, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _3907, _3910, _3910, _3910, _3910, _3907), PixelParams(_2245, 1.0, 1.0, vec3(0.039999999105930328369140625), 1.0, _2316.xyz, _2301), _2161);float _2618 = 1.0 - gl_FragCoord.z;uvec2 _2657 = uvec2((vec3(shading_normalizedViewportCoord, _2618).xy * frameUniforms.i.xy) * vec2(frameUniforms.w, frameUniforms.s));uint _2642 = ((_2657.x * frameUniforms.q) + (_2657.y * frameUniforms.u.x)) + (uint(max(0.0, (log2((frameUniforms.t.x * _2618) + frameUniforms.t.y) * frameUniforms.t.z) + frameUniforms.t.w)) * frameUniforms.u.y);uvec4 _2689 = texelFetch(light_froxels, ivec2(int(_2642 & 63u), int(_2642 >> 6u)), 0);uint _2692 = _2689.x;uint _2590 = _2692 + (_2689.y & 255u);vec3 _3938;_3938 = _2161;vec3 _3970;for (uint _3937 = _2692; _3937 < _2590; _3938 = _3970, _3937++)uvec4 _2727 = texelFetch(light_records, ivec2(int(_3937 & 31u), int(_3937 >> 5u)), 0);uint _2728 = _2727.x;vec3 _2745 = lightsUniforms.a[_2728][0].xyz - vertex_worldPosition;float _2825 = lightsUniforms.a[_2728][1].w * frameUniforms.y;vec4 _3849 = vec4(lightsUniforms.a[_2728][1].x, lightsUniforms.a[_2728][1].y, lightsUniforms.a[_2728][1].z, _4009.w);_3849.w = _2825;vec3 _2758 = normalize(_2745);float _2832 = dot(_2745, _2745);float _2847 = _2832 * lightsUniforms.a[_2728][0].w;float _2852 = clamp(1.0 - (_2847 * _2847), 0.0, 1.0);float _2840 = (_2852 * _2852) / max(_2832, 9.9999997473787516355514526367188e-05);float _2769 = clamp(dot(shading_normal, _2758), 0.0, 1.0);float _3966;if (floatBitsToUint(lightsUniforms.a[_2728][3].w) == 1u)float _2866 = clamp((dot(-lightsUniforms.a[_2728][2].xyz, _2758) * lightsUniforms.a[_2728][3].x) + lightsUniforms.a[_2728][3].y, 0.0, 1.0);_3966 = _2840 * (_2866 * _2866);_3966 = _2840;if (_2769 <= 0.0)_3970 = _3938;vec3 _2890 = normalize(shading_view + _2758);float _2893 = clamp(_2769, 0.0, 1.0);float _2897 = clamp(dot(shading_normal, _2890), 0.0, 1.0);float _3042 = (_2893 * sqrt(((shading_NoV - shading_NoV) * shading_NoV) + 1.0)) + (shading_NoV * sqrt(((_2893 - _2893) * _2893) + 1.0));float _3062 = 1.0 - clamp(dot(_2758, _2890), 0.0, 1.0);float _3071 = _3062 * _3062;_3970 = _3938 + ((((_2245 * 0.3183098733425140380859375) + (((vec3(0.039999999105930328369140625) + (vec3(0.959999978542327880859375) * ((_3071 * _3071) * _3062))) * (0.15915493667125701904296875 / _3042)) * _2301)) * _3849.xyz) * ((_2825 * _3966) * _2893));fragColor = vec4(_3938, 1.0);vec3 _2042 = shading_position - frameUniforms.j;vec4 _3943;float _3130 = length(_2042);float _3133 = max(0.001000000047497451305389404296875, _2042.y);float _3143 = frameUniforms.nz * ((1.0 - exp((-frameUniforms.lz) * _3133)) / _3133);float _3159 = min(max(1.0 - exp2(-(_3143 * max(_3130 - frameUniforms.iz, 0.0))), 0.0), frameUniforms.jz);vec3 _3939;_3939 = frameUniforms.mz * (textureLod(light_iblSpecular, _2042, frameUniforms.cz).xyz * frameUniforms.x);_3939 = frameUniforms.mz;vec3 _3181 = _3939 * _3159;vec3 _3942;_3942 = _3181 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_2042, frameUniforms.p) / _3130, 0.0), frameUniforms.pz) * max(1.0 - exp2(-(_3143 * max(_3130 - frameUniforms.oz, 0.0))), 0.0)));_3942 = _3181;vec3 _3229 = (fragColor.xyz * (1.0 - _3159)) + _3942;_3943 = vec4(_3229.x, _3229.y, _3229.z, fragColor.w);_3943 = fragColor;fragColor = _3943;vec3 _4347;float _4350;vec4 _4379;float _4425;vec3 _525;vec2 _1577 = vec3(shading_normalizedViewportCoord, _4425).xy;vec4 _1599 = textureGather(light_ssao, _1577, 1);vec4 _1603 = textureGather(light_ssao, _1577, 2);vec2 _1610 = fract((_1577 * vec2(textureSize(light_ssao, 0))) - vec2(0.5));float _1613 = _1610.x;float _1614 = 1.0 - _1613;float _1616 = _1610.y;vec4 _4259 = _4379;_4259.x = _1614 * _1616;vec4 _4263 = _4259;_4263.y = _1613 * _1616;float _1629 = 1.0 - _1616;vec4 _4267 = _4263;_4267.z = _1613 * _1629;vec4 _4271 = _4267;_4271.w = _1614 * _1629;vec4 _4277 = _4379;_4277.x = (_1599.x * 0.996108949184417724609375) + (_1603.x * 0.00389105058275163173675537109375);vec4 _4283 = _4277;_4283.y = (_1599.y * 0.996108949184417724609375) + (_1603.y * 0.00389105058275163173675537109375);vec4 _4289 = _4283;_4289.z = (_1599.z * 0.996108949184417724609375) + (_1603.z * 0.00389105058275163173675537109375);vec4 _4295 = _4289;_4295.w = (_1599.w * 0.996108949184417724609375) + (_1603.w * 0.00389105058275163173675537109375);vec4 _1701 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_4295 * (-frameUniforms.dz))) * frameUniforms.sz;vec4 _1711 = max(vec4(6.103515625e-05), vec4(1.0) - (_1701 * _1701)) * _4271;return dot(textureGather(light_ssao, _1577), _1711) * (1.0 / (((_1711.x + _1711.y) + _1711.z) + _1711.w));return textureLod(light_ssao, _1577, 0.0).x;ivec2 _1909 = textureSize(light_iblSpecular, int(frameUniforms.cz));vec3 _1923 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _1930 = _1923 * (1.0 / float(_1909.x));vec3 _1934 = cross(_1923, n) * (1.0 / float(_1909.y));vec3 _1937 = n - _1930;vec3 _1942 = n + _1930;return (((textureLod(light_iblSpecular, _1937 - _1934, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1942 - _1934, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1942 + _1934, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1937 + _1934, frameUniforms.cz).xyz) * 0.25;float _2130 = dot(lightDirection, shading_reflected);vec3 _4380;if (_2130 < frameUniforms.m.x)_4380 = normalize((lightDirection * frameUniforms.m.x) + (normalize(shading_reflected - (lightDirection * _2130)) * frameUniforms.m.y));_4380 = shading_reflected;return _4380;float _4034 = clamp(dot(shading_normal, frameUniforms.p), 0.0, 1.0);vec4 _4049 = frameUniforms.g[cascade] * vec4(shading_position + (shading_normal * (sqrt(1.0 - (_4034 * _4034)) * frameUniforms.r.y)), 1.0);return _4049.xyz * (1.0 / _4049.w);float _2243;vec3 _3278 = sampleSunAreaLight(frameUniforms.p);float _3285 = clamp(dot(shading_normal, _3278), 0.0, 1.0);if (_3285 > 0.0)bvec4 _3302 = 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 _3312 = clamp(uint(dot(vec4(_3302.x ? vec4(1.0).x : vec4(0.0).x, _3302.y ? vec4(1.0).y : vec4(0.0).y, _3302.z ? vec4(1.0).z : vec4(0.0).z, _3302.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u);float _4384;if (((frameUniforms.fz & 1u) != 0u) && ((frameUniforms.rz & ((1u << _3312) << 8u)) != 0u))uint param = _3312;vec3 _2215 = getCascadeLightSpacePosition(param);vec2 _3345 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);vec2 _3380 = vec2(1.0) / _3345;vec2 _3390 = (clamp(_2215.xy, vec2(-1.0), vec2(2.0)).xy * _3345) + vec2(0.5);vec2 _3396 = (floor(_3390) - vec2(0.5)) * _3380;vec2 _3398 = fract(_3390);float _3400 = _3398.x;float _3401 = 2.0 * _3400;float _3402 = 3.0 - _3401;float _3406 = 1.0 + _3401;float _3409 = _3398.y;float _3410 = 2.0 * _3409;float _3411 = 3.0 - _3410;float _3415 = 1.0 + _3410;vec2 _3448 = vec2(((2.0 - _3400) / _3402) - 1.0, (_3400 / _3406) + 1.0) * _3380.x;vec2 _3452 = vec2(((2.0 - _3409) / _3411) - 1.0, (_3409 / _3415) + 1.0) * _3380.y;float _3466 = _3448.x;float _3468 = _3452.x;float _3543 = float(_3312);float _3545 = clamp(_2215.z, 0.0, 1.0);float _3483 = _3448.y;float _3502 = _3452.y;_4384 = (((((_3402 * _3411) * texture(light_shadowMap, vec4(vec4(_3396 + vec2(_3466, _3468), _3543, _3545).xyz, _3545))) + ((_3406 * _3411) * texture(light_shadowMap, vec4(vec4(_3396 + vec2(_3483, _3468), _3543, _3545).xyz, _3545)))) + ((_3402 * _3415) * texture(light_shadowMap, vec4(vec4(_3396 + vec2(_3466, _3502), _3543, _3545).xyz, _3545)))) + ((_3406 * _3415) * texture(light_shadowMap, vec4(vec4(_3396 + vec2(_3483, _3502), _3543, _3545).xyz, _3545)))) * 0.0625;_4384 = 1.0;float _4392;if (((frameUniforms.fz & 2u) != 0u) && (_4384 > 0.0))uint _3616 = (frameUniforms.fz >> 8u) & 255u;vec4 _3726 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _3733 = frameUniforms.e * vec4(shading_position + (_3278 * frameUniforms.hz), 1.0);vec4 _3739 = _3726 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0));vec3 _3745 = _3726.xyz * (1.0 / _3726.w);vec3 _3770 = (_3745 * 0.5) + vec3(0.5);vec3 _3775 = (((_3733.xyz * (1.0 / _3733.w)) * 0.5) + vec3(0.5)) - _3770;float _3626 = 1.0 / float(_3616);float _3635 = (abs((_3739.xyz * (1.0 / _3739.w)).z - _3745.z) * _3626) * 0.5;float _3647 = (_3626 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _3626;vec3 _4388;_4388 = _4383;vec3 _3660;uint _4385 = 0u;float _4386 = _3647;if (_4385 < _3616)_3660 = _3770 + (_3775 * _4386);if (abs(_3635 - (_3660.z - (1.0 - textureLod(light_structure, _3660.xy, 0.0).x))) < _3635)_4387 = _3660;_4386 += _3626;_4385++;_4388 = _3660;_4387 = _4388;vec2 _3696 = max((abs(_4387.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_4394 = _4390 * clamp(1.0 - dot(_3696, _3696), 0.0, 1.0);_4394 = 0.0;_4392 = _4394;_4392 = 0.0;_2243 = _4384 * (1.0 - _4392);vec3 _3808 = normalize(shading_view + _3278);float _3811 = clamp(_3285, 0.0, 1.0);float _3815 = clamp(dot(shading_normal, _3808), 0.0, 1.0);float _3903 = _3815 * pixel.roughness;float _3910 = pixel.roughness / ((1.0 - (_3815 * _3815)) + (_3903 * _3903));float _3933 = pixel.roughness * pixel.roughness;float _3980 = 1.0 - clamp(dot(_3278, _3808), 0.0, 1.0);float _3989 = _3980 * _3980;color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_3989 * _3989) * _3980))) * (((_3910 * _3910) * 0.3183098733425140380859375) * (0.5 / ((_3811 * sqrt(((shading_NoV - (_3933 * shading_NoV)) * shading_NoV) + _3933)) + (shading_NoV * sqrt(((_3811 - (_3933 * _3811)) * _3811) + _3933)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _3811) * _2243));vec3 _4345;vec3 _4344;_4344 = vertex_worldNormal;_4344 = -vertex_worldNormal;_4345 = _4344;_4345 = vertex_worldNormal;shading_normal = normalize(_4345);vec3 _2601 = variable_colorFromSh.xyz * 1.0;vec4 _2672 = textureLod(light_iblDFG, vec2(shading_NoV, 1.0), 0.0);vec3 _2657 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2672.y) - 1.0));float _2708 = min(1.0, evaluateSSAO());float _2801 = clamp((pow(shading_NoV + _2708, 7.62939453125e-06) - 1.0) + _2708, 0.0, 1.0);vec3 _2809 = mix(_2672.xxx, _2672.yyy, vec3(0.039999999105930328369140625));vec3 _2522 = (((((_2601 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _2809)) * 1.0) * max(vec3(_2708), ((((((_2601 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2708) + ((_2601 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2708) + ((_2601 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2708)) + (((_2809 * textureLod(light_iblSpecular, shading_normal, frameUniforms.cz).xyz) * (_2657 * 1.0)) * max(vec3(_2801), ((((vec3(-0.250783979892730712890625) * _2801) + vec3(0.449896037578582763671875)) * _2801) + vec3(0.800507962703704833984375)) * _2801))) * frameUniforms.x;evaluateDirectionalLight(MaterialInputs(vec4(variable_colorFromSh.x, variable_colorFromSh.y, variable_colorFromSh.z, vec4(0.0, 0.0, 0.0, 1.0).w), 1.0, 0.0, 0.5, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _4347, _4350, _4350, _4350, _4350, _4347), PixelParams(_2601, 1.0, 1.0, vec3(0.039999999105930328369140625), 1.0, _2672.xyz, _2657), _2522);fragColor = vec4(_2522, 1.0);bvec4 _2947 = 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(_2947.x ? vec4(1.0).x : vec4(0.0).x, _2947.y ? vec4(1.0).y : vec4(0.0).y, _2947.z ? vec4(1.0).z : vec4(0.0).z, _2947.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u);vec3 _2396 = fragColor.xyz * uintToColorDebug(param);fragColor = vec4(_2396.x, _2396.y, _2396.z, fragColor.w);vec3 _2402 = shading_position - frameUniforms.j;vec4 _4378;float _3012 = length(_2402);float _3015 = max(0.001000000047497451305389404296875, _2402.y);float _3025 = frameUniforms.nz * ((1.0 - exp((-frameUniforms.lz) * _3015)) / _3015);float _3041 = min(max(1.0 - exp2(-(_3025 * max(_3012 - frameUniforms.iz, 0.0))), 0.0), frameUniforms.jz);vec3 _4374;_4374 = frameUniforms.mz * (textureLod(light_iblSpecular, _2402, frameUniforms.cz).xyz * frameUniforms.x);_4374 = frameUniforms.mz;vec3 _3063 = _4374 * _3041;vec3 _4377;_4377 = _3063 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_2402, frameUniforms.p) / _3012, 0.0), frameUniforms.pz) * max(1.0 - exp2(-(_3025 * max(_3012 - frameUniforms.oz, 0.0))), 0.0)));_4377 = _3063;vec3 _3111 = (fragColor.xyz * (1.0 - _3041)) + _4377;_4378 = vec4(_3111.x, _3111.y, _3111.z, fragColor.w);_4378 = fragColor;fragColor = _4378;vec3 _4627;uint _4671;bool _4680;vec4 _4760;vec4 _4788;float _4789;vec2 _1462 = vec3(shading_normalizedViewportCoord, _4789).xy;vec4 _1483 = textureGather(light_ssao, _1462, 1);vec4 _1487 = textureGather(light_ssao, _1462, 2);vec2 _1494 = fract((_1462 * vec2(textureSize(light_ssao, 0))) - vec2(0.5));float _1497 = _1494.x;float _1498 = 1.0 - _1497;float _1500 = _1494.y;vec4 _4577 = _4760;_4577.x = _1498 * _1500;vec4 _4581 = _4577;_4581.y = _1497 * _1500;float _1513 = 1.0 - _1500;vec4 _4585 = _4581;_4585.z = _1497 * _1513;vec4 _4589 = _4585;_4589.w = _1498 * _1513;vec4 _4595 = _4760;_4595.x = (_1483.x * 0.996108949184417724609375) + (_1487.x * 0.00389105058275163173675537109375);vec4 _4601 = _4595;_4601.y = (_1483.y * 0.996108949184417724609375) + (_1487.y * 0.00389105058275163173675537109375);vec4 _4607 = _4601;_4607.z = (_1483.z * 0.996108949184417724609375) + (_1487.z * 0.00389105058275163173675537109375);vec4 _4613 = _4607;_4613.w = (_1483.w * 0.996108949184417724609375) + (_1487.w * 0.00389105058275163173675537109375);vec4 _1585 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_4613 * (-frameUniforms.dz))) * frameUniforms.sz;vec4 _1595 = max(vec4(6.103515625e-05), vec4(1.0) - (_1585 * _1585)) * _4589;return dot(textureGather(light_ssao, _1462), _1595) * (1.0 / (((_1595.x + _1595.y) + _1595.z) + _1595.w));return textureLod(light_ssao, _1462, 0.0).x;ivec2 _1794 = textureSize(light_iblSpecular, int(frameUniforms.cz));vec3 _1809 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _1816 = _1809 * (1.0 / float(_1794.x));vec3 _1820 = cross(_1809, n) * (1.0 / float(_1794.y));vec3 _1823 = n - _1816;vec3 _1828 = n + _1816;return (((textureLod(light_iblSpecular, _1823 - _1820, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1828 - _1820, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1828 + _1820, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1823 + _1820, frameUniforms.cz).xyz) * 0.25;vec3 _4625;vec3 _4624;_4624 = vertex_worldNormal;_4624 = -vertex_worldNormal;_4625 = _4624;_4625 = vertex_worldNormal;vec3 _2527 = normalize(_4625);vec3 _2533 = normalize(frameUniforms.j - shading_position);float _2589 = max(dot(_2527, _2533), 9.9999997473787516355514526367188e-05);vec3 _2682 = variable_colorFromSh.xyz * 1.0;vec4 _2753 = textureLod(light_iblDFG, vec2(_2589, 1.0), 0.0);vec3 _2738 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2753.y) - 1.0));float _2789 = min(1.0, evaluateSSAO());float _2882 = clamp((pow(_2589 + _2789, 7.62939453125e-06) - 1.0) + _2789, 0.0, 1.0);vec3 _2890 = mix(_2753.xxx, _2753.yyy, vec3(0.039999999105930328369140625));float _3091 = 1.0 - gl_FragCoord.z;uvec2 _3130 = uvec2((vec3(shading_normalizedViewportCoord, _3091).xy * frameUniforms.i.xy) * vec2(frameUniforms.w, frameUniforms.s));uint _3115 = ((_3130.x * frameUniforms.q) + (_3130.y * frameUniforms.u.x)) + (uint(max(0.0, (log2((frameUniforms.t.x * _3091) + frameUniforms.t.y) * frameUniforms.t.z) + frameUniforms.t.w)) * frameUniforms.u.y);uvec4 _3162 = texelFetch(light_froxels, ivec2(int(_3115 & 63u), int(_3115 >> 6u)), 0);uint _3165 = _3162.x;uint _3030 = _3165 + (_3162.y & 255u);vec3 _4658;vec3 _4694;_4694 = _4627;_4658 = (((((_2682 * diffuseIrradiance(_2527)) * (vec3(1.0) - _2890)) * 1.0) * max(vec3(_2789), ((((((_2682 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2789) + ((_2682 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2789) + ((_2682 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2789)) + (((_2890 * textureLod(light_iblSpecular, _2527, frameUniforms.cz).xyz) * (_2738 * 1.0)) * max(vec3(_2882), ((((vec3(-0.250783979892730712890625) * _2882) + vec3(0.449896037578582763671875)) * _2882) + vec3(0.800507962703704833984375)) * _2882))) * frameUniforms.x;uint _4668;uint _4673;bool _4677;bool _4682;vec3 _4719;vec3 _4757;uint _4669;uint _4674;bool _4678;bool _4683;for (uint _4657 = _3165; _4657 < _3030; _4694 = _4757, _4683 = _4682, _4678 = _4677, _4674 = _4673, _4669 = _4668, _4658 = _4719, _4657++)uvec4 _3200 = texelFetch(light_records, ivec2(int(_4657 & 31u), int(_4657 >> 5u)), 0);uint _3201 = _3200.x;vec3 _3218 = lightsUniforms.a[_3201][0].xyz - vertex_worldPosition;float _3298 = lightsUniforms.a[_3201][1].w * frameUniforms.y;vec4 _4531 = vec4(lightsUniforms.a[_3201][1].x, lightsUniforms.a[_3201][1].y, lightsUniforms.a[_3201][1].z, _4788.w);_4531.w = _3298;vec3 _3231 = normalize(_3218);float _3305 = dot(_3218, _3218);float _3320 = _3305 * lightsUniforms.a[_3201][0].w;float _3325 = clamp(1.0 - (_3320 * _3320), 0.0, 1.0);float _3313 = (_3325 * _3325) / max(_3305, 9.9999997473787516355514526367188e-05);float _3242 = clamp(dot(_2527, _3231), 0.0, 1.0);float _4686;if (floatBitsToUint(lightsUniforms.a[_3201][3].w) == 1u)float _3339 = clamp((dot(-lightsUniforms.a[_3201][2].xyz, _3231) * lightsUniforms.a[_3201][3].x) + lightsUniforms.a[_3201][3].y, 0.0, 1.0);uint _3267 = floatBitsToUint(lightsUniforms.a[_3201][3].z);_4686 = _3313 * (_3339 * _3339);_4682 = (_3267 & 1u) != 0u;_4677 = ((_3267 >> 1u) & 1u) != 0u;_4673 = (_3267 >> 2u) & 15u;_4668 = (_3267 >> 6u) & 15u;_4686 = _3313;_4682 = _4683;_4677 = _4678;_4673 = _4674;_4668 = _4669;float _4701;if (_3242 > 0.0)float _4687;if (_4682)vec3 _3354 = vertex_spotLightSpacePosition[_4673].xyz * (1.0 / vertex_spotLightSpacePosition[_4673].w);vec2 _3365 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);vec2 _3400 = vec2(1.0) / _3365;vec2 _3410 = (clamp(_3354.xy, vec2(-1.0), vec2(2.0)).xy * _3365) + vec2(0.5);vec2 _3416 = (floor(_3410) - vec2(0.5)) * _3400;vec2 _3418 = fract(_3410);float _3420 = _3418.x;float _3421 = 2.0 * _3420;float _3422 = 3.0 - _3421;float _3426 = 1.0 + _3421;float _3429 = _3418.y;float _3430 = 2.0 * _3429;float _3431 = 3.0 - _3430;float _3435 = 1.0 + _3430;vec2 _3468 = vec2(((2.0 - _3420) / _3422) - 1.0, (_3420 / _3426) + 1.0) * _3400.x;vec2 _3472 = vec2(((2.0 - _3429) / _3431) - 1.0, (_3429 / _3435) + 1.0) * _3400.y;float _3486 = _3468.x;float _3488 = _3472.x;float _3563 = float(_4668);float _3565 = clamp(_3354.z, 0.0, 1.0);float _3503 = _3468.y;float _3522 = _3472.y;_4687 = (((((_3422 * _3431) * texture(light_shadowMap, vec4(vec4(_3416 + vec2(_3486, _3488), _3563, _3565).xyz, _3565))) + ((_3426 * _3431) * texture(light_shadowMap, vec4(vec4(_3416 + vec2(_3503, _3488), _3563, _3565).xyz, _3565)))) + ((_3422 * _3435) * texture(light_shadowMap, vec4(vec4(_3416 + vec2(_3486, _3522), _3563, _3565).xyz, _3565)))) + ((_3426 * _3435) * texture(light_shadowMap, vec4(vec4(_3416 + vec2(_3503, _3522), _3563, _3565).xyz, _3565)))) * 0.0625;_4687 = 1.0;float _4702;vec3 _4758;if (_4677 && (_4687 > 0.0))float _4703;vec3 _4759;uint _3636 = (frameUniforms.fz >> 8u) & 255u;vec4 _3746 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _3753 = frameUniforms.e * vec4(shading_position + (_3231 * frameUniforms.hz), 1.0);vec4 _3759 = _3746 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0));vec3 _3765 = _3746.xyz * (1.0 / _3746.w);vec3 _3790 = (_3765 * 0.5) + vec3(0.5);vec3 _3795 = (((_3753.xyz * (1.0 / _3753.w)) * 0.5) + vec3(0.5)) - _3790;float _3646 = 1.0 / float(_3636);float _3655 = (abs((_3759.xyz * (1.0 / _3759.w)).z - _3765.z) * _3646) * 0.5;float _3667 = (_3646 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _3646;vec3 _4691;_4691 = _4694;vec3 _3680;vec3 _4690;float _4697;uint _4688 = 0u;float _4689 = _3667;if (_4688 < _3636)_3680 = _3790 + (_3795 * _4689);if (abs(_3655 - (_3680.z - (1.0 - textureLod(light_structure, _3680.xy, 0.0).x))) < _3655)_4697 = 1.0;_4690 = _3680;_4689 += _3646;_4688++;_4691 = _3680;_4697 = 0.0;_4690 = _4691;vec2 _3716 = max((abs(_4690.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_4759 = _4690;_4703 = _4687 * (1.0 - (_4697 * clamp(1.0 - dot(_3716, _3716), 0.0, 1.0)));_4759 = _4694;_4703 = _4687;_4758 = _4759;_4702 = _4703;_4758 = _4694;_4702 = _4687;_4757 = _4758;_4701 = _4702;_4757 = _4694;_4701 = 1.0;if (_3242 <= 0.0)_4719 = _4658;vec3 _3828 = normalize(_2533 + _3231);float _3831 = clamp(_3242, 0.0, 1.0);float _3835 = clamp(dot(_2527, _3828), 0.0, 1.0);float _3980 = (_3831 * sqrt(((_2589 - _2589) * _2589) + 1.0)) + (_2589 * sqrt(((_3831 - _3831) * _3831) + 1.0));float _4000 = 1.0 - clamp(dot(_3231, _3828), 0.0, 1.0);float _4009 = _4000 * _4000;_4719 = _4658 + ((((_2682 * 0.3183098733425140380859375) + (((vec3(0.039999999105930328369140625) + (vec3(0.959999978542327880859375) * ((_4009 * _4009) * _4000))) * (0.15915493667125701904296875 / _3980)) * _2738)) * _4531.xyz) * (((_3298 * _4686) * _3831) * _4701));fragColor = vec4(_4658, 1.0);vec3 _2493 = shading_position - frameUniforms.j;vec4 _4663;float _4068 = length(_2493);float _4071 = max(0.001000000047497451305389404296875, _2493.y);float _4081 = frameUniforms.nz * ((1.0 - exp((-frameUniforms.lz) * _4071)) / _4071);float _4097 = min(max(1.0 - exp2(-(_4081 * max(_4068 - frameUniforms.iz, 0.0))), 0.0), frameUniforms.jz);vec3 _4659;_4659 = frameUniforms.mz * (textureLod(light_iblSpecular, _2493, frameUniforms.cz).xyz * frameUniforms.x);_4659 = frameUniforms.mz;vec3 _4119 = _4659 * _4097;vec3 _4662;_4662 = _4119 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_2493, frameUniforms.p) / _4068, 0.0), frameUniforms.pz) * max(1.0 - exp2(-(_4081 * max(_4068 - frameUniforms.oz, 0.0))), 0.0)));_4662 = _4119;vec3 _4167 = (fragColor.xyz * (1.0 - _4097)) + _4662;_4663 = vec4(_4167.x, _4167.y, _4167.z, fragColor.w);_4663 = fragColor;fragColor = _4663;vec3 _5896;float _5899;uint _5940;bool _5949;vec4 _6029;vec3 _6033;vec4 _6078;float _6079;vec3 _583;vec2 _1650 = vec3(shading_normalizedViewportCoord, _6079).xy;vec4 _1671 = textureGather(light_ssao, _1650, 1);vec4 _1675 = textureGather(light_ssao, _1650, 2);vec2 _1682 = fract((_1650 * vec2(textureSize(light_ssao, 0))) - vec2(0.5));float _1685 = _1682.x;float _1686 = 1.0 - _1685;float _1688 = _1682.y;vec4 _5808 = _6029;_5808.x = _1686 * _1688;vec4 _5812 = _5808;_5812.y = _1685 * _1688;float _1701 = 1.0 - _1688;vec4 _5816 = _5812;_5816.z = _1685 * _1701;vec4 _5820 = _5816;_5820.w = _1686 * _1701;vec4 _5826 = _6029;_5826.x = (_1671.x * 0.996108949184417724609375) + (_1675.x * 0.00389105058275163173675537109375);vec4 _5832 = _5826;_5832.y = (_1671.y * 0.996108949184417724609375) + (_1675.y * 0.00389105058275163173675537109375);vec4 _5838 = _5832;_5838.z = (_1671.z * 0.996108949184417724609375) + (_1675.z * 0.00389105058275163173675537109375);vec4 _5844 = _5838;_5844.w = (_1671.w * 0.996108949184417724609375) + (_1675.w * 0.00389105058275163173675537109375);vec4 _1773 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_5844 * (-frameUniforms.dz))) * frameUniforms.sz;vec4 _1783 = max(vec4(6.103515625e-05), vec4(1.0) - (_1773 * _1773)) * _5820;return dot(textureGather(light_ssao, _1650), _1783) * (1.0 / (((_1783.x + _1783.y) + _1783.z) + _1783.w));return textureLod(light_ssao, _1650, 0.0).x;ivec2 _1981 = textureSize(light_iblSpecular, int(frameUniforms.cz));vec3 _1995 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _2002 = _1995 * (1.0 / float(_1981.x));vec3 _2006 = cross(_1995, n) * (1.0 / float(_1981.y));vec3 _2009 = n - _2002;vec3 _2014 = n + _2002;return (((textureLod(light_iblSpecular, _2009 - _2006, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _2014 - _2006, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _2014 + _2006, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _2009 + _2006, frameUniforms.cz).xyz) * 0.25;float _2202 = dot(lightDirection, shading_reflected);vec3 _6030;if (_2202 < frameUniforms.m.x)_6030 = normalize((lightDirection * frameUniforms.m.x) + (normalize(shading_reflected - (lightDirection * _2202)) * frameUniforms.m.y));_6030 = shading_reflected;return _6030;float _5471 = clamp(dot(shading_normal, frameUniforms.p), 0.0, 1.0);vec4 _5486 = frameUniforms.g[cascade] * vec4(shading_position + (shading_normal * (sqrt(1.0 - (_5471 * _5471)) * frameUniforms.r.y)), 1.0);return _5486.xyz * (1.0 / _5486.w);float _2315;vec3 _4715 = sampleSunAreaLight(frameUniforms.p);float _4722 = clamp(dot(shading_normal, _4715), 0.0, 1.0);if (_4722 > 0.0)bvec4 _4739 = 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 _4749 = clamp(uint(dot(vec4(_4739.x ? vec4(1.0).x : vec4(0.0).x, _4739.y ? vec4(1.0).y : vec4(0.0).y, _4739.z ? vec4(1.0).z : vec4(0.0).z, _4739.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u);float _6034;if (((frameUniforms.fz & 1u) != 0u) && ((frameUniforms.rz & ((1u << _4749) << 8u)) != 0u))uint param = _4749;vec3 _2287 = getCascadeLightSpacePosition(param);vec2 _4782 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);vec2 _4817 = vec2(1.0) / _4782;vec2 _4827 = (clamp(_2287.xy, vec2(-1.0), vec2(2.0)).xy * _4782) + vec2(0.5);vec2 _4833 = (floor(_4827) - vec2(0.5)) * _4817;vec2 _4835 = fract(_4827);float _4837 = _4835.x;float _4838 = 2.0 * _4837;float _4839 = 3.0 - _4838;float _4843 = 1.0 + _4838;float _4846 = _4835.y;float _4847 = 2.0 * _4846;float _4848 = 3.0 - _4847;float _4852 = 1.0 + _4847;vec2 _4885 = vec2(((2.0 - _4837) / _4839) - 1.0, (_4837 / _4843) + 1.0) * _4817.x;vec2 _4889 = vec2(((2.0 - _4846) / _4848) - 1.0, (_4846 / _4852) + 1.0) * _4817.y;float _4903 = _4885.x;float _4905 = _4889.x;float _4980 = float(_4749);float _4982 = clamp(_2287.z, 0.0, 1.0);float _4920 = _4885.y;float _4939 = _4889.y;_6034 = (((((_4839 * _4848) * texture(light_shadowMap, vec4(vec4(_4833 + vec2(_4903, _4905), _4980, _4982).xyz, _4982))) + ((_4843 * _4848) * texture(light_shadowMap, vec4(vec4(_4833 + vec2(_4920, _4905), _4980, _4982).xyz, _4982)))) + ((_4839 * _4852) * texture(light_shadowMap, vec4(vec4(_4833 + vec2(_4903, _4939), _4980, _4982).xyz, _4982)))) + ((_4843 * _4852) * texture(light_shadowMap, vec4(vec4(_4833 + vec2(_4920, _4939), _4980, _4982).xyz, _4982)))) * 0.0625;_6034 = 1.0;float _6042;if (((frameUniforms.fz & 2u) != 0u) && (_6034 > 0.0))float _6044;uint _5053 = (frameUniforms.fz >> 8u) & 255u;vec4 _5163 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _5170 = frameUniforms.e * vec4(shading_position + (_4715 * frameUniforms.hz), 1.0);vec4 _5176 = _5163 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0));vec3 _5182 = _5163.xyz * (1.0 / _5163.w);vec3 _5207 = (_5182 * 0.5) + vec3(0.5);vec3 _5212 = (((_5170.xyz * (1.0 / _5170.w)) * 0.5) + vec3(0.5)) - _5207;float _5063 = 1.0 / float(_5053);float _5072 = (abs((_5176.xyz * (1.0 / _5176.w)).z - _5182.z) * _5063) * 0.5;float _5084 = (_5063 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _5063;vec3 _6038;_6038 = _6033;vec3 _5097;vec3 _6037;float _6040;uint _6035 = 0u;float _6036 = _5084;if (_6035 < _5053)_5097 = _5207 + (_5212 * _6036);if (abs(_5072 - (_5097.z - (1.0 - textureLod(light_structure, _5097.xy, 0.0).x))) < _5072)_6040 = 1.0;_6037 = _5097;_6036 += _5063;_6035++;_6038 = _5097;_6040 = 0.0;_6037 = _6038;vec2 _5133 = max((abs(_6037.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_6044 = _6040 * clamp(1.0 - dot(_5133, _5133), 0.0, 1.0);_6044 = 0.0;_6042 = _6044;_6042 = 0.0;_2315 = _6034 * (1.0 - _6042);vec3 _5245 = normalize(shading_view + _4715);float _5248 = clamp(_4722, 0.0, 1.0);float _5252 = clamp(dot(shading_normal, _5245), 0.0, 1.0);float _5340 = _5252 * pixel.roughness;float _5347 = pixel.roughness / ((1.0 - (_5252 * _5252)) + (_5340 * _5340));float _5370 = pixel.roughness * pixel.roughness;float _5417 = 1.0 - clamp(dot(_4715, _5245), 0.0, 1.0);float _5426 = _5417 * _5417;color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_5426 * _5426) * _5417))) * (((_5347 * _5347) * 0.3183098733425140380859375) * (0.5 / ((_5248 * sqrt(((shading_NoV - (_5370 * shading_NoV)) * shading_NoV) + _5370)) + (shading_NoV * sqrt(((_5248 - (_5370 * _5248)) * _5248) + _5370)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _5248) * _2315));vec3 _5894;vec3 _5893;_5893 = vertex_worldNormal;_5893 = -vertex_worldNormal;_5894 = _5893;_5894 = vertex_worldNormal;shading_normal = normalize(_5894);vec3 _3016 = variable_colorFromSh.xyz * 1.0;vec4 _3087 = textureLod(light_iblDFG, vec2(shading_NoV, 1.0), 0.0);vec3 _3072 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _3087.y) - 1.0));float _3123 = min(1.0, evaluateSSAO());float _3216 = clamp((pow(shading_NoV + _3123, 7.62939453125e-06) - 1.0) + _3123, 0.0, 1.0);vec3 _3224 = mix(_3087.xxx, _3087.yyy, vec3(0.039999999105930328369140625));vec3 _2932 = (((((_3016 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _3224)) * 1.0) * max(vec3(_3123), ((((((_3016 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _3123) + ((_3016 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _3123) + ((_3016 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _3123)) + (((_3224 * textureLod(light_iblSpecular, shading_normal, frameUniforms.cz).xyz) * (_3072 * 1.0)) * max(vec3(_3216), ((((vec3(-0.250783979892730712890625) * _3216) + vec3(0.449896037578582763671875)) * _3216) + vec3(0.800507962703704833984375)) * _3216))) * frameUniforms.x;evaluateDirectionalLight(MaterialInputs(vec4(variable_colorFromSh.x, variable_colorFromSh.y, variable_colorFromSh.z, vec4(0.0, 0.0, 0.0, 1.0).w), 1.0, 0.0, 0.5, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _5896, _5899, _5899, _5899, _5899, _5896), PixelParams(_3016, 1.0, 1.0, vec3(0.039999999105930328369140625), 1.0, _3087.xyz, _3072), _2932);float _3425 = 1.0 - gl_FragCoord.z;uvec2 _3464 = uvec2((vec3(shading_normalizedViewportCoord, _3425).xy * frameUniforms.i.xy) * vec2(frameUniforms.w, frameUniforms.s));uint _3449 = ((_3464.x * frameUniforms.q) + (_3464.y * frameUniforms.u.x)) + (uint(max(0.0, (log2((frameUniforms.t.x * _3425) + frameUniforms.t.y) * frameUniforms.t.z) + frameUniforms.t.w)) * frameUniforms.u.y);uvec4 _3496 = texelFetch(light_froxels, ivec2(int(_3449 & 63u), int(_3449 >> 6u)), 0);uint _3499 = _3496.x;uint _3364 = _3499 + (_3496.y & 255u);vec3 _5927;vec3 _5963;_5963 = _5896;_5927 = _2932;uint _5937;uint _5942;bool _5946;bool _5951;vec3 _5988;vec3 _6026;uint _5938;uint _5943;bool _5947;bool _5952;for (uint _5926 = _3499; _5926 < _3364; _5963 = _6026, _5952 = _5951, _5947 = _5946, _5943 = _5942, _5938 = _5937, _5927 = _5988, _5926++)uvec4 _3534 = texelFetch(light_records, ivec2(int(_5926 & 31u), int(_5926 >> 5u)), 0);uint _3535 = _3534.x;vec3 _3552 = lightsUniforms.a[_3535][0].xyz - vertex_worldPosition;float _3632 = lightsUniforms.a[_3535][1].w * frameUniforms.y;vec4 _5760 = vec4(lightsUniforms.a[_3535][1].x, lightsUniforms.a[_3535][1].y, lightsUniforms.a[_3535][1].z, _6078.w);_5760.w = _3632;vec3 _3565 = normalize(_3552);float _3639 = dot(_3552, _3552);float _3654 = _3639 * lightsUniforms.a[_3535][0].w;float _3659 = clamp(1.0 - (_3654 * _3654), 0.0, 1.0);float _3647 = (_3659 * _3659) / max(_3639, 9.9999997473787516355514526367188e-05);float _3576 = clamp(dot(shading_normal, _3565), 0.0, 1.0);float _5955;if (floatBitsToUint(lightsUniforms.a[_3535][3].w) == 1u)float _3673 = clamp((dot(-lightsUniforms.a[_3535][2].xyz, _3565) * lightsUniforms.a[_3535][3].x) + lightsUniforms.a[_3535][3].y, 0.0, 1.0);uint _3601 = floatBitsToUint(lightsUniforms.a[_3535][3].z);_5955 = _3647 * (_3673 * _3673);_5951 = (_3601 & 1u) != 0u;_5946 = ((_3601 >> 1u) & 1u) != 0u;_5942 = (_3601 >> 2u) & 15u;_5937 = (_3601 >> 6u) & 15u;_5955 = _3647;_5951 = _5952;_5946 = _5947;_5942 = _5943;_5937 = _5938;float _5970;if (_3576 > 0.0)float _5956;if (_5951)vec3 _3688 = vertex_spotLightSpacePosition[_5942].xyz * (1.0 / vertex_spotLightSpacePosition[_5942].w);vec2 _3699 = vec2(vec3(textureSize(light_shadowMap, 0)).xy);vec2 _3734 = vec2(1.0) / _3699;vec2 _3744 = (clamp(_3688.xy, vec2(-1.0), vec2(2.0)).xy * _3699) + vec2(0.5);vec2 _3750 = (floor(_3744) - vec2(0.5)) * _3734;vec2 _3752 = fract(_3744);float _3754 = _3752.x;float _3755 = 2.0 * _3754;float _3756 = 3.0 - _3755;float _3760 = 1.0 + _3755;float _3763 = _3752.y;float _3764 = 2.0 * _3763;float _3765 = 3.0 - _3764;float _3769 = 1.0 + _3764;vec2 _3802 = vec2(((2.0 - _3754) / _3756) - 1.0, (_3754 / _3760) + 1.0) * _3734.x;vec2 _3806 = vec2(((2.0 - _3763) / _3765) - 1.0, (_3763 / _3769) + 1.0) * _3734.y;float _3820 = _3802.x;float _3822 = _3806.x;float _3897 = float(_5937);float _3899 = clamp(_3688.z, 0.0, 1.0);float _3837 = _3802.y;float _3856 = _3806.y;_5956 = (((((_3756 * _3765) * texture(light_shadowMap, vec4(vec4(_3750 + vec2(_3820, _3822), _3897, _3899).xyz, _3899))) + ((_3760 * _3765) * texture(light_shadowMap, vec4(vec4(_3750 + vec2(_3837, _3822), _3897, _3899).xyz, _3899)))) + ((_3756 * _3769) * texture(light_shadowMap, vec4(vec4(_3750 + vec2(_3820, _3856), _3897, _3899).xyz, _3899)))) + ((_3760 * _3769) * texture(light_shadowMap, vec4(vec4(_3750 + vec2(_3837, _3856), _3897, _3899).xyz, _3899)))) * 0.0625;_5956 = 1.0;float _5971;vec3 _6027;if (_5946 && (_5956 > 0.0))float _5972;vec3 _6028;uint _3970 = (frameUniforms.fz >> 8u) & 255u;vec4 _4080 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _4087 = frameUniforms.e * vec4(shading_position + (_3565 * frameUniforms.hz), 1.0);vec4 _4093 = _4080 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0));vec3 _4099 = _4080.xyz * (1.0 / _4080.w);vec3 _4124 = (_4099 * 0.5) + vec3(0.5);vec3 _4129 = (((_4087.xyz * (1.0 / _4087.w)) * 0.5) + vec3(0.5)) - _4124;float _3980 = 1.0 / float(_3970);float _3989 = (abs((_4093.xyz * (1.0 / _4093.w)).z - _4099.z) * _3980) * 0.5;float _4001 = (_3980 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _3980;vec3 _5960;_5960 = _5963;vec3 _4014;vec3 _5959;float _5966;uint _5957 = 0u;float _5958 = _4001;if (_5957 < _3970)_4014 = _4124 + (_4129 * _5958);if (abs(_3989 - (_4014.z - (1.0 - textureLod(light_structure, _4014.xy, 0.0).x))) < _3989)_5966 = 1.0;_5959 = _4014;_5958 += _3980;_5957++;_5960 = _4014;_5966 = 0.0;_5959 = _5960;vec2 _4050 = max((abs(_5959.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_6028 = _5959;_5972 = _5956 * (1.0 - (_5966 * clamp(1.0 - dot(_4050, _4050), 0.0, 1.0)));_6028 = _5963;_5972 = _5956;_6027 = _6028;_5971 = _5972;_6027 = _5963;_5971 = _5956;_6026 = _6027;_5970 = _5971;_6026 = _5963;_5970 = 1.0;if (_3576 <= 0.0)_5988 = _5927;vec3 _4162 = normalize(shading_view + _3565);float _4165 = clamp(_3576, 0.0, 1.0);float _4169 = clamp(dot(shading_normal, _4162), 0.0, 1.0);float _4314 = (_4165 * sqrt(((shading_NoV - shading_NoV) * shading_NoV) + 1.0)) + (shading_NoV * sqrt(((_4165 - _4165) * _4165) + 1.0));float _4334 = 1.0 - clamp(dot(_3565, _4162), 0.0, 1.0);float _4343 = _4334 * _4334;_5988 = _5927 + ((((_3016 * 0.3183098733425140380859375) + (((vec3(0.039999999105930328369140625) + (vec3(0.959999978542327880859375) * ((_4343 * _4343) * _4334))) * (0.15915493667125701904296875 / _4314)) * _3072)) * _5760.xyz) * (((_3632 * _5955) * _4165) * _5970));fragColor = vec4(_5927, 1.0);bvec4 _4384 = 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(_4384.x ? vec4(1.0).x : vec4(0.0).x, _4384.y ? vec4(1.0).y : vec4(0.0).y, _4384.z ? vec4(1.0).z : vec4(0.0).z, _4384.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u);vec3 _2816 = fragColor.xyz * uintToColorDebug(param);fragColor = vec4(_2816.x, _2816.y, _2816.z, fragColor.w);vec3 _2822 = shading_position - frameUniforms.j;vec4 _5932;float _4449 = length(_2822);float _4452 = max(0.001000000047497451305389404296875, _2822.y);float _4462 = frameUniforms.nz * ((1.0 - exp((-frameUniforms.lz) * _4452)) / _4452);float _4478 = min(max(1.0 - exp2(-(_4462 * max(_4449 - frameUniforms.iz, 0.0))), 0.0), frameUniforms.jz);vec3 _5928;_5928 = frameUniforms.mz * (textureLod(light_iblSpecular, _2822, frameUniforms.cz).xyz * frameUniforms.x);_5928 = frameUniforms.mz;vec3 _4500 = _5928 * _4478;vec3 _5931;_5931 = _4500 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_2822, frameUniforms.p) / _4449, 0.0), frameUniforms.pz) * max(1.0 - exp2(-(_4462 * max(_4449 - frameUniforms.oz, 0.0))), 0.0)));_5931 = _4500;vec3 _4548 = (fragColor.xyz * (1.0 - _4478)) + _5931;_5932 = vec4(_4548.x, _4548.y, _4548.z, fragColor.w);_5932 = fragColor;fragColor = _5932;uniform sampler2DArray light_shadowMap;vec3 _3656;float _3659;vec4 _3683;vec3 _3687;float _3732;vec3 _510;vec2 _1253 = vec3(shading_normalizedViewportCoord, _3732).xy;vec4 _1275 = textureGather(light_ssao, _1253, 1);vec4 _1279 = textureGather(light_ssao, _1253, 2);vec2 _1286 = fract((_1253 * vec2(textureSize(light_ssao, 0))) - vec2(0.5));float _1289 = _1286.x;float _1290 = 1.0 - _1289;float _1292 = _1286.y;vec4 _3599 = _3683;_3599.x = _1290 * _1292;vec4 _3603 = _3599;_3603.y = _1289 * _1292;float _1305 = 1.0 - _1292;vec4 _3607 = _3603;_3607.z = _1289 * _1305;vec4 _3611 = _3607;_3611.w = _1290 * _1305;vec4 _3617 = _3683;_3617.x = (_1275.x * 0.996108949184417724609375) + (_1279.x * 0.00389105058275163173675537109375);vec4 _3623 = _3617;_3623.y = (_1275.y * 0.996108949184417724609375) + (_1279.y * 0.00389105058275163173675537109375);vec4 _3629 = _3623;_3629.z = (_1275.z * 0.996108949184417724609375) + (_1279.z * 0.00389105058275163173675537109375);vec4 _3635 = _3629;_3635.w = (_1275.w * 0.996108949184417724609375) + (_1279.w * 0.00389105058275163173675537109375);vec4 _1377 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_3635 * (-frameUniforms.dz))) * frameUniforms.sz;vec4 _1387 = max(vec4(6.103515625e-05), vec4(1.0) - (_1377 * _1377)) * _3611;return dot(textureGather(light_ssao, _1253), _1387) * (1.0 / (((_1387.x + _1387.y) + _1387.z) + _1387.w));return textureLod(light_ssao, _1253, 0.0).x;ivec2 _1591 = textureSize(light_iblSpecular, int(frameUniforms.cz));vec3 _1605 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _1612 = _1605 * (1.0 / float(_1591.x));vec3 _1616 = cross(_1605, n) * (1.0 / float(_1591.y));vec3 _1619 = n - _1612;vec3 _1624 = n + _1612;return (((textureLod(light_iblSpecular, _1619 - _1616, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1624 - _1616, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1624 + _1616, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1619 + _1616, frameUniforms.cz).xyz) * 0.25;float _1814 = dot(lightDirection, shading_reflected);vec3 _3684;if (_1814 < frameUniforms.m.x)_3684 = normalize((lightDirection * frameUniforms.m.x) + (normalize(shading_reflected - (lightDirection * _1814)) * frameUniforms.m.y));_3684 = shading_reflected;return _3684;return vec3(vertex_lightSpacePosition.xy * (1.0 / vertex_lightSpacePosition.w), vertex_lightSpacePosition.z);float _3374 = clamp(dot(shading_normal, frameUniforms.p), 0.0, 1.0);vec4 _3389 = frameUniforms.g[cascade] * vec4(shading_position + (shading_normal * (sqrt(1.0 - (_3374 * _3374)) * frameUniforms.r.y)), 1.0);return vec3(_3389.xy * (1.0 / _3389.w), _3389.z);float _1927;vec3 _2817 = sampleSunAreaLight(frameUniforms.p);float _2824 = clamp(dot(shading_normal, _2817), 0.0, 1.0);if (_2824 > 0.0)bvec4 _2841 = 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 _2851 = clamp(uint(dot(vec4(_2841.x ? vec4(1.0).x : vec4(0.0).x, _2841.y ? vec4(1.0).y : vec4(0.0).y, _2841.z ? vec4(1.0).z : vec4(0.0).z, _2841.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u);float _3688;if (((frameUniforms.fz & 1u) != 0u) && ((frameUniforms.rz & ((1u << _2851) << 8u)) != 0u))uint param = _2851;vec3 _1900 = getCascadeLightSpacePosition(param);vec4 _2884 = texture(light_shadowMap, vec3(_1900.xy, float(_2851)));float _2888 = min(_1900.z, 1.0);float _2898 = _2884.x;float _2903 = max(_2884.y - (_2898 * _2898), 9.9999997473787516355514526367188e-06);float _2905 = _2888 - _2898;_3688 = (_2888 <= _2898) ? 1.0 : clamp(((_2903 / (_2903 + (_2905 * _2905))) - 0.20000000298023223876953125) * 1.25, 0.0, 1.0);_3688 = 1.0;float _3696;if (((frameUniforms.fz & 2u) != 0u) && (_3688 > 0.0))float _3698;uint _2951 = (frameUniforms.fz >> 8u) & 255u;vec4 _3061 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _3068 = frameUniforms.e * vec4(shading_position + (_2817 * frameUniforms.hz), 1.0);vec4 _3074 = _3061 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0));vec3 _3080 = _3061.xyz * (1.0 / _3061.w);vec3 _3105 = (_3080 * 0.5) + vec3(0.5);vec3 _3110 = (((_3068.xyz * (1.0 / _3068.w)) * 0.5) + vec3(0.5)) - _3105;float _2961 = 1.0 / float(_2951);float _2970 = (abs((_3074.xyz * (1.0 / _3074.w)).z - _3080.z) * _2961) * 0.5;float _2982 = (_2961 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _2961;vec3 _3692;_3692 = _3687;vec3 _2995;vec3 _3691;float _3694;uint _3689 = 0u;float _3690 = _2982;if (_3689 < _2951)_2995 = _3105 + (_3110 * _3690);if (abs(_2970 - (_2995.z - (1.0 - textureLod(light_structure, _2995.xy, 0.0).x))) < _2970)_3694 = 1.0;_3691 = _2995;_3690 += _2961;_3689++;_3692 = _2995;_3694 = 0.0;_3691 = _3692;vec2 _3031 = max((abs(_3691.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_3698 = _3694 * clamp(1.0 - dot(_3031, _3031), 0.0, 1.0);_3698 = 0.0;_3696 = _3698;_3696 = 0.0;_1927 = _3688 * (1.0 - _3696);vec3 _3143 = normalize(shading_view + _2817);float _3146 = clamp(_2824, 0.0, 1.0);float _3150 = clamp(dot(shading_normal, _3143), 0.0, 1.0);float _3238 = _3150 * pixel.roughness;float _3245 = pixel.roughness / ((1.0 - (_3150 * _3150)) + (_3238 * _3238));float _3268 = pixel.roughness * pixel.roughness;float _3315 = 1.0 - clamp(dot(_2817, _3143), 0.0, 1.0);float _3324 = _3315 * _3315;color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_3324 * _3324) * _3315))) * (((_3245 * _3245) * 0.3183098733425140380859375) * (0.5 / ((_3146 * sqrt(((shading_NoV - (_3268 * shading_NoV)) * shading_NoV) + _3268)) + (shading_NoV * sqrt(((_3146 - (_3268 * _3146)) * _3146) + _3268)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _3146) * _1927));vec3 _3654;vec3 _3653;_3653 = vertex_worldNormal;_3653 = -vertex_worldNormal;_3654 = _3653;_3654 = vertex_worldNormal;shading_normal = normalize(_3654);vec3 _2276 = variable_colorFromSh.xyz * 1.0;vec4 _2347 = textureLod(light_iblDFG, vec2(shading_NoV, 1.0), 0.0);vec3 _2332 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2347.y) - 1.0));float _2383 = min(1.0, evaluateSSAO());float _2476 = clamp((pow(shading_NoV + _2383, 7.62939453125e-06) - 1.0) + _2383, 0.0, 1.0);vec3 _2484 = mix(_2347.xxx, _2347.yyy, vec3(0.039999999105930328369140625));vec3 _2197 = (((((_2276 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _2484)) * 1.0) * max(vec3(_2383), ((((((_2276 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2383) + ((_2276 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2383) + ((_2276 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2383)) + (((_2484 * textureLod(light_iblSpecular, shading_normal, frameUniforms.cz).xyz) * (_2332 * 1.0)) * max(vec3(_2476), ((((vec3(-0.250783979892730712890625) * _2476) + vec3(0.449896037578582763671875)) * _2476) + vec3(0.800507962703704833984375)) * _2476))) * frameUniforms.x;evaluateDirectionalLight(MaterialInputs(vec4(variable_colorFromSh.x, variable_colorFromSh.y, variable_colorFromSh.z, vec4(0.0, 0.0, 0.0, 1.0).w), 1.0, 0.0, 0.5, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _3656, _3659, _3659, _3659, _3659, _3656), PixelParams(_2276, 1.0, 1.0, vec3(0.039999999105930328369140625), 1.0, _2347.xyz, _2332), _2197);fragColor = vec4(_2197, 1.0);bvec4 _2622 = 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(_2622.x ? vec4(1.0).x : vec4(0.0).x, _2622.y ? vec4(1.0).y : vec4(0.0).y, _2622.z ? vec4(1.0).z : vec4(0.0).z, _2622.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u);vec3 _2080 = fragColor.xyz * uintToColorDebug(param);fragColor = vec4(_2080.x, _2080.y, _2080.z, fragColor.w);vec3 _3922;uint _3961;bool _3970;vec4 _4050;vec4 _4081;float _4082;vec2 _1125 = vec3(shading_normalizedViewportCoord, _4082).xy;vec4 _1146 = textureGather(light_ssao, _1125, 1);vec4 _1150 = textureGather(light_ssao, _1125, 2);vec2 _1157 = fract((_1125 * vec2(textureSize(light_ssao, 0))) - vec2(0.5));float _1160 = _1157.x;float _1161 = 1.0 - _1160;float _1163 = _1157.y;vec4 _3872 = _4050;_3872.x = _1161 * _1163;vec4 _3876 = _3872;_3876.y = _1160 * _1163;float _1176 = 1.0 - _1163;vec4 _3880 = _3876;_3880.z = _1160 * _1176;vec4 _3884 = _3880;_3884.w = _1161 * _1176;vec4 _3890 = _4050;_3890.x = (_1146.x * 0.996108949184417724609375) + (_1150.x * 0.00389105058275163173675537109375);vec4 _3896 = _3890;_3896.y = (_1146.y * 0.996108949184417724609375) + (_1150.y * 0.00389105058275163173675537109375);vec4 _3902 = _3896;_3902.z = (_1146.z * 0.996108949184417724609375) + (_1150.z * 0.00389105058275163173675537109375);vec4 _3908 = _3902;_3908.w = (_1146.w * 0.996108949184417724609375) + (_1150.w * 0.00389105058275163173675537109375);vec4 _1248 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_3908 * (-frameUniforms.dz))) * frameUniforms.sz;vec4 _1258 = max(vec4(6.103515625e-05), vec4(1.0) - (_1248 * _1248)) * _3884;return dot(textureGather(light_ssao, _1125), _1258) * (1.0 / (((_1258.x + _1258.y) + _1258.z) + _1258.w));return textureLod(light_ssao, _1125, 0.0).x;ivec2 _1463 = textureSize(light_iblSpecular, int(frameUniforms.cz));vec3 _1478 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _1485 = _1478 * (1.0 / float(_1463.x));vec3 _1489 = cross(_1478, n) * (1.0 / float(_1463.y));vec3 _1492 = n - _1485;vec3 _1497 = n + _1485;return (((textureLod(light_iblSpecular, _1492 - _1489, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1497 - _1489, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1497 + _1489, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1492 + _1489, frameUniforms.cz).xyz) * 0.25;vec3 _3920;vec3 _3919;_3919 = vertex_worldNormal;_3919 = -vertex_worldNormal;_3920 = _3919;_3920 = vertex_worldNormal;vec3 _2189 = normalize(_3920);vec3 _2195 = normalize(frameUniforms.j - shading_position);float _2251 = max(dot(_2189, _2195), 9.9999997473787516355514526367188e-05);vec3 _2344 = variable_colorFromSh.xyz * 1.0;vec4 _2415 = textureLod(light_iblDFG, vec2(_2251, 1.0), 0.0);vec3 _2400 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2415.y) - 1.0));float _2451 = min(1.0, evaluateSSAO());float _2544 = clamp((pow(_2251 + _2451, 7.62939453125e-06) - 1.0) + _2451, 0.0, 1.0);vec3 _2552 = mix(_2415.xxx, _2415.yyy, vec3(0.039999999105930328369140625));float _2752 = 1.0 - gl_FragCoord.z;uvec2 _2791 = uvec2((vec3(shading_normalizedViewportCoord, _2752).xy * frameUniforms.i.xy) * vec2(frameUniforms.w, frameUniforms.s));uint _2776 = ((_2791.x * frameUniforms.q) + (_2791.y * frameUniforms.u.x)) + (uint(max(0.0, (log2((frameUniforms.t.x * _2752) + frameUniforms.t.y) * frameUniforms.t.z) + frameUniforms.t.w)) * frameUniforms.u.y);uvec4 _2823 = texelFetch(light_froxels, ivec2(int(_2776 & 63u), int(_2776 >> 6u)), 0);uint _2826 = _2823.x;uint _2691 = _2826 + (_2823.y & 255u);vec3 _3953;vec3 _3984;_3984 = _3922;_3953 = (((((_2344 * diffuseIrradiance(_2189)) * (vec3(1.0) - _2552)) * 1.0) * max(vec3(_2451), ((((((_2344 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2451) + ((_2344 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2451) + ((_2344 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2451)) + (((_2552 * textureLod(light_iblSpecular, _2189, frameUniforms.cz).xyz) * (_2400 * 1.0)) * max(vec3(_2544), ((((vec3(-0.250783979892730712890625) * _2544) + vec3(0.449896037578582763671875)) * _2544) + vec3(0.800507962703704833984375)) * _2544))) * frameUniforms.x;uint _3958;uint _3963;bool _3967;bool _3972;vec3 _4009;vec3 _4047;uint _3959;uint _3964;bool _3968;bool _3973;for (uint _3952 = _2826; _3952 < _2691; _3984 = _4047, _3973 = _3972, _3968 = _3967, _3964 = _3963, _3959 = _3958, _3953 = _4009, _3952++)uvec4 _2861 = texelFetch(light_records, ivec2(int(_3952 & 31u), int(_3952 >> 5u)), 0);uint _2862 = _2861.x;vec3 _2879 = lightsUniforms.a[_2862][0].xyz - vertex_worldPosition;float _2959 = lightsUniforms.a[_2862][1].w * frameUniforms.y;vec4 _3857 = vec4(lightsUniforms.a[_2862][1].x, lightsUniforms.a[_2862][1].y, lightsUniforms.a[_2862][1].z, _4081.w);_3857.w = _2959;vec3 _2892 = normalize(_2879);float _2966 = dot(_2879, _2879);float _2981 = _2966 * lightsUniforms.a[_2862][0].w;float _2986 = clamp(1.0 - (_2981 * _2981), 0.0, 1.0);float _2974 = (_2986 * _2986) / max(_2966, 9.9999997473787516355514526367188e-05);float _2903 = clamp(dot(_2189, _2892), 0.0, 1.0);float _3976;if (floatBitsToUint(lightsUniforms.a[_2862][3].w) == 1u)float _3000 = clamp((dot(-lightsUniforms.a[_2862][2].xyz, _2892) * lightsUniforms.a[_2862][3].x) + lightsUniforms.a[_2862][3].y, 0.0, 1.0);uint _2928 = floatBitsToUint(lightsUniforms.a[_2862][3].z);_3976 = _2974 * (_3000 * _3000);_3972 = (_2928 & 1u) != 0u;_3967 = ((_2928 >> 1u) & 1u) != 0u;_3963 = (_2928 >> 2u) & 15u;_3958 = (_2928 >> 6u) & 15u;_3976 = _2974;_3972 = _3973;_3967 = _3968;_3963 = _3964;_3958 = _3959;float _3991;if (_2903 > 0.0)float _3977;if (_3972)vec4 _3031 = texture(light_shadowMap, vec3(vertex_spotLightSpacePosition[_3963].xy * (1.0 / vertex_spotLightSpacePosition[_3963].w), float(_3958)));float _3035 = min(vertex_spotLightSpacePosition[_3963].z, 1.0);float _3045 = _3031.x;float _3050 = max(_3031.y - (_3045 * _3045), 9.9999997473787516355514526367188e-06);float _3052 = _3035 - _3045;_3977 = (_3035 <= _3045) ? 1.0 : clamp(((_3050 / (_3050 + (_3052 * _3052))) - 0.20000000298023223876953125) * 1.25, 0.0, 1.0);_3977 = 1.0;float _3992;vec3 _4048;if (_3967 && (_3977 > 0.0))float _3993;uint _3098 = (frameUniforms.fz >> 8u) & 255u;vec4 _3208 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _3215 = frameUniforms.e * vec4(shading_position + (_2892 * frameUniforms.hz), 1.0);vec4 _3221 = _3208 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0));vec3 _3227 = _3208.xyz * (1.0 / _3208.w);vec3 _3252 = (_3227 * 0.5) + vec3(0.5);vec3 _3257 = (((_3215.xyz * (1.0 / _3215.w)) * 0.5) + vec3(0.5)) - _3252;float _3108 = 1.0 / float(_3098);float _3117 = (abs((_3221.xyz * (1.0 / _3221.w)).z - _3227.z) * _3108) * 0.5;float _3129 = (_3108 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _3108;vec3 _3981;_3981 = _3984;vec3 _3142;vec3 _3980;float _3987;uint _3978 = 0u;float _3979 = _3129;if (_3978 < _3098)_3142 = _3252 + (_3257 * _3979);if (abs(_3117 - (_3142.z - (1.0 - textureLod(light_structure, _3142.xy, 0.0).x))) < _3117)_3987 = 1.0;_3980 = _3142;_3979 += _3108;_3978++;_3981 = _3142;_3987 = 0.0;_3980 = _3981;vec2 _3178 = max((abs(_3980.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_4049 = _3980;_3993 = _3977 * (1.0 - (_3987 * clamp(1.0 - dot(_3178, _3178), 0.0, 1.0)));_4049 = _3984;_3993 = _3977;_4048 = _4049;_3992 = _3993;_4048 = _3984;_3992 = _3977;_4047 = _4048;_3991 = _3992;_4047 = _3984;_3991 = 1.0;if (_2903 <= 0.0)_4009 = _3953;vec3 _3290 = normalize(_2195 + _2892);float _3293 = clamp(_2903, 0.0, 1.0);float _3297 = clamp(dot(_2189, _3290), 0.0, 1.0);float _3442 = (_3293 * sqrt(((_2251 - _2251) * _2251) + 1.0)) + (_2251 * sqrt(((_3293 - _3293) * _3293) + 1.0));float _3462 = 1.0 - clamp(dot(_2892, _3290), 0.0, 1.0);float _3471 = _3462 * _3462;_4009 = _3953 + ((((_2344 * 0.3183098733425140380859375) + (((vec3(0.039999999105930328369140625) + (vec3(0.959999978542327880859375) * ((_3471 * _3471) * _3462))) * (0.15915493667125701904296875 / _3442)) * _2400)) * _3857.xyz) * (((_2959 * _3976) * _3293) * _3991));fragColor = vec4(_3953, 1.0);vec3 _4978;float _4981;uint _5017;bool _5026;vec4 _5106;vec3 _5110;vec4 _5158;float _5159;vec3 _567;vec2 _1330 = vec3(shading_normalizedViewportCoord, _5159).xy;vec4 _1351 = textureGather(light_ssao, _1330, 1);vec4 _1355 = textureGather(light_ssao, _1330, 2);vec2 _1362 = fract((_1330 * vec2(textureSize(light_ssao, 0))) - vec2(0.5));float _1365 = _1362.x;float _1366 = 1.0 - _1365;float _1368 = _1362.y;vec4 _4921 = _5106;_4921.x = _1366 * _1368;vec4 _4925 = _4921;_4925.y = _1365 * _1368;float _1381 = 1.0 - _1368;vec4 _4929 = _4925;_4929.z = _1365 * _1381;vec4 _4933 = _4929;_4933.w = _1366 * _1381;vec4 _4939 = _5106;_4939.x = (_1351.x * 0.996108949184417724609375) + (_1355.x * 0.00389105058275163173675537109375);vec4 _4945 = _4939;_4945.y = (_1351.y * 0.996108949184417724609375) + (_1355.y * 0.00389105058275163173675537109375);vec4 _4951 = _4945;_4951.z = (_1351.z * 0.996108949184417724609375) + (_1355.z * 0.00389105058275163173675537109375);vec4 _4957 = _4951;_4957.w = (_1351.w * 0.996108949184417724609375) + (_1355.w * 0.00389105058275163173675537109375);vec4 _1453 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_4957 * (-frameUniforms.dz))) * frameUniforms.sz;vec4 _1463 = max(vec4(6.103515625e-05), vec4(1.0) - (_1453 * _1453)) * _4933;return dot(textureGather(light_ssao, _1330), _1463) * (1.0 / (((_1463.x + _1463.y) + _1463.z) + _1463.w));return textureLod(light_ssao, _1330, 0.0).x;ivec2 _1667 = textureSize(light_iblSpecular, int(frameUniforms.cz));vec3 _1681 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _1688 = _1681 * (1.0 / float(_1667.x));vec3 _1692 = cross(_1681, n) * (1.0 / float(_1667.y));vec3 _1695 = n - _1688;vec3 _1700 = n + _1688;return (((textureLod(light_iblSpecular, _1695 - _1692, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1700 - _1692, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1700 + _1692, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1695 + _1692, frameUniforms.cz).xyz) * 0.25;float _1890 = dot(lightDirection, shading_reflected);vec3 _5107;if (_1890 < frameUniforms.m.x)_5107 = normalize((lightDirection * frameUniforms.m.x) + (normalize(shading_reflected - (lightDirection * _1890)) * frameUniforms.m.y));_5107 = shading_reflected;return _5107;float _4614 = clamp(dot(shading_normal, frameUniforms.p), 0.0, 1.0);vec4 _4629 = frameUniforms.g[cascade] * vec4(shading_position + (shading_normal * (sqrt(1.0 - (_4614 * _4614)) * frameUniforms.r.y)), 1.0);return vec3(_4629.xy * (1.0 / _4629.w), _4629.z);float _2003;vec3 _4057 = sampleSunAreaLight(frameUniforms.p);float _4064 = clamp(dot(shading_normal, _4057), 0.0, 1.0);if (_4064 > 0.0)bvec4 _4081 = 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 _4091 = clamp(uint(dot(vec4(_4081.x ? vec4(1.0).x : vec4(0.0).x, _4081.y ? vec4(1.0).y : vec4(0.0).y, _4081.z ? vec4(1.0).z : vec4(0.0).z, _4081.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u);float _5111;if (((frameUniforms.fz & 1u) != 0u) && ((frameUniforms.rz & ((1u << _4091) << 8u)) != 0u))uint param = _4091;vec3 _1976 = getCascadeLightSpacePosition(param);vec4 _4124 = texture(light_shadowMap, vec3(_1976.xy, float(_4091)));float _4128 = min(_1976.z, 1.0);float _4138 = _4124.x;float _4143 = max(_4124.y - (_4138 * _4138), 9.9999997473787516355514526367188e-06);float _4145 = _4128 - _4138;_5111 = (_4128 <= _4138) ? 1.0 : clamp(((_4143 / (_4143 + (_4145 * _4145))) - 0.20000000298023223876953125) * 1.25, 0.0, 1.0);_5111 = 1.0;float _5119;if (((frameUniforms.fz & 2u) != 0u) && (_5111 > 0.0))float _5121;uint _4191 = (frameUniforms.fz >> 8u) & 255u;vec4 _4301 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _4308 = frameUniforms.e * vec4(shading_position + (_4057 * frameUniforms.hz), 1.0);vec4 _4314 = _4301 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0));vec3 _4320 = _4301.xyz * (1.0 / _4301.w);vec3 _4345 = (_4320 * 0.5) + vec3(0.5);vec3 _4350 = (((_4308.xyz * (1.0 / _4308.w)) * 0.5) + vec3(0.5)) - _4345;float _4201 = 1.0 / float(_4191);float _4210 = (abs((_4314.xyz * (1.0 / _4314.w)).z - _4320.z) * _4201) * 0.5;float _4222 = (_4201 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _4201;vec3 _5115;_5115 = _5110;vec3 _4235;vec3 _5114;float _5117;uint _5112 = 0u;float _5113 = _4222;if (_5112 < _4191)_4235 = _4345 + (_4350 * _5113);if (abs(_4210 - (_4235.z - (1.0 - textureLod(light_structure, _4235.xy, 0.0).x))) < _4210)_5117 = 1.0;_5114 = _4235;_5113 += _4201;_5112++;_5115 = _4235;_5117 = 0.0;_5114 = _5115;vec2 _4271 = max((abs(_5114.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_5121 = _5117 * clamp(1.0 - dot(_4271, _4271), 0.0, 1.0);_5121 = 0.0;_5119 = _5121;_5119 = 0.0;_2003 = _5111 * (1.0 - _5119);vec3 _4383 = normalize(shading_view + _4057);float _4386 = clamp(_4064, 0.0, 1.0);float _4390 = clamp(dot(shading_normal, _4383), 0.0, 1.0);float _4478 = _4390 * pixel.roughness;float _4485 = pixel.roughness / ((1.0 - (_4390 * _4390)) + (_4478 * _4478));float _4508 = pixel.roughness * pixel.roughness;float _4555 = 1.0 - clamp(dot(_4057, _4383), 0.0, 1.0);float _4564 = _4555 * _4555;color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_4564 * _4564) * _4555))) * (((_4485 * _4485) * 0.3183098733425140380859375) * (0.5 / ((_4386 * sqrt(((shading_NoV - (_4508 * shading_NoV)) * shading_NoV) + _4508)) + (shading_NoV * sqrt(((_4386 - (_4508 * _4386)) * _4386) + _4508)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _4386) * _2003));vec3 _4976;vec3 _4975;_4975 = vertex_worldNormal;_4975 = -vertex_worldNormal;_4976 = _4975;_4976 = vertex_worldNormal;shading_normal = normalize(_4976);vec3 _2694 = variable_colorFromSh.xyz * 1.0;vec4 _2765 = textureLod(light_iblDFG, vec2(shading_NoV, 1.0), 0.0);vec3 _2750 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2765.y) - 1.0));float _2801 = min(1.0, evaluateSSAO());float _2894 = clamp((pow(shading_NoV + _2801, 7.62939453125e-06) - 1.0) + _2801, 0.0, 1.0);vec3 _2902 = mix(_2765.xxx, _2765.yyy, vec3(0.039999999105930328369140625));vec3 _2610 = (((((_2694 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _2902)) * 1.0) * max(vec3(_2801), ((((((_2694 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2801) + ((_2694 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2801) + ((_2694 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2801)) + (((_2902 * textureLod(light_iblSpecular, shading_normal, frameUniforms.cz).xyz) * (_2750 * 1.0)) * max(vec3(_2894), ((((vec3(-0.250783979892730712890625) * _2894) + vec3(0.449896037578582763671875)) * _2894) + vec3(0.800507962703704833984375)) * _2894))) * frameUniforms.x;evaluateDirectionalLight(MaterialInputs(vec4(variable_colorFromSh.x, variable_colorFromSh.y, variable_colorFromSh.z, vec4(0.0, 0.0, 0.0, 1.0).w), 1.0, 0.0, 0.5, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _4978, _4981, _4981, _4981, _4981, _4978), PixelParams(_2694, 1.0, 1.0, vec3(0.039999999105930328369140625), 1.0, _2765.xyz, _2750), _2610);float _3102 = 1.0 - gl_FragCoord.z;uvec2 _3141 = uvec2((vec3(shading_normalizedViewportCoord, _3102).xy * frameUniforms.i.xy) * vec2(frameUniforms.w, frameUniforms.s));uint _3126 = ((_3141.x * frameUniforms.q) + (_3141.y * frameUniforms.u.x)) + (uint(max(0.0, (log2((frameUniforms.t.x * _3102) + frameUniforms.t.y) * frameUniforms.t.z) + frameUniforms.t.w)) * frameUniforms.u.y);uvec4 _3173 = texelFetch(light_froxels, ivec2(int(_3126 & 63u), int(_3126 >> 6u)), 0);uint _3176 = _3173.x;uint _3041 = _3176 + (_3173.y & 255u);vec3 _5009;vec3 _5040;_5040 = _4978;_5009 = _2610;uint _5014;uint _5019;bool _5023;bool _5028;vec3 _5065;vec3 _5103;uint _5015;uint _5020;bool _5024;bool _5029;for (uint _5008 = _3176; _5008 < _3041; _5040 = _5103, _5029 = _5028, _5024 = _5023, _5020 = _5019, _5015 = _5014, _5009 = _5065, _5008++)uvec4 _3211 = texelFetch(light_records, ivec2(int(_5008 & 31u), int(_5008 >> 5u)), 0);uint _3212 = _3211.x;vec3 _3229 = lightsUniforms.a[_3212][0].xyz - vertex_worldPosition;float _3309 = lightsUniforms.a[_3212][1].w * frameUniforms.y;vec4 _4903 = vec4(lightsUniforms.a[_3212][1].x, lightsUniforms.a[_3212][1].y, lightsUniforms.a[_3212][1].z, _5158.w);_4903.w = _3309;vec3 _3242 = normalize(_3229);float _3316 = dot(_3229, _3229);float _3331 = _3316 * lightsUniforms.a[_3212][0].w;float _3336 = clamp(1.0 - (_3331 * _3331), 0.0, 1.0);float _3324 = (_3336 * _3336) / max(_3316, 9.9999997473787516355514526367188e-05);float _3253 = clamp(dot(shading_normal, _3242), 0.0, 1.0);float _5032;if (floatBitsToUint(lightsUniforms.a[_3212][3].w) == 1u)float _3350 = clamp((dot(-lightsUniforms.a[_3212][2].xyz, _3242) * lightsUniforms.a[_3212][3].x) + lightsUniforms.a[_3212][3].y, 0.0, 1.0);uint _3278 = floatBitsToUint(lightsUniforms.a[_3212][3].z);_5032 = _3324 * (_3350 * _3350);_5028 = (_3278 & 1u) != 0u;_5023 = ((_3278 >> 1u) & 1u) != 0u;_5019 = (_3278 >> 2u) & 15u;_5014 = (_3278 >> 6u) & 15u;_5032 = _3324;_5028 = _5029;_5023 = _5024;_5019 = _5020;_5014 = _5015;float _5047;if (_3253 > 0.0)float _5033;if (_5028)vec4 _3381 = texture(light_shadowMap, vec3(vertex_spotLightSpacePosition[_5019].xy * (1.0 / vertex_spotLightSpacePosition[_5019].w), float(_5014)));float _3385 = min(vertex_spotLightSpacePosition[_5019].z, 1.0);float _3395 = _3381.x;float _3400 = max(_3381.y - (_3395 * _3395), 9.9999997473787516355514526367188e-06);float _3402 = _3385 - _3395;_5033 = (_3385 <= _3395) ? 1.0 : clamp(((_3400 / (_3400 + (_3402 * _3402))) - 0.20000000298023223876953125) * 1.25, 0.0, 1.0);_5033 = 1.0;float _5048;vec3 _5104;if (_5023 && (_5033 > 0.0))float _5049;vec3 _5105;uint _3448 = (frameUniforms.fz >> 8u) & 255u;vec4 _3558 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _3565 = frameUniforms.e * vec4(shading_position + (_3242 * frameUniforms.hz), 1.0);vec4 _3571 = _3558 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0));vec3 _3577 = _3558.xyz * (1.0 / _3558.w);vec3 _3602 = (_3577 * 0.5) + vec3(0.5);vec3 _3607 = (((_3565.xyz * (1.0 / _3565.w)) * 0.5) + vec3(0.5)) - _3602;float _3458 = 1.0 / float(_3448);float _3467 = (abs((_3571.xyz * (1.0 / _3571.w)).z - _3577.z) * _3458) * 0.5;float _3479 = (_3458 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _3458;vec3 _5037;_5037 = _5040;vec3 _3492;vec3 _5036;float _5043;uint _5034 = 0u;float _5035 = _3479;if (_5034 < _3448)_3492 = _3602 + (_3607 * _5035);if (abs(_3467 - (_3492.z - (1.0 - textureLod(light_structure, _3492.xy, 0.0).x))) < _3467)_5043 = 1.0;_5036 = _3492;_5035 += _3458;_5034++;_5037 = _3492;_5043 = 0.0;_5036 = _5037;vec2 _3528 = max((abs(_5036.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_5105 = _5036;_5049 = _5033 * (1.0 - (_5043 * clamp(1.0 - dot(_3528, _3528), 0.0, 1.0)));_5105 = _5040;_5049 = _5033;_5104 = _5105;_5048 = _5049;_5104 = _5040;_5048 = _5033;_5103 = _5104;_5047 = _5048;_5103 = _5040;_5047 = 1.0;if (_3253 <= 0.0)_5065 = _5009;vec3 _3640 = normalize(shading_view + _3242);float _3643 = clamp(_3253, 0.0, 1.0);float _3647 = clamp(dot(shading_normal, _3640), 0.0, 1.0);float _3792 = (_3643 * sqrt(((shading_NoV - shading_NoV) * shading_NoV) + 1.0)) + (shading_NoV * sqrt(((_3643 - _3643) * _3643) + 1.0));float _3812 = 1.0 - clamp(dot(_3242, _3640), 0.0, 1.0);float _3821 = _3812 * _3812;_5065 = _5009 + ((((_2694 * 0.3183098733425140380859375) + (((vec3(0.039999999105930328369140625) + (vec3(0.959999978542327880859375) * ((_3821 * _3821) * _3812))) * (0.15915493667125701904296875 / _3792)) * _2750)) * _4903.xyz) * (((_3309 * _5032) * _3643) * _5047));fragColor = vec4(_5009, 1.0);bvec4 _3862 = 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(_3862.x ? vec4(1.0).x : vec4(0.0).x, _3862.y ? vec4(1.0).y : vec4(0.0).y, _3862.z ? vec4(1.0).z : vec4(0.0).z, _3862.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u);vec3 _2503 = fragColor.xyz * uintToColorDebug(param);fragColor = vec4(_2503.x, _2503.y, _2503.z, fragColor.w);float _67 = (-((frameUniforms.a[0] * vertex_worldPosition.x) + ((frameUniforms.a[1] * vertex_worldPosition.y) + ((frameUniforms.a[2] * vertex_worldPosition.z) + frameUniforms.a[3]))).z) / abs(frameUniforms.dz);float _70 = dFdx(_67);float _73 = dFdy(_67);fragColor = vec4(_67, (_67 * _67) + (0.25 * ((_70 * _70) + (_73 * _73))), 0.0, 0.0);vec3 _3951;float _3954;vec4 _3983;vec3 _3987;float _4032;vec3 _517;vec2 _1409 = vec3(shading_normalizedViewportCoord, _4032).xy;vec4 _1431 = textureGather(light_ssao, _1409, 1);vec4 _1435 = textureGather(light_ssao, _1409, 2);vec2 _1442 = fract((_1409 * vec2(textureSize(light_ssao, 0))) - vec2(0.5));float _1445 = _1442.x;float _1446 = 1.0 - _1445;float _1448 = _1442.y;vec4 _3894 = _3983;_3894.x = _1446 * _1448;vec4 _3898 = _3894;_3898.y = _1445 * _1448;float _1461 = 1.0 - _1448;vec4 _3902 = _3898;_3902.z = _1445 * _1461;vec4 _3906 = _3902;_3906.w = _1446 * _1461;vec4 _3912 = _3983;_3912.x = (_1431.x * 0.996108949184417724609375) + (_1435.x * 0.00389105058275163173675537109375);vec4 _3918 = _3912;_3918.y = (_1431.y * 0.996108949184417724609375) + (_1435.y * 0.00389105058275163173675537109375);vec4 _3924 = _3918;_3924.z = (_1431.z * 0.996108949184417724609375) + (_1435.z * 0.00389105058275163173675537109375);vec4 _3930 = _3924;_3930.w = (_1431.w * 0.996108949184417724609375) + (_1435.w * 0.00389105058275163173675537109375);vec4 _1533 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_3930 * (-frameUniforms.dz))) * frameUniforms.sz;vec4 _1543 = max(vec4(6.103515625e-05), vec4(1.0) - (_1533 * _1533)) * _3906;return dot(textureGather(light_ssao, _1409), _1543) * (1.0 / (((_1543.x + _1543.y) + _1543.z) + _1543.w));return textureLod(light_ssao, _1409, 0.0).x;ivec2 _1742 = textureSize(light_iblSpecular, int(frameUniforms.cz));vec3 _1756 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _1763 = _1756 * (1.0 / float(_1742.x));vec3 _1767 = cross(_1756, n) * (1.0 / float(_1742.y));vec3 _1770 = n - _1763;vec3 _1775 = n + _1763;return (((textureLod(light_iblSpecular, _1770 - _1767, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1775 - _1767, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1775 + _1767, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1770 + _1767, frameUniforms.cz).xyz) * 0.25;float _1964 = dot(lightDirection, shading_reflected);if (_1964 < frameUniforms.m.x)_3984 = normalize((lightDirection * frameUniforms.m.x) + (normalize(shading_reflected - (lightDirection * _1964)) * frameUniforms.m.y));_3984 = shading_reflected;return _3984;float _3668 = clamp(dot(shading_normal, frameUniforms.p), 0.0, 1.0);vec4 _3683 = frameUniforms.g[cascade] * vec4(shading_position + (shading_normal * (sqrt(1.0 - (_3668 * _3668)) * frameUniforms.r.y)), 1.0);return vec3(_3683.xy * (1.0 / _3683.w), _3683.z);float _2076;vec3 _3111 = sampleSunAreaLight(frameUniforms.p);float _3118 = clamp(dot(shading_normal, _3111), 0.0, 1.0);if (_3118 > 0.0)bvec4 _3135 = 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 _3145 = clamp(uint(dot(vec4(_3135.x ? vec4(1.0).x : vec4(0.0).x, _3135.y ? vec4(1.0).y : vec4(0.0).y, _3135.z ? vec4(1.0).z : vec4(0.0).z, _3135.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u);float _3988;if (((frameUniforms.fz & 1u) != 0u) && ((frameUniforms.rz & ((1u << _3145) << 8u)) != 0u))uint param = _3145;vec3 _2049 = getCascadeLightSpacePosition(param);vec4 _3178 = texture(light_shadowMap, vec3(_2049.xy, float(_3145)));float _3182 = min(_2049.z, 1.0);float _3192 = _3178.x;float _3197 = max(_3178.y - (_3192 * _3192), 9.9999997473787516355514526367188e-06);float _3199 = _3182 - _3192;_3988 = (_3182 <= _3192) ? 1.0 : clamp(((_3197 / (_3197 + (_3199 * _3199))) - 0.20000000298023223876953125) * 1.25, 0.0, 1.0);_3988 = 1.0;float _3996;if (((frameUniforms.fz & 2u) != 0u) && (_3988 > 0.0))float _3998;uint _3245 = (frameUniforms.fz >> 8u) & 255u;vec4 _3355 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _3362 = frameUniforms.e * vec4(shading_position + (_3111 * frameUniforms.hz), 1.0);vec4 _3368 = _3355 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0));vec3 _3374 = _3355.xyz * (1.0 / _3355.w);vec3 _3399 = (_3374 * 0.5) + vec3(0.5);vec3 _3404 = (((_3362.xyz * (1.0 / _3362.w)) * 0.5) + vec3(0.5)) - _3399;float _3255 = 1.0 / float(_3245);float _3264 = (abs((_3368.xyz * (1.0 / _3368.w)).z - _3374.z) * _3255) * 0.5;float _3276 = (_3255 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _3255;vec3 _3992;_3992 = _3987;vec3 _3289;vec3 _3991;float _3994;uint _3989 = 0u;float _3990 = _3276;if (_3989 < _3245)_3289 = _3399 + (_3404 * _3990);if (abs(_3264 - (_3289.z - (1.0 - textureLod(light_structure, _3289.xy, 0.0).x))) < _3264)_3994 = 1.0;_3991 = _3289;_3990 += _3255;_3989++;_3992 = _3289;_3994 = 0.0;vec2 _3325 = max((abs(_3991.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_3998 = _3994 * clamp(1.0 - dot(_3325, _3325), 0.0, 1.0);_3998 = 0.0;_3996 = _3998;_3996 = 0.0;_2076 = _3988 * (1.0 - _3996);vec3 _3437 = normalize(shading_view + _3111);float _3440 = clamp(_3118, 0.0, 1.0);float _3444 = clamp(dot(shading_normal, _3437), 0.0, 1.0);float _3532 = _3444 * pixel.roughness;float _3539 = pixel.roughness / ((1.0 - (_3444 * _3444)) + (_3532 * _3532));float _3562 = pixel.roughness * pixel.roughness;float _3609 = 1.0 - clamp(dot(_3111, _3437), 0.0, 1.0);float _3618 = _3609 * _3609;color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_3618 * _3618) * _3609))) * (((_3539 * _3539) * 0.3183098733425140380859375) * (0.5 / ((_3440 * sqrt(((shading_NoV - (_3562 * shading_NoV)) * shading_NoV) + _3562)) + (shading_NoV * sqrt(((_3440 - (_3562 * _3440)) * _3440) + _3562)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _3440) * _2076));vec3 _3949;vec3 _3948;_3948 = vertex_worldNormal;_3948 = -vertex_worldNormal;_3949 = _3948;_3949 = vertex_worldNormal;shading_normal = normalize(_3949);vec3 _2434 = variable_colorFromSh.xyz * 1.0;vec4 _2505 = textureLod(light_iblDFG, vec2(shading_NoV, 1.0), 0.0);vec3 _2490 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2505.y) - 1.0));float _2541 = min(1.0, evaluateSSAO());float _2634 = clamp((pow(shading_NoV + _2541, 7.62939453125e-06) - 1.0) + _2541, 0.0, 1.0);vec3 _2642 = mix(_2505.xxx, _2505.yyy, vec3(0.039999999105930328369140625));vec3 _2355 = (((((_2434 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _2642)) * 1.0) * max(vec3(_2541), ((((((_2434 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2541) + ((_2434 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2541) + ((_2434 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2541)) + (((_2642 * textureLod(light_iblSpecular, shading_normal, frameUniforms.cz).xyz) * (_2490 * 1.0)) * max(vec3(_2634), ((((vec3(-0.250783979892730712890625) * _2634) + vec3(0.449896037578582763671875)) * _2634) + vec3(0.800507962703704833984375)) * _2634))) * frameUniforms.x;evaluateDirectionalLight(MaterialInputs(vec4(variable_colorFromSh.x, variable_colorFromSh.y, variable_colorFromSh.z, vec4(0.0, 0.0, 0.0, 1.0).w), 1.0, 0.0, 0.5, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _3951, _3954, _3954, _3954, _3954, _3951), PixelParams(_2434, 1.0, 1.0, vec3(0.039999999105930328369140625), 1.0, _2505.xyz, _2490), _2355);fragColor = vec4(_2355, 1.0);bvec4 _2780 = 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(_2780.x ? vec4(1.0).x : vec4(0.0).x, _2780.y ? vec4(1.0).y : vec4(0.0).y, _2780.z ? vec4(1.0).z : vec4(0.0).z, _2780.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u);vec3 _2229 = fragColor.xyz * uintToColorDebug(param);fragColor = vec4(_2229.x, _2229.y, _2229.z, fragColor.w);vec3 _2235 = shading_position - frameUniforms.j;vec4 _3982;float _2845 = length(_2235);float _2848 = max(0.001000000047497451305389404296875, _2235.y);float _2858 = frameUniforms.nz * ((1.0 - exp((-frameUniforms.lz) * _2848)) / _2848);float _2874 = min(max(1.0 - exp2(-(_2858 * max(_2845 - frameUniforms.iz, 0.0))), 0.0), frameUniforms.jz);_3978 = frameUniforms.mz * (textureLod(light_iblSpecular, _2235, frameUniforms.cz).xyz * frameUniforms.x);_3978 = frameUniforms.mz;vec3 _2896 = _3978 * _2874;_3981 = _2896 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_2235, frameUniforms.p) / _2845, 0.0), frameUniforms.pz) * max(1.0 - exp2(-(_2858 * max(_2845 - frameUniforms.oz, 0.0))), 0.0)));_3981 = _2896;vec3 _2944 = (fragColor.xyz * (1.0 - _2874)) + _3981;_3982 = vec4(_2944.x, _2944.y, _2944.z, fragColor.w);_3982 = fragColor;fragColor = _3982;vec3 _4224;uint _4268;bool _4277;vec4 _4357;vec4 _4388;float _4389;vec2 _1288 = vec3(shading_normalizedViewportCoord, _4389).xy;vec4 _1309 = textureGather(light_ssao, _1288, 1);vec4 _1313 = textureGather(light_ssao, _1288, 2);vec2 _1320 = fract((_1288 * vec2(textureSize(light_ssao, 0))) - vec2(0.5));float _1323 = _1320.x;float _1324 = 1.0 - _1323;float _1326 = _1320.y;vec4 _4174 = _4357;_4174.x = _1324 * _1326;vec4 _4178 = _4174;_4178.y = _1323 * _1326;float _1339 = 1.0 - _1326;vec4 _4182 = _4178;_4182.z = _1323 * _1339;vec4 _4186 = _4182;_4186.w = _1324 * _1339;vec4 _4192 = _4357;_4192.x = (_1309.x * 0.996108949184417724609375) + (_1313.x * 0.00389105058275163173675537109375);vec4 _4198 = _4192;_4198.y = (_1309.y * 0.996108949184417724609375) + (_1313.y * 0.00389105058275163173675537109375);vec4 _4204 = _4198;_4204.z = (_1309.z * 0.996108949184417724609375) + (_1313.z * 0.00389105058275163173675537109375);vec4 _4210 = _4204;_4210.w = (_1309.w * 0.996108949184417724609375) + (_1313.w * 0.00389105058275163173675537109375);vec4 _1411 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_4210 * (-frameUniforms.dz))) * frameUniforms.sz;vec4 _1421 = max(vec4(6.103515625e-05), vec4(1.0) - (_1411 * _1411)) * _4186;return dot(textureGather(light_ssao, _1288), _1421) * (1.0 / (((_1421.x + _1421.y) + _1421.z) + _1421.w));return textureLod(light_ssao, _1288, 0.0).x;ivec2 _1621 = textureSize(light_iblSpecular, int(frameUniforms.cz));vec3 _1636 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _1643 = _1636 * (1.0 / float(_1621.x));vec3 _1647 = cross(_1636, n) * (1.0 / float(_1621.y));vec3 _1650 = n - _1643;vec3 _1655 = n + _1643;return (((textureLod(light_iblSpecular, _1650 - _1647, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1655 - _1647, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1655 + _1647, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1650 + _1647, frameUniforms.cz).xyz) * 0.25;vec3 _4222;vec3 _4221;_4221 = vertex_worldNormal;_4221 = -vertex_worldNormal;_4222 = _4221;_4222 = vertex_worldNormal;vec3 _2354 = normalize(_4222);vec3 _2360 = normalize(frameUniforms.j - shading_position);float _2416 = max(dot(_2354, _2360), 9.9999997473787516355514526367188e-05);vec3 _2509 = variable_colorFromSh.xyz * 1.0;vec4 _2580 = textureLod(light_iblDFG, vec2(_2416, 1.0), 0.0);vec3 _2565 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2580.y) - 1.0));float _2616 = min(1.0, evaluateSSAO());float _2709 = clamp((pow(_2416 + _2616, 7.62939453125e-06) - 1.0) + _2616, 0.0, 1.0);vec3 _2717 = mix(_2580.xxx, _2580.yyy, vec3(0.039999999105930328369140625));float _2917 = 1.0 - gl_FragCoord.z;uvec2 _2956 = uvec2((vec3(shading_normalizedViewportCoord, _2917).xy * frameUniforms.i.xy) * vec2(frameUniforms.w, frameUniforms.s));uint _2941 = ((_2956.x * frameUniforms.q) + (_2956.y * frameUniforms.u.x)) + (uint(max(0.0, (log2((frameUniforms.t.x * _2917) + frameUniforms.t.y) * frameUniforms.t.z) + frameUniforms.t.w)) * frameUniforms.u.y);uvec4 _2988 = texelFetch(light_froxels, ivec2(int(_2941 & 63u), int(_2941 >> 6u)), 0);uint _2991 = _2988.x;uint _2856 = _2991 + (_2988.y & 255u);vec3 _4255;vec3 _4291;_4291 = _4224;_4255 = (((((_2509 * diffuseIrradiance(_2354)) * (vec3(1.0) - _2717)) * 1.0) * max(vec3(_2616), ((((((_2509 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2616) + ((_2509 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2616) + ((_2509 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2616)) + (((_2717 * textureLod(light_iblSpecular, _2354, frameUniforms.cz).xyz) * (_2565 * 1.0)) * max(vec3(_2709), ((((vec3(-0.250783979892730712890625) * _2709) + vec3(0.449896037578582763671875)) * _2709) + vec3(0.800507962703704833984375)) * _2709))) * frameUniforms.x;uint _4265;uint _4270;bool _4274;bool _4279;vec3 _4316;vec3 _4354;uint _4266;uint _4271;bool _4275;bool _4280;for (uint _4254 = _2991; _4254 < _2856; _4291 = _4354, _4280 = _4279, _4275 = _4274, _4271 = _4270, _4266 = _4265, _4255 = _4316, _4254++)uvec4 _3026 = texelFetch(light_records, ivec2(int(_4254 & 31u), int(_4254 >> 5u)), 0);uint _3027 = _3026.x;vec3 _3044 = lightsUniforms.a[_3027][0].xyz - vertex_worldPosition;float _3124 = lightsUniforms.a[_3027][1].w * frameUniforms.y;vec4 _4158 = vec4(lightsUniforms.a[_3027][1].x, lightsUniforms.a[_3027][1].y, lightsUniforms.a[_3027][1].z, _4388.w);_4158.w = _3124;vec3 _3057 = normalize(_3044);float _3131 = dot(_3044, _3044);float _3146 = _3131 * lightsUniforms.a[_3027][0].w;float _3151 = clamp(1.0 - (_3146 * _3146), 0.0, 1.0);float _3139 = (_3151 * _3151) / max(_3131, 9.9999997473787516355514526367188e-05);float _3068 = clamp(dot(_2354, _3057), 0.0, 1.0);float _4283;if (floatBitsToUint(lightsUniforms.a[_3027][3].w) == 1u)float _3165 = clamp((dot(-lightsUniforms.a[_3027][2].xyz, _3057) * lightsUniforms.a[_3027][3].x) + lightsUniforms.a[_3027][3].y, 0.0, 1.0);uint _3093 = floatBitsToUint(lightsUniforms.a[_3027][3].z);_4283 = _3139 * (_3165 * _3165);_4279 = (_3093 & 1u) != 0u;_4274 = ((_3093 >> 1u) & 1u) != 0u;_4270 = (_3093 >> 2u) & 15u;_4265 = (_3093 >> 6u) & 15u;_4283 = _3139;_4279 = _4280;_4274 = _4275;_4270 = _4271;_4265 = _4266;float _4298;if (_3068 > 0.0)float _4284;if (_4279)vec4 _3196 = texture(light_shadowMap, vec3(vertex_spotLightSpacePosition[_4270].xy * (1.0 / vertex_spotLightSpacePosition[_4270].w), float(_4265)));float _3200 = min(vertex_spotLightSpacePosition[_4270].z, 1.0);float _3210 = _3196.x;float _3215 = max(_3196.y - (_3210 * _3210), 9.9999997473787516355514526367188e-06);float _3217 = _3200 - _3210;_4284 = (_3200 <= _3210) ? 1.0 : clamp(((_3215 / (_3215 + (_3217 * _3217))) - 0.20000000298023223876953125) * 1.25, 0.0, 1.0);_4284 = 1.0;float _4299;vec3 _4355;if (_4274 && (_4284 > 0.0))float _4300;uint _3263 = (frameUniforms.fz >> 8u) & 255u;vec4 _3373 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _3380 = frameUniforms.e * vec4(shading_position + (_3057 * frameUniforms.hz), 1.0);vec4 _3386 = _3373 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0));vec3 _3392 = _3373.xyz * (1.0 / _3373.w);vec3 _3417 = (_3392 * 0.5) + vec3(0.5);vec3 _3422 = (((_3380.xyz * (1.0 / _3380.w)) * 0.5) + vec3(0.5)) - _3417;float _3273 = 1.0 / float(_3263);float _3282 = (abs((_3386.xyz * (1.0 / _3386.w)).z - _3392.z) * _3273) * 0.5;float _3294 = (_3273 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _3273;vec3 _4288;_4288 = _4291;vec3 _3307;vec3 _4287;float _4294;uint _4285 = 0u;float _4286 = _3294;if (_4285 < _3263)_3307 = _3417 + (_3422 * _4286);if (abs(_3282 - (_3307.z - (1.0 - textureLod(light_structure, _3307.xy, 0.0).x))) < _3282)_4294 = 1.0;_4287 = _3307;_4286 += _3273;_4285++;_4288 = _3307;_4294 = 0.0;_4287 = _4288;vec2 _3343 = max((abs(_4287.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_4356 = _4287;_4300 = _4284 * (1.0 - (_4294 * clamp(1.0 - dot(_3343, _3343), 0.0, 1.0)));_4356 = _4291;_4300 = _4284;_4355 = _4356;_4299 = _4300;_4355 = _4291;_4299 = _4284;_4354 = _4355;_4298 = _4299;_4354 = _4291;_4298 = 1.0;if (_3068 <= 0.0)_4316 = _4255;vec3 _3455 = normalize(_2360 + _3057);float _3458 = clamp(_3068, 0.0, 1.0);float _3462 = clamp(dot(_2354, _3455), 0.0, 1.0);float _3607 = (_3458 * sqrt(((_2416 - _2416) * _2416) + 1.0)) + (_2416 * sqrt(((_3458 - _3458) * _3458) + 1.0));float _3627 = 1.0 - clamp(dot(_3057, _3455), 0.0, 1.0);float _3636 = _3627 * _3627;_4316 = _4255 + ((((_2509 * 0.3183098733425140380859375) + (((vec3(0.039999999105930328369140625) + (vec3(0.959999978542327880859375) * ((_3636 * _3636) * _3627))) * (0.15915493667125701904296875 / _3607)) * _2565)) * _4158.xyz) * (((_3124 * _4283) * _3458) * _4298));fragColor = vec4(_4255, 1.0);vec3 _2320 = shading_position - frameUniforms.j;vec4 _4260;float _3695 = length(_2320);float _3698 = max(0.001000000047497451305389404296875, _2320.y);float _3708 = frameUniforms.nz * ((1.0 - exp((-frameUniforms.lz) * _3698)) / _3698);float _3724 = min(max(1.0 - exp2(-(_3708 * max(_3695 - frameUniforms.iz, 0.0))), 0.0), frameUniforms.jz);vec3 _4256;_4256 = frameUniforms.mz * (textureLod(light_iblSpecular, _2320, frameUniforms.cz).xyz * frameUniforms.x);_4256 = frameUniforms.mz;vec3 _3746 = _4256 * _3724;vec3 _4259;_4259 = _3746 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_2320, frameUniforms.p) / _3695, 0.0), frameUniforms.pz) * max(1.0 - exp2(-(_3708 * max(_3695 - frameUniforms.oz, 0.0))), 0.0)));_4259 = _3746;vec3 _3794 = (fragColor.xyz * (1.0 - _3724)) + _4259;_4260 = vec4(_3794.x, _3794.y, _3794.z, fragColor.w);_4260 = fragColor;fragColor = _4260;vec3 _5273;float _5276;uint _5317;bool _5326;vec4 _5406;vec3 _5410;vec4 _5458;float _5459;vec3 _574;vec2 _1486 = vec3(shading_normalizedViewportCoord, _5459).xy;vec4 _1507 = textureGather(light_ssao, _1486, 1);vec4 _1511 = textureGather(light_ssao, _1486, 2);vec2 _1518 = fract((_1486 * vec2(textureSize(light_ssao, 0))) - vec2(0.5));float _1521 = _1518.x;float _1522 = 1.0 - _1521;float _1524 = _1518.y;vec4 _5216 = _5406;_5216.x = _1522 * _1524;vec4 _5220 = _5216;_5220.y = _1521 * _1524;float _1537 = 1.0 - _1524;vec4 _5224 = _5220;_5224.z = _1521 * _1537;vec4 _5228 = _5224;_5228.w = _1522 * _1537;vec4 _5234 = _5406;_5234.x = (_1507.x * 0.996108949184417724609375) + (_1511.x * 0.00389105058275163173675537109375);vec4 _5240 = _5234;_5240.y = (_1507.y * 0.996108949184417724609375) + (_1511.y * 0.00389105058275163173675537109375);vec4 _5246 = _5240;_5246.z = (_1507.z * 0.996108949184417724609375) + (_1511.z * 0.00389105058275163173675537109375);vec4 _5252 = _5246;_5252.w = (_1507.w * 0.996108949184417724609375) + (_1511.w * 0.00389105058275163173675537109375);vec4 _1609 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_5252 * (-frameUniforms.dz))) * frameUniforms.sz;vec4 _1619 = max(vec4(6.103515625e-05), vec4(1.0) - (_1609 * _1609)) * _5228;return dot(textureGather(light_ssao, _1486), _1619) * (1.0 / (((_1619.x + _1619.y) + _1619.z) + _1619.w));return textureLod(light_ssao, _1486, 0.0).x;ivec2 _1818 = textureSize(light_iblSpecular, int(frameUniforms.cz));vec3 _1832 = normalize(cross(n, vec3(0.0, 1.0, 0.0)));vec3 _1839 = _1832 * (1.0 / float(_1818.x));vec3 _1843 = cross(_1832, n) * (1.0 / float(_1818.y));vec3 _1846 = n - _1839;vec3 _1851 = n + _1839;return (((textureLod(light_iblSpecular, _1846 - _1843, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1851 - _1843, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1851 + _1843, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1846 + _1843, frameUniforms.cz).xyz) * 0.25;float _2040 = dot(lightDirection, shading_reflected);vec3 _5407;if (_2040 < frameUniforms.m.x)_5407 = normalize((lightDirection * frameUniforms.m.x) + (normalize(shading_reflected - (lightDirection * _2040)) * frameUniforms.m.y));_5407 = shading_reflected;return _5407;float _4908 = clamp(dot(shading_normal, frameUniforms.p), 0.0, 1.0);vec4 _4923 = frameUniforms.g[cascade] * vec4(shading_position + (shading_normal * (sqrt(1.0 - (_4908 * _4908)) * frameUniforms.r.y)), 1.0);return vec3(_4923.xy * (1.0 / _4923.w), _4923.z);float _2152;vec3 _4351 = sampleSunAreaLight(frameUniforms.p);float _4358 = clamp(dot(shading_normal, _4351), 0.0, 1.0);if (_4358 > 0.0)bvec4 _4375 = 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 _4385 = clamp(uint(dot(vec4(_4375.x ? vec4(1.0).x : vec4(0.0).x, _4375.y ? vec4(1.0).y : vec4(0.0).y, _4375.z ? vec4(1.0).z : vec4(0.0).z, _4375.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u);float _5411;if (((frameUniforms.fz & 1u) != 0u) && ((frameUniforms.rz & ((1u << _4385) << 8u)) != 0u))uint param = _4385;vec3 _2125 = getCascadeLightSpacePosition(param);vec4 _4418 = texture(light_shadowMap, vec3(_2125.xy, float(_4385)));float _4422 = min(_2125.z, 1.0);float _4432 = _4418.x;float _4437 = max(_4418.y - (_4432 * _4432), 9.9999997473787516355514526367188e-06);float _4439 = _4422 - _4432;_5411 = (_4422 <= _4432) ? 1.0 : clamp(((_4437 / (_4437 + (_4439 * _4439))) - 0.20000000298023223876953125) * 1.25, 0.0, 1.0);_5411 = 1.0;float _5419;if (((frameUniforms.fz & 2u) != 0u) && (_5411 > 0.0))float _5421;uint _4485 = (frameUniforms.fz >> 8u) & 255u;vec4 _4595 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _4602 = frameUniforms.e * vec4(shading_position + (_4351 * frameUniforms.hz), 1.0);vec4 _4608 = _4595 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0));vec3 _4614 = _4595.xyz * (1.0 / _4595.w);vec3 _4639 = (_4614 * 0.5) + vec3(0.5);vec3 _4644 = (((_4602.xyz * (1.0 / _4602.w)) * 0.5) + vec3(0.5)) - _4639;float _4495 = 1.0 / float(_4485);float _4504 = (abs((_4608.xyz * (1.0 / _4608.w)).z - _4614.z) * _4495) * 0.5;float _4516 = (_4495 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _4495;vec3 _5415;_5415 = _5410;vec3 _4529;vec3 _5414;float _5417;uint _5412 = 0u;float _5413 = _4516;if (_5412 < _4485)_4529 = _4639 + (_4644 * _5413);if (abs(_4504 - (_4529.z - (1.0 - textureLod(light_structure, _4529.xy, 0.0).x))) < _4504)_5417 = 1.0;_5414 = _4529;_5413 += _4495;_5412++;_5415 = _4529;_5417 = 0.0;_5414 = _5415;vec2 _4565 = max((abs(_5414.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_5421 = _5417 * clamp(1.0 - dot(_4565, _4565), 0.0, 1.0);_5421 = 0.0;_5419 = _5421;_5419 = 0.0;_2152 = _5411 * (1.0 - _5419);vec3 _4677 = normalize(shading_view + _4351);float _4680 = clamp(_4358, 0.0, 1.0);float _4684 = clamp(dot(shading_normal, _4677), 0.0, 1.0);float _4772 = _4684 * pixel.roughness;float _4779 = pixel.roughness / ((1.0 - (_4684 * _4684)) + (_4772 * _4772));float _4802 = pixel.roughness * pixel.roughness;float _4849 = 1.0 - clamp(dot(_4351, _4677), 0.0, 1.0);float _4858 = _4849 * _4849;color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_4858 * _4858) * _4849))) * (((_4779 * _4779) * 0.3183098733425140380859375) * (0.5 / ((_4680 * sqrt(((shading_NoV - (_4802 * shading_NoV)) * shading_NoV) + _4802)) + (shading_NoV * sqrt(((_4680 - (_4802 * _4680)) * _4680) + _4802)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _4680) * _2152));vec3 _5271;vec3 _5270;_5270 = vertex_worldNormal;_5270 = -vertex_worldNormal;_5271 = _5270;_5271 = vertex_worldNormal;shading_normal = normalize(_5271);vec3 _2852 = variable_colorFromSh.xyz * 1.0;vec4 _2923 = textureLod(light_iblDFG, vec2(shading_NoV, 1.0), 0.0);vec3 _2908 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2923.y) - 1.0));float _2959 = min(1.0, evaluateSSAO());float _3052 = clamp((pow(shading_NoV + _2959, 7.62939453125e-06) - 1.0) + _2959, 0.0, 1.0);vec3 _3060 = mix(_2923.xxx, _2923.yyy, vec3(0.039999999105930328369140625));vec3 _2768 = (((((_2852 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _3060)) * 1.0) * max(vec3(_2959), ((((((_2852 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2959) + ((_2852 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2959) + ((_2852 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2959)) + (((_3060 * textureLod(light_iblSpecular, shading_normal, frameUniforms.cz).xyz) * (_2908 * 1.0)) * max(vec3(_3052), ((((vec3(-0.250783979892730712890625) * _3052) + vec3(0.449896037578582763671875)) * _3052) + vec3(0.800507962703704833984375)) * _3052))) * frameUniforms.x;evaluateDirectionalLight(MaterialInputs(vec4(variable_colorFromSh.x, variable_colorFromSh.y, variable_colorFromSh.z, vec4(0.0, 0.0, 0.0, 1.0).w), 1.0, 0.0, 0.5, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _5273, _5276, _5276, _5276, _5276, _5273), PixelParams(_2852, 1.0, 1.0, vec3(0.039999999105930328369140625), 1.0, _2923.xyz, _2908), _2768);float _3260 = 1.0 - gl_FragCoord.z;uvec2 _3299 = uvec2((vec3(shading_normalizedViewportCoord, _3260).xy * frameUniforms.i.xy) * vec2(frameUniforms.w, frameUniforms.s));uint _3284 = ((_3299.x * frameUniforms.q) + (_3299.y * frameUniforms.u.x)) + (uint(max(0.0, (log2((frameUniforms.t.x * _3260) + frameUniforms.t.y) * frameUniforms.t.z) + frameUniforms.t.w)) * frameUniforms.u.y);uvec4 _3331 = texelFetch(light_froxels, ivec2(int(_3284 & 63u), int(_3284 >> 6u)), 0);uint _3334 = _3331.x;uint _3199 = _3334 + (_3331.y & 255u);vec3 _5304;vec3 _5340;_5340 = _5273;_5304 = _2768;uint _5314;uint _5319;bool _5323;bool _5328;vec3 _5365;vec3 _5403;uint _5315;uint _5320;bool _5324;bool _5329;for (uint _5303 = _3334; _5303 < _3199; _5340 = _5403, _5329 = _5328, _5324 = _5323, _5320 = _5319, _5315 = _5314, _5304 = _5365, _5303++)uvec4 _3369 = texelFetch(light_records, ivec2(int(_5303 & 31u), int(_5303 >> 5u)), 0);uint _3370 = _3369.x;vec3 _3387 = lightsUniforms.a[_3370][0].xyz - vertex_worldPosition;float _3467 = lightsUniforms.a[_3370][1].w * frameUniforms.y;vec4 _5197 = vec4(lightsUniforms.a[_3370][1].x, lightsUniforms.a[_3370][1].y, lightsUniforms.a[_3370][1].z, _5458.w);_5197.w = _3467;vec3 _3400 = normalize(_3387);float _3474 = dot(_3387, _3387);float _3489 = _3474 * lightsUniforms.a[_3370][0].w;float _3494 = clamp(1.0 - (_3489 * _3489), 0.0, 1.0);float _3482 = (_3494 * _3494) / max(_3474, 9.9999997473787516355514526367188e-05);float _3411 = clamp(dot(shading_normal, _3400), 0.0, 1.0);float _5332;if (floatBitsToUint(lightsUniforms.a[_3370][3].w) == 1u)float _3508 = clamp((dot(-lightsUniforms.a[_3370][2].xyz, _3400) * lightsUniforms.a[_3370][3].x) + lightsUniforms.a[_3370][3].y, 0.0, 1.0);uint _3436 = floatBitsToUint(lightsUniforms.a[_3370][3].z);_5332 = _3482 * (_3508 * _3508);_5328 = (_3436 & 1u) != 0u;_5323 = ((_3436 >> 1u) & 1u) != 0u;_5319 = (_3436 >> 2u) & 15u;_5314 = (_3436 >> 6u) & 15u;_5332 = _3482;_5328 = _5329;_5323 = _5324;_5319 = _5320;_5314 = _5315;float _5347;if (_3411 > 0.0)float _5333;if (_5328)vec4 _3539 = texture(light_shadowMap, vec3(vertex_spotLightSpacePosition[_5319].xy * (1.0 / vertex_spotLightSpacePosition[_5319].w), float(_5314)));float _3543 = min(vertex_spotLightSpacePosition[_5319].z, 1.0);float _3553 = _3539.x;float _3558 = max(_3539.y - (_3553 * _3553), 9.9999997473787516355514526367188e-06);float _3560 = _3543 - _3553;_5333 = (_3543 <= _3553) ? 1.0 : clamp(((_3558 / (_3558 + (_3560 * _3560))) - 0.20000000298023223876953125) * 1.25, 0.0, 1.0);_5333 = 1.0;float _5348;vec3 _5404;if (_5323 && (_5333 > 0.0))float _5349;vec3 _5405;uint _3606 = (frameUniforms.fz >> 8u) & 255u;vec4 _3716 = frameUniforms.e * vec4(shading_position, 1.0);vec4 _3723 = frameUniforms.e * vec4(shading_position + (_3400 * frameUniforms.hz), 1.0);vec4 _3729 = _3716 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0));vec3 _3735 = _3716.xyz * (1.0 / _3716.w);vec3 _3760 = (_3735 * 0.5) + vec3(0.5);vec3 _3765 = (((_3723.xyz * (1.0 / _3723.w)) * 0.5) + vec3(0.5)) - _3760;float _3616 = 1.0 / float(_3606);float _3625 = (abs((_3729.xyz * (1.0 / _3729.w)).z - _3735.z) * _3616) * 0.5;float _3637 = (_3616 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _3616;vec3 _5337;_5337 = _5340;vec3 _3650;vec3 _5336;float _5343;uint _5334 = 0u;float _5335 = _3637;if (_5334 < _3606)_3650 = _3760 + (_3765 * _5335);if (abs(_3625 - (_3650.z - (1.0 - textureLod(light_structure, _3650.xy, 0.0).x))) < _3625)_5343 = 1.0;_5336 = _3650;_5335 += _3616;_5334++;_5337 = _3650;_5343 = 0.0;_5336 = _5337;vec2 _3686 = max((abs(_5336.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0));_5405 = _5336;_5349 = _5333 * (1.0 - (_5343 * clamp(1.0 - dot(_3686, _3686), 0.0, 1.0)));_5405 = _5340;_5349 = _5333;_5404 = _5405;_5348 = _5349;_5404 = _5340;_5348 = _5333;_5403 = _5404;_5347 = _5348;_5403 = _5340;_5347 = 1.0;if (_3411 <= 0.0)_5365 = _5304;vec3 _3798 = normalize(shading_view + _3400);float _3801 = clamp(_3411, 0.0, 1.0);float _3805 = clamp(dot(shading_normal, _3798), 0.0, 1.0);float _3950 = (_3801 * sqrt(((shading_NoV - shading_NoV) * shading_NoV) + 1.0)) + (shading_NoV * sqrt(((_3801 - _3801) * _3801) + 1.0));float _3970 = 1.0 - clamp(dot(_3400, _3798), 0.0, 1.0);float _3979 = _3970 * _3970;_5365 = _5304 + ((((_2852 * 0.3183098733425140380859375) + (((vec3(0.039999999105930328369140625) + (vec3(0.959999978542327880859375) * ((_3979 * _3979) * _3970))) * (0.15915493667125701904296875 / _3950)) * _2908)) * _5197.xyz) * (((_3467 * _5332) * _3801) * _5347));fragColor = vec4(_5304, 1.0);bvec4 _4020 = 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(_4020.x ? vec4(1.0).x : vec4(0.0).x, _4020.y ? vec4(1.0).y : vec4(0.0).y, _4020.z ? vec4(1.0).z : vec4(0.0).z, _4020.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u);vec3 _2652 = fragColor.xyz * uintToColorDebug(param);fragColor = vec4(_2652.x, _2652.y, _2652.z, fragColor.w);vec3 _2658 = shading_position - frameUniforms.j;vec4 _5309;float _4085 = length(_2658);float _4088 = max(0.001000000047497451305389404296875, _2658.y);float _4098 = frameUniforms.nz * ((1.0 - exp((-frameUniforms.lz) * _4088)) / _4088);float _4114 = min(max(1.0 - exp2(-(_4098 * max(_4085 - frameUniforms.iz, 0.0))), 0.0), frameUniforms.jz);vec3 _5305;_5305 = frameUniforms.mz * (textureLod(light_iblSpecular, _2658, frameUniforms.cz).xyz * frameUniforms.x);_5305 = frameUniforms.mz;vec3 _4136 = _5305 * _4114;vec3 _5308;_5308 = _4136 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_2658, frameUniforms.p) / _4085, 0.0), frameUniforms.pz) * max(1.0 - exp2(-(_4098 * max(_4085 - frameUniforms.oz, 0.0))), 0.0)));_5308 = _4136;vec3 _4184 = (fragColor.xyz * (1.0 - _4114)) + _5308;_5309 = vec4(_4184.x, _4184.y, _4184.z, fragColor.w);_5309 = fragColor;fragColor = _5309;LSLG_TAM
L( ¨  ì ´
–Øz`¸	¸
¸¸
¨ž¨ ¸!¸ Ø!!x#"¨%#¶'%P*&Ø-'1Eú5F9Gà;P PN@X¸eä@fLDgVGuÀ	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDE=FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrslmtmuvmwxyz{|}~€‚ƒ„lm…†‡ˆ‰Š‹ŒŽ‘’lm“mu”m•–—˜™š›œžŸ ¡¢£¤¥¦ml©	

 !"#$%&'()*+,-./0123456?@ABCDE=FGHI§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓmuÔmmÕÖרÙÚÛÜÝmuÞmm]ßàáâãmuämåmuæmçèéêëìíîïðm_ññòóôõö÷øùúûüýþÿóþ	

 !"#$%&'()*+,-./0123456?@ABCDE=FGHI§¨©ª«¬­®¯°±²³´	

·¹ !"#$%&'(mu)mmÕÖ*+,-./0muÞmm123456mu7m8m9m:;<=>m?@ABCDEFGm]HàIâJmuKmLmuMmèNéOPQRSTUVWXYZmåà	

 !"#$%&'()*+,-./0123456?@ABCDE=FGHI[\]§¨©^_ª«¬­®¯°±²³´`ab·c¹defghijklmnopqrstuvwxyz{|}mu~mmÕÖ€‚ƒ„…muÞmm]†à‡âˆmu‰mŠmu‹mŒèéŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®mu¯m°±lm²³´µ¶·¸m¹mÏ'&ñòóôõö÷øùúûüýþÿóþ	

 !"#$%&'()*+,-./0123456?@ABCDE=FGHI[\]§¨©^_ª«¬­®¯°±²³´	º»¼½¾·¿¹ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙmuÚmmÕÖÛÜÝÞßàámuÞmm12âãäåmuæmçm9m:èéê>mëìíîïðñòóm]ôàõâömu÷mømuùmèNéúPQûüýþÿ	

mumlm !"#$%&m'm™Ã	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDE=FGHIJKLMNOPQRSTUVWXYZ[(\])_*+,-d./01234lm56789:lm;mu<m=x>?@ABCDEFGHIlmJKLMNOPQRSTUVWlmXmuYmZ[\]^_`abŸ ¡c£def¥¦mþ1ñòóôõö÷øùúûüýþÿóþ	

 !"#$%&'()*+,-./0123456?@ABCDE=FGHI789:;<=>g§¨©hiª«¬­®¯°±²´³	jklmno·p¹qrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Šmu‹mmÕÖŒŽ‘’muÞmm12“”•–mu—m˜m9m™š›mœžm:Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾mu¿mÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛmÜÝÞlmußàÛmmáâmuãmämuåmæmu>mçèéêëìíîïmðñòmuóômuõömu÷ømuùúmuûümmmmmmm]ýàþâÿmummumèNéPQ	

mmZÍ	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDE=FGHIJKLMNOPQRSTUVWXYZ[\]_d !"lm#$%&'(lm)mu*m+x,-./01234567lm89:;<=>?@ABCDElmFmuGmHIJKLMNOPŸ ¡Q£RSTUlmV¥¦m¼,o	

 !"#$%&'()*+,-./0123456?@ABCDE=FGHI[\]789:;<=>g§¨©^_hWª«¬­®¯°±²³´XYZ[\]·^¹_`abcdefghijklmnopqrstuvwxmuymmÕÖz{|}~€muÞmm]à‚âƒmu„m…mu†m‡èˆé‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹muº»¼½¾m¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙmuÚmÛÜÝÞßÃàáâãäåæçèéêëìíîïðÕñòóôõÛmö÷ølmuùúÛmmûüýmuþÿmmummum	lm

mm†Ð	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDE=FGHIJKLMNOPQRSTUVWXYZ[(\]_dlm !"#lm$mu%m&x'()*+,-./012lm3456789:;<=>?@lmAmuBmCDEFGHIJKŸ ¡L£MNOPQRlmS¥¦mMITñòóôõö÷øùúûüýþÿóþ	

 !"#$%&'()*+,-./0123456?@ABCDE=FGHI789:;<=>[\]g§¨©h^_iWª«¬­®¯°±²´³	TUVWXYZ[\·]¹^_`abcdefghijklmnopqrstuvwmuxmmÕÖyz{|}~muÞmm12€‚ƒmu„m…m9m™š›m†‡ˆm:‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨mu©mª«¬Ã­®¯°±²³´µ¶·¸¹º»¼½Õ¾¿ÀÁÂÛmÃÄÅlmuÆÇÛmmÈÉmuÊmËmuÌmÍmu>mÎÏÐÑÒÓÔÕÖmðñòmuóômuõömu÷ømuùúmuûümmmmmmm]×àØâÙmuÚmÛmuÜmèNéÝPQÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ	

mum !"#$%&'()*+,-./mu0m12345Ã6789:;<=>?@ABCDEFÕGHIJKÛmLMNlmuOPÛmmQRSmuTUmVWmuXYmZ[mu\]m^_lm`abcdefmg
hijkmmŽô	

 !"#$%&'()*+,-./0123456789:;<=>lmn?@ABCDE=FGHIJKLMNopOPQRSTUVWXYZ[\]qrsmutmuvwxyz{|}~€mu‚mƒ„…w†‡ˆ‰Š‹ŒŽmum_‘’“d”•–—˜™šlm›œžŸ lm¡mu¢m£x¤¥¦§¨©ª«¬­®¯lm°±²³´µ¶·¸¹º»¼½lm¾mu¿mÀÁÂÃÄÅÆÇÈŸ ¡ÉÊË¥¦m¶÷	

 !"#$%&'()*+,-./0123456789:;<=>lmn?@ABCDE=FGHIJKLMNopOPQRSTUVWXYZ[(\]ÌrÍmuÎmÏÐÑÒÓÔÕÖרÙÚÛmuÜmÝÞßÑàáâãäåæçèmuém_êëìídîïðñòóôlmõö÷øùúlmûmuümýxþÿ	lm

lmmum !"Ÿ ¡#$%&'¥¦m„	

 !"#$%&'()*+,-./0123456789:;<=>lmn?@ABCDE=FGHIJKLMNopOPQRSTUVWXYZ[\](r)mu*m+,-./01234567mu8m9:;-<=>?@ABCDmuEm_FGHIdJKLMNOPlmQRSTUVlmWmuXmYxZ[\]^_`abcdelmfghijklmnopqrslmtmuumvwxyz{|}~Ÿ ¡€‚ƒ„lm…¥¦m¤	

 !"#$%&'()*+,-./0123456789:;<=>lmn?@ABCDE=FGHIJKLMNopOPQRSTUVWXYZ[(\]†r‡muˆm‰Š‹ŒŽ‘’“”•mu–m—˜™‹š›œžŸ ¡¢mu£m_¤¥¦§d¨©ª«¬­®lm¯°±²³´lmµmu¶m·x¸¹º»¼½¾¿ÀÁÂÃlmÄÅÆÇÈÉÊËÌÍÎÏÐÑlmÒmuÓmÔÕÖרÙÚ۝ܟ ¡ÝÞßàáâãälm奦m•«ª¬¯­°±²]mgÌ	

 !"#$%&'()*+,-./0123456?@ABCDE=FGHI©§¨ª«¬­®¯°±²´³æç·è¹éêëìíîïðñòóôõö÷øùúûüýþÿmummÕÖ	
muÞmm]àâ
mummumèé !"mu#m$%&'mu(m)*mu+m,mc"ñòóôõö÷øùúûüýþÿóþ	

 !"#$%&'()*+,-./0123456?@ABCDE=FGHI©§¨ª«¬­®¯°±²´³	-./0·1¹23456789:;<=>?@ABCDEFGHIJKmuLmmÕÖMNOPQRSmuÞmm12TUVWmuXmYm9m:Z[\>m]^_`abcdem]fàgâhmuimjmukmèNélPQmnopqrstuvwxyz{|!}mu~m€&mu‚mƒ„mu…m†mì!	

 !"#$%&'()*+,-./0123456?@ABCDE=FGHI[\]©§¨^_ª«¬­®¯°±²´³‡ˆ‰·Š¹‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤mu¥mmÕÖ¦§¨©ª«¬muÞmm]­à®â¯mu°m±mu²m³è´éµ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕmuÖmרlmÙÚÛÜÝÞßmàáâãäåæç!èmuémêë&ìmuímîïmuðmñmä+Iñòóôõö÷øùúûüýþÿóþ	

 !"#$%&'()*+,-./0123456?@ABCDE=FGHI[\]©§¨^_ª«¬­®¯°±²´³	òóôõö·÷¹øùúûüýþÿ	

mummÕÖmuÞmm12mumm9m: !">m#$%&'()*+m],à-â.mu/m0mu1mèNé2PQ3456789:;<=>?@ABCDEFGHIJKLMNOPQRSTmuUmVWlmXYZ[\]^m_`abcdef!gmuhmij&kmulmmnmuompmù5Àñòóôõö÷øùúûüýþÿóþ	

 !"#$%&'()*+,-./0123456?@ABCDE=FGHI789:;<=>©g§¨hiª«¬­®¯°±²´³	qrsítu·v¹wxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽmu‘mmÕÖ’“”•–—˜muÞmm12™š›œmumžm9m™š›mŸ ¡m:¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁmuÂmÃÄ¿ÃÅÆÇÈÉÊËÌÍÎÏÐÑ—îÒÓÕÔÕÖô×ÛmØÙÚlmuùÛÛmmÜÝmuÞmßmuàmámu>mâãäåæçèéêmðñòmuóômuõömu÷ømuùúmuûümmmmmmm]ëàìâímuîmïmuðmèNéñPQòóôõö÷øùú
ûüýþmÿ						!	mu	m			&
	mu	m	
	mu	m	m·0’	

 !"#$%&'()*+,-./0123456?@ABCDE=FGHI[\]789:;<=>©g§¨^_hWª«¬­®¯°±²´³						·	¹									 	!	"	#	$	%	&	'	(	)	*	+	,	-	.	/	0	mu1	mmÕÖ2	3	4	5	6	7	8	muÞmm]9	à:	â;	mu<	m=	mu>	m?	è@	é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	mur	s	t	u	v	mw	x	y	z	{	|	}	~		€		‚	ƒ	„	…	†	‡	ˆ	‰	Š	‹	Œ		Ž			‘	mu’	m“	”	•	–	—	Ø	™	š	›	œ		ž	Ÿ	 	¡	¢	£	¤	¥	¦	§	¨	Õ©	ª	«	¬	­	Ûm®	¯	°	lmu±	²	Ûmm³	´	µ	mu¶	·	m¸	¹	muº	»	m¼	½	mu¾	¿	mÀ	Á	lmÂ	Ã	Ä	Å	Æ	Ç	È	mÉ	Ê	Ë	Ì	Í	Î	Ï	Ð	!Ñ	muÒ	mÓ	Ô	&Õ	muÖ	m×	Ø	muÙ	mÚ	mHMwñòóôõö÷øùúûüýþÿóþ	

 !"#$%&'()*+,-./0123456?@ABCDE=FGHI789:;<=>[\]©g§¨h^_iWª«¬­®¯°±²´³	Û	Ü	Ý	Þ	ß	à	á	â	ã	·ä	¹å	æ	ç	è	é	ê	ë	ì	í	î	ï	ð	ñ	ò	ó	ô	õ	ö	÷	ø	ù	ú	û	ü	ý	þ	muÿ	mmÕÖ






muÞmm12

	


mu
m
m9m™š›m


m:















 
!
"
#
$
%
&
'
(
)
*
+
,
-
.
/
mu0
m1
2
3
Ã4
5
6
7
8
9
:
;
<
=
>
?
@
A
B
C
D
ÕE
F
G
H
I
ÛmJ
K
L
lmuM
N
ÛmmO
P
muQ
mR
muS
mT
mu>mU
V
W
X
Y
Z
[
\
]
mðñòmuóômuõömu÷ømuùúmuûümmmmmmm]^
à_
â`
mua
mb
muc
mèNéd
PQe
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~

€

‚
ƒ
„
…
†
‡
ˆ
‰
Š
‹
Œ

Ž


‘
’
“
”
•
–
mu—
˜
™
š
›
mœ

ž
Ÿ
 
¡
¢
£
¤
¥
¦
§
¨
©
ª
«
¬
­
®
¯
°
±
²
³
´
µ
¶
mu·
m¸
¹
º
»
¼
ý
¾
¿
À
Á
Â
Ã
Ä
Å
Æ
Ç
È
É
Ê
Ë
Ì
Í
ÕÎ
Ï
Ð
Ñ
Ò
ÛmÓ
Ô
Õ
lmuÖ
×
ÛmmØ
Ù
Ú
muÛ
Ü
mÝ
Þ
muß
à
má
â
muã
ä
må
æ
lmç
è
é
ê
ë
ì
í
mî

ï
ð
ñ
ò
mó
ô
õ
ö
÷
ø
ù
!ú
muû
mü
ý
&þ
muÿ
mmumm³.ñòóôõö÷øùúûüýþÿóþ	

 !"#$%&'()*+,-./0123456?@ABCDE=FGHI789:;<=>g§¨©iª«¬­®¯°±²´³		
·¹
 !"#$%mu&mmÕÖ'()*+,-muÞmm12./01mu2m3m9m™š4m567m:89:;<=>?@ABCDEFGmuHmIJKÃLMNOPQRSTUVWXYZ[\Õ]^_`aÛmbcdlmuefÛmmghmuimjmukmlmu>mmnopqrstumðñòmuóômuõömu÷ømuùúmuûümmmmmmm]vàwâxmuymzmu{mèNé|PQ}~€‚ƒ„…
†‡ˆ‰mmH)^	

 !"#$%&'()*+,-./0123456?@ABCDE=FGHI[\]789:;<=>g§¨©^_Wª«¬­®¯°±²³´Š‹ŒŽ·¹‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ªmu«mmÕÖ¬­®¯°±²muÞmm]³à´âµmu¶m·mu¸m¹èºé»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëmuìíîïðmñòóôõö÷øùúmuûmüýþÿþÃ	

ÕÛmlmuÛmmmum !mu"#m$%mu&'m()lm*+,-./0m1m”B3ñòóôõö÷øùúûüýþÿóþ	

 !"#$%&'()*+,-./0123456?@ABCDE=FGHI789:;<=>[\]g§¨©^_iWª«¬­®¯°±²´³	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muVmmÕÖWXYZ[\]muÞmm12^_`amubmcm9m™š4mdefm:ghijklmnopqrstuvmuwmxyzÃ{|}~€‚ƒ„…†‡ˆ‰Š‹ÕŒŽÛm‘’“lmu”•Ûmm–—mu˜m™mušm›mu>mœžŸ ¡¢£¤mðñòmuóômuõömu÷ømuùúmuûümmmmmmm]¥à¦â§mu¨m©muªmèNé«PQ¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝmuÞßàáâmãäåæçèéêëìmuímîïðñòÃóôõö÷øùúûüýþÿ



Õ




Ûm	


lmu


Ûmm


mu

m

mu

m

mu

m

lm


 
!
"
#
m$

%
&
'
(
mmG	

 !"#$%&'()*+,-./0123456«®ª¬¯­°±²])
*
+
,
m®2°ñòóôõö÷øùúûüýþÿóþ	

 !"#$%&'()*+,-./0123456?@ABCDE=FGHI789:;<=>©g§¨iª«¬­®¯°±²´³	-
.
/
0
1
2
·3
¹4
5
6
7
8
9
:
;
<
=
>
?
@
A
B
C
D
E
F
G
H
I
J
K
L
M
muN
mmÕÖO
P
Q
R
S
T
U
muÞmm12V
ÉW
X
muY
mZ
m9m™š4m[
\
]
m:^
_
`
a
b
c
d
e
f
g
h
i
j
k
l
m
mun
mo
p
q
Ãr
s
t
u
v
w
x
y
z
{
|
}
~

€

‚
Õƒ
„
…
†
‡
Ûmˆ
‰
Š
lmu‹
%ÛmmŒ

muŽ
m
mu
m‘
mu>m’
“
”
•
–
—
˜
™
š
mðñòmuóômuõömu÷ømuùúmuûümmmmmmm]›
àœ
â
muž
mŸ
mu 
mèNé¡
PQ¢
£
¤
¥
¦
§
¨
©
ª

«
¬
­
®
m¯
°
±
²
³
´
!µ
mu¶
m·
&¸
mu¹
mº
»
mu¼
m½
mC-	

 !"#$%&'()*+,-./0123456?@ABCDE=FGHI[\]789:;<=>©g§¨^_Wª«¬­®¯°±²´³¾
¿
À
Á
Â
Ã
·Ä
¹Å
Æ
Ç
È
É
Ê
Ë
Ì
Í
Î
Ï
Ð
Ñ
Ò
Ó
Ô
Õ
Ö
×
Ø
Ù
Ú
Û
Ü
Ý
Þ
muß
mmÕÖà
á
â
ã
ä
å
æ
muÞmm]ç
àè
âé
muê
më
muì
mí
èî
éï
ð
ñ
ò
ó
ô
õ
ö
÷
ø
ù
ú
û
ü
ý
þ
ÿ
	

mu !"#$m%&'()*+,-.mu/m0123–Ã456789:;<=>?@ABCDÕEFGHIÛmJKLlmuMNÛmmOPQmuRSmTUmuVWmXYmuZ[m\]lm^_`abcdmefghijkl!mmunmop&qmurmstmuumvmFVñòóôõö÷øùúûüýþÿóþ	

 !"#$%&'()*+,-./0123456?@ABCDE=FGHI789:;<=>[\]©g§¨^_iWª«¬­®¯°±²´³	wxyz{|}~·€¹‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™šmu›mmÕÖœžŸ ¡¢muÞmm12£¤¥¦mu§m¨m9m™š4m©ª«m:¬­®¯°±²³´µ¶·¸¹º»mu¼m½¾¿ÃÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÕÑÒÓÔÕÛmÖרlmuÙÚÛmmÛÜmuÝmÞmußmàmu>máâãäåæçèémðñòmuóômuõömu÷ømuùúmuûümmmmmmm]êàëâìmuímîmuïmèNéðPQñòóôõö÷øùúûüýþÿ	

 !"mu#$%&'m()*+,-./01mu2m34567Ã89:;<=>?@ABCDEFGHÕIJKLMÛmNOPlmuQRÛmmSTUmuVWmXYmuZ[m\]mu^_m`almbcdefghmi
jklmmnopqrst!umuvmwx&ymuzm{|mu}m~m