vulkan[21] vulkan-b05ec6154560da175c08a0b59ae9687c
// VULKAN[21] source bytes (12740) ref=b05ec6154560da175c08a0b59ae9687c
// Spirv source (12416), reflection performed with SPIRV-Cross, KhronosGroup

#version 450

layout(binding = 1, std140) uniform _1085_22044
{
    layout(offset = 272) vec4 _m0;
    layout(offset = 304) vec3 _m1;
    layout(offset = 464) float _m2;
} _22044;

layout(binding = 0, std140) uniform _922_18812
{
    layout(offset = 0) vec3 _m0;
    layout(offset = 16) vec3 _m1;
    layout(offset = 28) float _m2;
    layout(offset = 32) vec3 _m3;
    layout(offset = 44) float _m4;
    layout(offset = 48) vec3 _m5;
    layout(offset = 60) float _m6;
    layout(offset = 64) vec3 _m7;
    layout(offset = 76) float _m8;
    layout(offset = 80) vec3 _m9;
    layout(offset = 92) float _m10;
    layout(offset = 96) vec3 _m11;
    layout(row_major, offset = 192) mat4 _m12;
    layout(offset = 256) vec4 _m13;
    layout(offset = 272) vec3 _m14;
    layout(offset = 284) float _m15;
} _18812;

layout(binding = 0, std140) uniform _2617_4930
{
    layout(offset = 0) float _m0;
    layout(offset = 16) vec3 _m1;
    layout(offset = 32) vec3 _m2;
    layout(offset = 48) vec3 _m3;
    layout(offset = 64) vec3 _m4;
    layout(offset = 416) vec3 _m5;
    layout(offset = 432) vec3 _m6;
    layout(offset = 448) vec3 _m7;
    layout(offset = 464) vec3 _m8;
    layout(offset = 480) vec3 _m9;
    layout(offset = 496) vec3 _m10;
    layout(offset = 512) vec3 _m11;
    layout(offset = 528) vec3 _m12;
} _4930;

uniform sampler2D _25261;
uniform sampler2D _25263;
uniform sampler2D _25265;
uniform sampler2D _25267;
uniform sampler2D _25269;
uniform sampler2D _25271;
uniform sampler2D _25273;
uniform sampler2D _25275;
uniform sampler2DShadow _25277;

layout(location = 0) in vec4 _4171;
layout(location = 1) in vec4 _4439;
layout(location = 2) in vec4 _3942;
layout(location = 3) in vec4 _5081;
layout(location = 4) in vec4 _3271;
layout(location = 5) in vec4 _4482;
layout(location = 6) in vec4 _5145;
layout(location = 7) in vec4 _3880;
layout(location = 0) out vec4 _3182;
layout(location = 1) out vec4 _3188;

vec4 _10264;
float _16545;
vec3 _21453;
vec4 _7308;

mat4 spvWorkaroundRowMajor(mat4 wrap) { return wrap; }

void main()
{
    vec3 _17109 = _4439.xyz * (gl_FrontFacing ? 1.0 : (-1.0));
    vec4 _6712 = _10264;
    _6712.x = _17109.x;
    vec4 _16135 = _6712;
    _16135.y = _17109.y;
    vec4 _15220 = _16135;
    _15220.z = _17109.z;
    vec3 _8241 = normalize(_15220.xyz);
    vec4 _20573 = texture(_25263, _5145.zw);
    vec4 _20574 = texture(_25265, _3880.xy);
    vec4 _19405 = texture(_25267, _3880.zw);
    vec3 _17558 = texture(_25261, _5145.xy).xyz * _4930._m1;
    vec4 _21753 = _10264;
    _21753.x = _17558.x;
    vec4 _16136 = _21753;
    _16136.y = _17558.y;
    vec4 _18504 = _16136;
    _18504.z = _17558.z;
    vec3 _17559 = _20573.xyz * _4930._m2;
    vec4 _21754 = _20573;
    _21754.x = _17559.x;
    vec4 _16137 = _21754;
    _16137.y = _17559.y;
    vec4 _18505 = _16137;
    _18505.z = _17559.z;
    vec3 _17560 = _20574.xyz * _4930._m3;
    vec4 _21755 = _20574;
    _21755.x = _17560.x;
    vec4 _16138 = _21755;
    _16138.y = _17560.y;
    vec4 _18506 = _16138;
    _18506.z = _17560.z;
    vec3 _17561 = _19405.xyz * _4930._m4;
    vec4 _21756 = _19405;
    _21756.x = _17561.x;
    vec4 _16139 = _21756;
    _16139.y = _17561.y;
    vec4 _16116 = _16139;
    _16116.z = _17561.z;
    float _20025 = _20573.w;
    float _7380 = smoothstep(max(0.0, _20025 - _3271.x), min(1.0, _20025 + _3271.x), _5081.x);
    float _16584 = 1.0 - _7380;
    float _21190 = _20574.w;
    float _20617 = clamp(smoothstep(max(0.0, _21190 - _3271.y), min(1.0, _21190 + _3271.y), _5081.y), 0.0, _16584);
    float _15457 = _16584 - _20617;
    float _12534 = _19405.w;
    float _20579 = clamp(smoothstep(max(0.0, _12534 - _3271.z), min(1.0, _12534 + _3271.z), _5081.z), 0.0, _15457);
    float _16962 = _15457 - _20579;
    vec3 _24904 = _18504.xyz * _16962;
    vec4 _6713 = _10264;
    _6713.x = _24904.x;
    vec4 _16140 = _6713;
    _16140.y = _24904.y;
    vec4 _17621 = _16140;
    _17621.z = _24904.z;
    vec3 _22630 = _17621.xyz + (_18505.xyz * _7380);
    vec4 _24984 = _10264;
    _24984.x = _22630.x;
    vec4 _16141 = _24984;
    _16141.y = _22630.y;
    vec4 _17622 = _16141;
    _17622.z = _22630.z;
    vec3 _22631 = _17622.xyz + (_18506.xyz * _20617);
    vec4 _24985 = _10264;
    _24985.x = _22631.x;
    vec4 _16142 = _24985;
    _16142.y = _22631.y;
    vec4 _17623 = _16142;
    _17623.z = _22631.z;
    vec3 _22632 = _17623.xyz + (_16116.xyz * _20579);
    vec4 _24986 = _10264;
    _24986.x = _22632.x;
    vec4 _16143 = _24986;
    _16143.y = _22632.y;
    vec4 _16424 = _16143;
    _16424.z = _22632.z;
    vec3 _19142 = _16424.xyz * _3942.xyz;
    vec3 _23029 = vec3(texture(_25269, _5145.xy).wy, 1.0);
    vec4 _15733 = _10264;
    _15733.w = dot(_4930._m5, _23029);
    vec4 _7214 = _15733;
    _7214.y = dot(_4930._m6, _23029);
    vec3 _23030 = vec3(texture(_25271, _5145.zw).wy, 1.0);
    vec4 _15734 = _10264;
    _15734.w = dot(_4930._m7, _23030);
    vec4 _7215 = _15734;
    _7215.y = dot(_4930._m8, _23030);
    vec3 _23031 = vec3(texture(_25273, _3880.xy).wy, 1.0);
    vec4 _15735 = _10264;
    _15735.w = dot(_4930._m9, _23031);
    vec4 _7216 = _15735;
    _7216.y = dot(_4930._m10, _23031);
    vec3 _23032 = vec3(texture(_25275, _3880.zw).wy, 1.0);
    vec4 _17196 = _10264;
    _17196.w = dot(_4930._m11, _23032);
    vec4 _14503 = _17196;
    _14503.y = dot(_4930._m12, _23032);
    vec2 _24817 = (((((_7214 * _16962) + (_7215 * _7380)) + (_7216 * _20617)) + (_14503 * _20579)).wy * 2.0) - vec2(1.0);
    vec3 _7526 = _21453;
    _7526.x = _24817.x;
    float _19819 = _24817.y;
    vec3 _17735 = _7526;
    _17735.y = _19819;
    vec3 _7849 = _17735;
    _7849.z = sqrt(clamp(1.0 - dot(_17735.xy, _17735.xy), 0.0, 1.0));
    vec3 _18764 = _7849;
    _18764.y = -_19819;
    vec2 _20105 = _18764.xy * _4930._m0;
    vec3 _6714 = _18764;
    _6714.x = _20105.x;
    vec3 _7350 = _6714;
    _7350.y = _20105.y;
    vec3 _24585 = normalize(_7350);
    vec3 _24571 = normalize(((normalize(_4482.xyz) * _24585.x) + ((normalize(cross(_8241, _4482.xyz)) * _4482.w) * _24585.y)) + (_8241 * _24585.z));
    vec4 _21707 = _10264;
    _21707.x = _19142.x;
    vec4 _16199 = _21707;
    _16199.y = _19142.y;
    vec4 _18255 = _16199;
    _18255.z = _19142.z;
    vec4 _23852 = vec4(_4171.xyz, 1.0);
    vec4 _11050 = spvWorkaroundRowMajor(_18812._m12) * _23852;
    vec3 _13404 = _11050.xyz / vec3(_11050.w);
    float _7628 = _13404.x;
    vec4 _8330 = _10264;
    _8330.x = _7628;
    vec4 _16144 = _8330;
    _16144.y = _13404.y;
    float _19820 = _13404.z;
    vec4 _17336 = _16144;
    _17336.z = _19820;
    float _14468 = clamp(-_19820, 0.0, 1.0);
    float _19863 = -_18812._m13.x;
    vec4 _9263 = vec4(0.1235955059528350830078125, 0.20599250495433807373046875, _19863, 0.0);
    vec4 _20709 = vec4(_16545, _16545, 0.0, _18812._m13.x);
    vec4 _21604 = vec4(_18812._m13.x, _19863, _16545, _16545);
    vec4 _17516 = _7308;
    _17516.x = textureLod(_25277, vec3(vec3(_17336.xy + _21604.xx, _14468).xy, _14468), 0.0);
    vec4 _17517 = _17516;
    _17517.y = textureLod(_25277, vec3(vec3(_17336.xy + _21604.yx, _14468).xy, _14468), 0.0);
    vec4 _17518 = _17517;
    _17518.z = textureLod(_25277, vec3(vec3(_17336.xy + _21604.xy, _14468).xy, _14468), 0.0);
    vec4 _6923 = _17518;
    _6923.w = textureLod(_25277, vec3(vec3(_17336.xy + _21604.yy, _14468).xy, _14468), 0.0);
    vec4 _17519 = _7308;
    _17519.x = textureLod(_25277, vec3(vec3(_17336.xy + _20709.wz, _14468).xy, _14468), 0.0);
    vec4 _17520 = _17519;
    _17520.y = textureLod(_25277, vec3(vec3(_17336.xy + _9263.zw, _14468).xy, _14468), 0.0);
    vec4 _17521 = _17520;
    _17521.z = textureLod(_25277, vec3(vec3(_17336.xy + _9263.wz, _14468).xy, _14468), 0.0);
    vec4 _20038 = _17521;
    _20038.w = textureLod(_25277, vec3(vec3(_17336.xy + _20709.zw, _14468).xy, _14468), 0.0);
    float _19771 = (dot(_6923, vec4(0.07490636408329010009765625)) + dot(_20038, _9263.xxxx)) + (textureLod(_25277, vec3(vec3(_7628, _13404.y, _14468).xy, _14468), 0.0) * 0.20599250495433807373046875);
    float _15023 = clamp(dot(-_18812._m0, _24571), 0.0, 1.0) * _19771;
    vec3 _19161 = _18255.xyz * vec4(((_18812._m1 * _15023) + ((_18812._m9 * _18812._m8) * (mix(1.0, _19771, _18812._m15) * clamp(dot(_18812._m7, _24571), 0.0, 1.0)))) + ((mix(_18812._m14, _18812._m11, vec3((_24571.z * 0.5) + 0.5)) * _18812._m10) * (1.0 - _15023)), _19771).xyz;
    float _10801 = _19161.x;
    vec4 _21757 = _7308;
    _21757.x = _10801;
    float _19864 = _19161.y;
    vec4 _16145 = _21757;
    _16145.y = _19864;
    float _19871 = _19161.z;
    vec4 _15962 = _16145;
    _15962.z = _19871;
    vec4 _11678 = _15962;
    _11678.x = _10801;
    vec4 _15390 = _11678;
    _15390.y = _19864;
    vec4 _18256 = _15390;
    _18256.z = _19871;
    vec4 _8279 = _18256;
    _8279.w = clamp(dot(_22044._m0, _23852) * _22044._m2, 0.0, 1.0);
    _3182 = _8279;
    _3188 = _4171.wwww;
}

// Source metadata (unknown encoding) (324)
[12416]
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 01 00 00 00 00 00 
00 00 CF 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 01 00 00 00 08 00 00 00 00 00 01 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 02 00 01 00 00 00 01 00 00 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 
F1 06 A0 D8