glsl-00b00840b28d9401a1c3876fcd88361b
#version 330 core
// LunarGOO output
#extension GL_ARB_separate_shader_objects : enable
#extension GL_ARB_shading_language_420pack : enable
#extension GL_ARB_texture_cube_map_array : enable
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_viewport_array : enable
struct PointLight_t {
	vec3 vPositionWs;
	float flInvRadius;
	vec3 vValue;
	float flLinearFalloff;
	float flQuadraticFalloff;
	float flLightSourceDimension0;
	float flLightSourceDimension1;
	float flPad;
};
struct SpotLight_t {
	vec3 vPositionWs;
	float flInvRadius;
	vec3 vValue;
	float flLinearFalloff;
	float flQuadraticFalloff;
	float flLightSourceDimension0;
	float flLightSourceDimension1;
	float flThetaDot;
	vec3 vDirectionWs;
	float flPhiDot;
	float flCookieSlice;
	float flUnused0;
	float flUnused1;
	float flUnused2;
};
struct ShadowedSpotLight_t {
	vec3 vPositionWs;
	float flInvRadius;
	vec3 vValue;
	float flLinearFalloff;
	float flQuadraticFalloff;
	float flLightSourceDimension0;
	float flLightSourceDimension1;
	float flThetaDot;
	vec3 vDirectionWs;
	float flPhiDot;
	vec4 vShadowMapBiasAndScale;
	float flCookieSlice;
	float flUnused0;
	float flUnused1;
	float flUnused2;
};
struct EnvMapLight_t {
	vec3 vWorldToLocalRow0;
	float flOriginX;
	vec3 vWorldToLocalRow1;
	float flOriginY;
	vec3 vWorldToLocalRow2;
	float flOriginZ;
	vec3 vBoxMins;
	float flRadius;
	vec3 vBoxMaxs;
	int nEnvProbeId;
	vec3 vPad0;
	float flDiffuseScale;
};
struct SpriteCardLayerBlendParams_t {
	vec4 member0;
	vec4 member1;
	vec3 member2;
	vec4 member3;
	vec4 member4;
};
layout(std140, binding = 2 ) uniform PerViewConstantBuffer_t {
	layout(row_major) mat4 g_matWorldToProjection;
	layout(row_major) mat4 g_matProjectionToWorld;
	layout(row_major) mat4 g_matWorldToView;
	layout(row_major) mat4 g_matViewToProjection;
	vec4 g_vInvProjRow3;
	vec4 g_vClipPlane0;
	float g_flToneMapScalarLinear;
	float g_flLightMapScalar;
	float g_flEnvMapScalar;
	float g_flToneMapScalarGamma;
	vec3 g_vCameraPositionWs;
	float g_flViewportMinZ;
	vec3 g_vCameraDirWs;
	float g_flViewportMaxZ;
	vec3 g_vCameraUpDirWs;
	float g_flTime;
	vec3 g_vDepthPsToVsConversion;
	float g_flNearPlane;
	float g_flFarPlane;
	float g_flLightBinnerFarPlane;
	vec2 g_vInvViewportSize;
	vec2 g_vViewportToGBufferRatio;
	vec2 g_vMorphTextureAtlasSize;
	vec4 g_vInvGBufferSize;
	vec2 g_vViewportOffset;
	vec2 g_vViewportSize;
	vec2 g_vRenderTargetSize;
	float g_flFogBlendToBackground;
	float g_flHenyeyGreensteinCoeff;
	vec3 g_vFogColor;
	float g_flNegFogStartOverFogRange;
	float g_flInvFogRange;
	float g_flFogMaxDensity;
	float g_flFogExponent;
	float g_flMod2xIdentity;
	float g_bStereoEnabled;
	float g_flStereoCameraIndex;
	float g_fInvViewportZRange;
	float g_fMinViewportZScaled;
	vec3 g_vMiddleEyePositionWs;
	float g_flPad2;
	layout(row_major) mat4 g_matWorldToProjectionMultiview[2];
	vec4 g_vCameraPositionWsMultiview[2];
	vec4 g_vFrameBufferCopyInvSizeAndUvScale;
	vec4 g_vCameraAngles;
	vec4 g_vWorldToCameraOffset;
	vec4 g_vWorldToCameraOffsetMultiview[2];
	vec4 g_vPerViewConstantExtraData0;
	vec4 g_vPerViewConstantExtraData1;
	vec4 g_vPerViewConstantExtraData2;
	vec4 g_vPerViewConstantExtraData3;
} ;
layout(std140) uniform SunLightShaderParamsCB {
	vec4 g_vSunLightColor;
	vec3 g_vSunLightDir;
	float g_flSunNormalizedRadius;
	vec4 g_vSunTexParams;
	vec4 g_vSunTexParams2;
	vec4 g_vSunTexParams3;
	layout(row_major) mat4 g_matWorldToShadowTexMatrices[4];
	vec4 g_vCascadeAtlasUVOffsets[4];
	vec4 g_flCascadeViewShadowBiasScales[4];
} ;
uniform sampler2DShadow g_tShadowDepthMapAtlas;
layout( binding = 8 ) uniform sampler2D g_tTotalLightBuffer;
layout(std140, binding = 1 ) uniform PerViewLightingConstantBufferCPU_t {
	vec4 g_vInvLightTextureDims;
	vec4 g_vLightBinCounts;
	vec3 g_vToolsAmbientLighting;
	float g_flSSAOEnabled;
	vec4 g_vGlobalLightingSHRed;
	vec4 g_vGlobalLightingSHGreen;
	vec4 g_vGlobalLightingSHBlue;
	vec3 g_vSpecularCubeMapScale;
	float g_flDefaultEnvMapIndex;
} ;
layout(std140) uniform PerViewLightData_t {
	PointLight_t g_pointLightData[128];
	SpotLight_t g_spotLightData[128];
	ShadowedSpotLight_t g_shadowedSpotLightData[128];
	EnvMapLight_t g_envMapData[128];
} ;
uniform sampler3D g_tLightCookieTexture;
uniform sampler2D g_tLightDepthBuffer;
layout(std140) uniform _Globals_ {
	vec3 g_vTransmissiveColorTint;
	float g_flTransmissiveColorBoost;
	float g_flTransmissiveSoftness;
	float g_flIndirectFresnelReflectance;
	float g_flIndirectFresnelExponent;
} ;
layout(std140, binding = 0 ) uniform SpriteCardPixelControls_t {
	vec4 g_vecPixelControls;
	vec4 g_vecBlendControl;
	vec4 g_vRefractControl;
	vec4 g_vecMotionVectorsControl;
	vec4 g_vColorTransformScale;
	vec4 g_vecOutlineColor;
	vec4 g_vecOutlineRanges;
	vec4 g_vecHSVShiftShadowDensity;
	vec4 g_vecTextureControlsPixel_Base;
	vec4 g_vecTextureControlsPixel_Layer1;
	vec4 g_vecTextureControlsPixel_Layer2;
	vec4 g_vecTextureControlsPixel_Layer3;
	vec4 g_vecTextureControlsPixel_Layer4;
} ;
layout( binding = 6 ) uniform sampler2D g_tBaseTextureClamped;
layout( binding = 7 ) uniform sampler2D g_tBaseTexture;
layout( binding = 0 ) uniform sampler2D g_tBaseTextureNoSRGBClamped;
layout( binding = 1 ) uniform sampler2D g_tBaseTextureNoSRGB;
layout( binding = 2 ) uniform sampler2D g_tTextureLayer1Clamped;
layout( binding = 3 ) uniform sampler2D g_tTextureLayer1;
layout( binding = 4 ) uniform sampler2D g_tTextureLayer2Clamped;
layout( binding = 5 ) uniform sampler2D g_tTextureLayer2;
layout(std140) uniform PerLayerConstantBuffer_t {
	vec4 g_vWireframeColor;
} ;
layout(std140) uniform PerBatchLightProbeVolumeConstantBuffer_t {
	layout(row_major) mat4x3 g_matLightProbeVolumeWorldToLocal;
	vec4 g_vLightProbeVolumeLayer0TextureMin;
	vec4 g_vLightProbeVolumeLayer0TextureMax;
	vec4 g_vLightProbeVolumeColor;
} ;
uniform sampler3D g_tLightProbeVolumeTexture;
uniform sampler3D g_tLightProbeVolumeTextureDirectLightIndices;
uniform sampler3D g_tLightProbeVolumeTextureDirectLightScalars;
uniform sampler2D g_tSheetTexture;
uniform sampler2D g_tParticleSheetTexture;
uniform sampler2D g_tFrameBufferCopyTexture;
uniform sampler2D g_tDepthTexture;
layout(std140) uniform SpritecardVertexControls_t {
	vec4 g_vecRadiusControls;
	vec4 g_vecDepthControlAndRotationCenterData;
	vec4 g_vecOrientationFadeControlData;
	vec4 g_vecTexelSizeControls;
	vec4 g_vecExtraData2;
	vec4 g_vecTextureControlsVertex_Base;
	vec4 g_vecTextureControlsVertex_Layer1;
	vec4 g_vecTextureControlsVertex_Layer2;
	vec4 g_vecTextureControlsVertex_Layer3;
	vec4 g_vecTextureControlsVertex_Layer4;
	vec4 g_vecTextureControlsVertex_Rotation;
	vec4 g_vecTextureVertexFlagsSM3;
	vec4 g_vecTextureVertexFlagsSM3B;
	vec2 g_vSheetSize;
	vec2 g_vSheetDataIndex;
	vec2 g_vTextureLayer1SheetDataIndex;
	vec2 g_vTextureLayer2SheetDataIndex;
	vec2 g_vTextureLayer3SheetDataIndex;
	vec2 g_vTextureLayer4SheetDataIndex;
	vec2 g_vMotionVectorsSheetDataIndex;
	vec2 g_vNormalSheetDataIndex;
} ;
uniform sampler2D g_tInputTexture;
layout(std140) uniform FilterTaps_t {
	vec4 g_vFilterControl;
	vec4 g_vTextureBounds;
	layout(row_major) mat4 g_matOutputTransform;
	vec4 g_vFilterTaps[32];
} ;
layout(location=0) in vec4 PS_INPUT_gl_m_vTexCoords;
layout(location=1) in vec4 PS_INPUT_gl_m_vTintColor;
layout(location=2) in vec3 PS_INPUT_gl_vPositionWs;
layout(location=3) in vec4 PS_INPUT_gl_vPositionCs;
layout(location=4) in vec3 PS_INPUT_gl_vNormalWs;
layout(location=5) in vec4 PS_INPUT_gl_m_vAnimationBlendValues;
layout(location=6) in vec4 PS_INPUT_gl_vLayer1TexCoords;
layout(location=7) in vec4 PS_INPUT_gl_vLayer2TexCoords;
layout(location=0) out vec4 PS_OUTPUT_gl_m_vColor;
const vec3 C_2rmtgp1[15] = vec3[15](vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0, 1.0, 0.0), vec3(1.0, 0.0, 0.0), vec3(1.0, 0.0, 1.0), vec3(0.0), vec3(0.0), vec3(0.0, 1.0, 0.0), vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0));
const vec2 C_fxxkrt1[15] = vec2[15](vec2(1.0, 0.0), vec2(0.0), vec2(0.0, 1.0), vec2(0.0), vec2(1.0, 0.0), vec2(1.0, 0.0), vec2(0.0), vec2(0.0, 1.0), vec2(0.0), vec2(1.0, 0.0), vec2(1.0, 0.0), vec2(1.0, 0.0), vec2(0.0), vec2(0.0), vec2(0.0));
const float C_10d0 = 10.0;
const float C_1d0 = 1.0;
const vec3 C_u1zmzx1 = vec3(-0.00585938, -0.00976563, -0.00585938);
const float C_1000d0 = 1000.0;
const float C_100d0 = 100.0;
const float C_1ea05 = 1e-05;
const float C_10000d0 = 10000.0;
const int C_0 = 0;
const vec4 C_vec4p1d0p = vec4(1.0);
vec3 Lg_v1;
const float C_0d0 = 0.0;
const float C_a0d4 = -0.4;
const float C_4d0 = 4.0;
const float C_0d0625 = 0.0625;
const vec4 C_vec4pa0d5p = vec4(-0.5);
const vec4 C_vec4p0d5p = vec4(0.5);
const int C_1 = 1;
const int C_2 = 2;
const float C_2d0 = 2.0;
const float C_0d125 = 0.125;
const vec2 C_vec2pa0d5p = vec2(-0.5);
const vec2 C_vec2p2d0p = vec2(2.0);
const float C_3d0 = 3.0;
const vec3 C_vec3p12d92p = vec3(12.92);
const vec3 C_3ktjyb = vec3(0.416667);
const vec3 C_vec3p1d055p = vec3(1.055);
const vec3 C_m93d951 = vec3(-0.055);
const float C_0d0031308 = 0.0031308;
const vec3 C_kfumqy1 = vec3(0.2125, 0.7154, 0.0721);
const vec3 C_nsxfnm1 = vec3(0.299, 0.587, 0.114);
const float C_5d0 = 5.0;
const float C_6d0 = 6.0;
const float C_7d0 = 7.0;
const float C_8d0 = 8.0;
const float C_9d0 = 9.0;
const float C_11d0 = 11.0;
const float C_12d0 = 12.0;
const float C_13d0 = 13.0;
const float C_14d0 = 14.0;
const vec4 C_vec4p2d0p = vec4(2.0);
const vec4 C_vec4p0d0p = vec4(0.0);
const vec2 C_vec2p0d5p = vec2(0.5);
const float C_0d1 = 0.1;
const vec2 C_a1z03r = vec2(0.0, 0.0);
const vec4 C_saeofs1 = vec4(65535.0);
const int C_255 = 255;
const int C_8 = 8;
const float C_128d0 = 128.0;
void main()
{
	vec4 vecSourceTexel;
	vec4 ternary;
	vec4 ternary1;
	vec4 Lg_1;
	vec4 Lg_2;
	vec4 Lg_3;
	int nIndex;
	int nPrevLayerIndex;
	vec4 flStartingTexel;
	vec4 flBlendCoords;
	vec4 vecSourceTexel1;
	vec4 ternary2;
	vec4 ternary3;
	vec4 ternary4;
	vec4 Lg_4;
	vec4 vResult;
	vec4 Lg_5;
	vec4 vResult1;
	vec4 Lg_6;
	vec4 vResult2;
	vec4 ternary5;
	vec4 ternary6;
	vec4 ternary7;
	vec4 vResult3;
	vec4 vResult4;
	vec4 vResult5;
	vec4 ternary8;
	vec4 ternary9;
	vec4 ternarya;
	vec4 Lg_7;
	vec4 Lg_8;
	vec4 vResult6;
	vec4 Lg_9;
	vec4 Lg_a;
	vec4 vResult7;
	vec4 Lg_b;
	vec4 Lg_c;
	vec4 vResult8;
	vec4 ternaryb;
	vec4 ternaryc;
	vec4 ternaryd;
	vec4 Lg_d;
	vec4 Lg_e;
	vec4 Lg_f;
	vec4 vResult9;
	vec4 Lg_g;
	vec4 Lg_h;
	vec4 Lg_i;
	vec4 vResulta;
	vec4 Lg_j;
	vec4 Lg_k;
	vec4 Lg_l;
	vec4 vResultb;
	vec4 ternarye;
	vec4 ternaryf;
	vec4 ternaryg;
	vec4 Lg_m;
	vec4 Lg_n;
	vec4 Lg_o;
	vec4 vResultc;
	vec4 Lg_p;
	vec4 Lg_q;
	vec4 Lg_r;
	vec4 vResultd;
	vec4 Lg_s;
	vec4 Lg_t;
	vec4 Lg_u;
	vec4 vResulte;
	vec4 ternaryh;
	vec4 ternaryi;
	vec4 ternaryj;
	vec4 Lg_v;
	vec4 Lg_w;
	vec4 Lg_x;
	vec4 vResultf;
	vec4 Lg_y;
	vec4 Lg_z;
	vec4 Lg_01;
	vec4 vResultg;
	vec4 Lg_11;
	vec4 Lg_21;
	vec4 Lg_31;
	vec4 vResulth;
	vec4 ternaryk;
	vec4 ternaryl;
	vec4 ternarym;
	vec4 Lg_41;
	vec4 Lg_51;
	vec4 Lg_61;
	vec4 vBlend;
	vec4 Lg_71;
	vec4 Lg_81;
	vec4 Lg_91;
	vec4 vBlend1;
	vec4 Lg_a1;
	vec4 Lg_b1;
	vec4 Lg_c1;
	vec4 vBlend2;
	vec4 Lg_d1;
	vec4 Lg_e1;
	vec4 Lg_f1;
	vec4 flNextTexel;
	vec4 Lg_g1;
	vec4 Lg_h1;
	vec4 Lg_i1;
	vec4 flNextTexel1;
	vec4 Lg_j1;
	vec4 Lg_k1;
	vec4 Lg_l1;
	vec4 flNextTexel2;
	vec4 Lg_m1;
	vec4 Lg_n1;
	vec4 Lg_o1;
	vec4 flNextTexel3;
	vec4 Lg_p1;
	vec4 Lg_q1;
	vec4 Lg_r1;
	vec4 flNextTexel4;
	vec4 vBlend3;
	vec4 vBlend4;
	vec4 vBlend5;
	vec4 vBlend6;
	vec4 vBlend7;
	vec4 vBlend8;
	vec4 vBlend9;
	vec4 vBlenda;
	vec4 vBlendb;
	vec4 vBlendc;
	vec4 vBlendd;
	vec4 vecSourceTexel2;
	vec4 vecSourceTexel3;
	float p;
	float s;
	float ss;
	SpriteCardLayerBlendParams_t[3] blendParams;
	float param = g_vecMotionVectorsControl.z / C_10d0;
	float H_l5pql91 = fract(param);
	float H_dpx8ph1 = C_10d0 * H_l5pql91;
	float vecSourceTexel4 = round(H_dpx8ph1);
	bool H_v4h18x1 = vecSourceTexel4 == C_1d0;
	if (H_v4h18x1) {
		vec4 vecSourceTexel5 = texture(g_tBaseTextureNoSRGBClamped, PS_INPUT_gl_m_vTexCoords.xy);
		vecSourceTexel = vecSourceTexel5;
	} else {
		vec4 vecSourceTexel6 = texture(g_tBaseTextureNoSRGB, PS_INPUT_gl_m_vTexCoords.xy);
		vecSourceTexel = vecSourceTexel6;
	}
	vec3 H_mc1p161 = vecSourceTexel.xyz + C_u1zmzx1;
	vec4 H_s911ye1 = vecSourceTexel;
	H_s911ye1.xyz = H_mc1p161.xyz;
	blendParams[0].member0 = PS_INPUT_gl_m_vTexCoords;
	float param1 = g_vecTextureControlsPixel_Layer2.x / C_10d0;
	float H_cb84n3 = fract(param1);
	float H_796abm = C_10d0 * H_cb84n3;
	float blendParams1 = round(H_796abm);
	float param2 = g_vecTextureControlsPixel_Layer2.x / C_1000d0;
	float H_30pd531 = fract(param2);
	float H_dbc2ep = H_30pd531 * C_100d0;
	float blendParams2 = round(H_dbc2ep);
	float blendParams3 = trunc(param2);
	vec4 Lg_s1;
	Lg_s1.xyz = vec3(blendParams1, blendParams2, blendParams3);
	blendParams[0].member1 = Lg_s1;
	blendParams[0].member2 = g_vecTextureControlsPixel_Base.yzw;
	blendParams[0].member3 = H_s911ye1;
	vec2 H_hh8izs = dFdx(PS_INPUT_gl_m_vTexCoords.xy);
	vec2 H_gmbm4a = dFdy(PS_INPUT_gl_m_vTexCoords.xy);
	vec4 H_srnihx1 = vec4(H_hh8izs.x, H_hh8izs.y, H_gmbm4a.x, H_gmbm4a.y);
	blendParams[0].member4 = H_srnihx1;
	float param3 = g_vecMotionVectorsControl.z / C_100d0;
	float H_2hj25d1 = fract(param3);
	float H_lpxsxc = C_10d0 * H_2hj25d1;
	float H_f7q2lq1 = round(H_lpxsxc);
	bool H_ttkkq1 = H_f7q2lq1 == C_1d0;
	if (H_ttkkq1) {
		vec4 txt = texture(g_tTextureLayer1Clamped, PS_INPUT_gl_vLayer1TexCoords.xy);
		ternary = txt;
	} else {
		vec4 txt1 = texture(g_tTextureLayer1, PS_INPUT_gl_vLayer1TexCoords.xy);
		ternary = txt1;
	}
	blendParams[1].member0 = PS_INPUT_gl_vLayer1TexCoords;
	float param4 = g_vecTextureControlsPixel_Layer2.x + C_1ea05;
	float H_pkik5d1 = fract(param4);
	float H_04qnm4 = H_pkik5d1 * C_10000d0;
	float param5 = H_04qnm4 / C_10d0;
	float H_gnsyd51 = fract(param5);
	float H_2437tb1 = C_10d0 * H_gnsyd51;
	float blendParams4 = round(H_2437tb1);
	float param6 = H_04qnm4 / C_1000d0;
	float H_7khrqe = fract(param6);
	float H_fn0qx21 = C_100d0 * H_7khrqe;
	float blendParams5 = round(H_fn0qx21);
	float blendParams6 = trunc(param6);
	vec4 Lg_t1;
	Lg_t1.xyz = vec3(blendParams4, blendParams5, blendParams6);
	blendParams[1].member1 = Lg_t1;
	blendParams[1].member2 = g_vecTextureControlsPixel_Layer1.yzw;
	blendParams[1].member3 = ternary;
	vec2 H_1hgen31 = dFdx(PS_INPUT_gl_vLayer1TexCoords.xy);
	vec2 H_o4ic3q1 = dFdy(PS_INPUT_gl_vLayer1TexCoords.xy);
	vec4 H_y74qk01 = vec4(H_1hgen31.x, H_1hgen31.y, H_o4ic3q1.x, H_o4ic3q1.y);
	blendParams[1].member4 = H_y74qk01;
	blendParams[2].member0 = PS_INPUT_gl_vLayer2TexCoords;
	float param7 = g_vecTextureControlsPixel_Layer3.x / C_10d0;
	float H_efwqh61 = fract(param7);
	float H_ne22bp1 = C_10d0 * H_efwqh61;
	float blendParams7 = round(H_ne22bp1);
	float param8 = g_vecTextureControlsPixel_Layer3.x / C_1000d0;
	float H_9x2bcf1 = fract(param8);
	float H_4qj6xc = C_100d0 * H_9x2bcf1;
	float blendParams8 = round(H_4qj6xc);
	float blendParams9 = trunc(param8);
	vec4 Lg_u1;
	Lg_u1.xyz = vec3(blendParams7, blendParams8, blendParams9);
	blendParams[2].member1 = Lg_u1;
	blendParams[2].member2 = g_vecTextureControlsPixel_Layer2.yzw;
	float param9 = g_vecMotionVectorsControl.z / C_1000d0;
	float H_spscm3 = fract(param9);
	float H_wxrkra = C_10d0 * H_spscm3;
	float H_g3z97f = round(H_wxrkra);
	bool H_xx7xdp1 = H_g3z97f == C_1d0;
	if (H_xx7xdp1) {
		vec4 txt2 = texture(g_tTextureLayer2Clamped, PS_INPUT_gl_vLayer2TexCoords.xy);
		ternary1 = txt2;
	} else {
		vec4 txt3 = texture(g_tTextureLayer2, PS_INPUT_gl_vLayer2TexCoords.xy);
		ternary1 = txt3;
	}
	blendParams[2].member3 = ternary1;
	vec2 H_elhuu8 = dFdx(PS_INPUT_gl_vLayer2TexCoords.xy);
	vec2 H_nq133b1 = dFdy(PS_INPUT_gl_vLayer2TexCoords.xy);
	vec4 H_g3uygh1 = vec4(H_elhuu8.x, H_elhuu8.y, H_nq133b1.x, H_nq133b1.y);
	blendParams[2].member4 = H_g3uygh1;
	Lg_1 = g_vecMotionVectorsControl;
	Lg_2 = g_vecMotionVectorsControl;
	Lg_3 = g_vecMotionVectorsControl;
	nIndex = C_0;
	nPrevLayerIndex = C_0;
	flStartingTexel = C_vec4p1d0p;
	flBlendCoords = PS_INPUT_gl_m_vTexCoords;
	vecSourceTexel1 = H_s911ye1;
	for ( ; nIndex != 3; ++nIndex) {
		bool H_f5jr6o1 = blendParams[nIndex].member1.x == C_0d0;
		if (H_f5jr6o1) {
			Lg_p1 = Lg_1;
			Lg_q1 = Lg_2;
			Lg_r1 = Lg_3;
			flNextTexel4 = blendParams[nIndex].member3;
		} else {
			bool H_kd6kjx1 = blendParams[nIndex].member1.x == C_1d0;
			if (H_kd6kjx1) {
				float parama = blendParams[nIndex].member0.z * blendParams[nIndex].member2.y;
				float H_cbr0bc = fract(parama);
				float H_22rxg9 = C_1d0 - H_cbr0bc;
				float H_bmdoy2 = H_22rxg9 * C_a0d4;
				float H_vgahhi1 = C_1d0 + H_bmdoy2;
				float H_q00csj1 = H_cbr0bc / H_vgahhi1;
				float flNewUVAmt = mix(C_4d0, C_1d0, H_q00csj1);
				vec4 H_hfbyb11 = vec4(flNewUVAmt);
				float flNewUVAmt1 = mix(C_1d0, C_0d0625, H_q00csj1);
				vec4 H_0luqgi = vec4(flNewUVAmt1);
				vec4 H_9iekgm = blendParams[nIndex].member0 + C_vec4pa0d5p;
				vec4 H_i7vlxv1 = H_9iekgm * H_hfbyb11;
				vec4 vZoomedUVs = H_i7vlxv1 + C_vec4p0d5p;
				vec4 H_7eipw5 = H_0luqgi * H_9iekgm;
				vec4 vZoomedUVs1 = C_vec4p0d5p + H_7eipw5;
				bool H_hb4c721 = nIndex == C_0;
				if (H_hb4c721) {
					float paramb = Lg_3.z / C_10d0;
					float H_308atb1 = fract(paramb);
					float H_i1nybb1 = C_10d0 * H_308atb1;
					float H_d992rn1 = round(H_i1nybb1);
					bool H_auvxjn = H_d992rn1 == C_1d0;
					if (H_auvxjn) {
						vec4 txt4 = textureGrad(g_tBaseTextureClamped, vZoomedUVs.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
						ternary2 = txt4;
					} else {
						vec4 txt5 = textureGrad(g_tBaseTexture, vZoomedUVs.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
						ternary2 = txt5;
					}
					Lg_6 = Lg_3;
					vResult2 = ternary2;
				} else {
					bool H_imicx11 = nIndex == C_1;
					if (H_imicx11) {
						float paramc = Lg_2.z / C_100d0;
						float H_6wk5j4 = fract(paramc);
						float H_g22znc1 = C_10d0 * H_6wk5j4;
						float H_0spcjv = round(H_g22znc1);
						bool H_ra0dga = H_0spcjv == C_1d0;
						if (H_ra0dga) {
							vec4 txt6 = textureGrad(g_tTextureLayer1Clamped, vZoomedUVs.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
							ternary3 = txt6;
						} else {
							vec4 txt7 = textureGrad(g_tTextureLayer1, vZoomedUVs.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
							ternary3 = txt7;
						}
						Lg_5 = Lg_2;
						vResult1 = ternary3;
					} else {
						bool H_jxwcn11 = nIndex == C_2;
						if (H_jxwcn11) {
							float paramd = Lg_2.z / C_1000d0;
							float H_h6h6241 = fract(paramd);
							float H_y6vakj = C_10d0 * H_h6h6241;
							float H_i51dbg = round(H_y6vakj);
							bool H_zwpjlc = H_i51dbg == C_1d0;
							if (H_zwpjlc) {
								vec4 txt8 = textureGrad(g_tTextureLayer2Clamped, vZoomedUVs.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
								ternary4 = txt8;
							} else {
								vec4 txt9 = textureGrad(g_tTextureLayer2, vZoomedUVs.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
								ternary4 = txt9;
							}
							Lg_4 = Lg_2;
							vResult = ternary4;
						} else {
							vec4 txta = textureGrad(g_tBaseTexture, vZoomedUVs.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
							Lg_4 = Lg_3;
							vResult = txta;
						}
						Lg_5 = Lg_4;
						vResult1 = vResult;
					}
					Lg_6 = Lg_5;
					vResult2 = vResult1;
				}
				if (H_hb4c721) {
					float parame = Lg_6.z / C_10d0;
					float H_gnbv1e1 = fract(parame);
					float H_x7rmy11 = C_10d0 * H_gnbv1e1;
					float H_oy9x3i1 = round(H_x7rmy11);
					bool H_rujanr1 = H_oy9x3i1 == C_1d0;
					if (H_rujanr1) {
						vec4 txtb = textureGrad(g_tBaseTextureClamped, vZoomedUVs1.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
						ternary5 = txtb;
					} else {
						vec4 txtc = textureGrad(g_tBaseTexture, vZoomedUVs1.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
						ternary5 = txtc;
					}
					vResult5 = ternary5;
				} else {
					bool H_imicx11r = nIndex == C_1;
					if (H_imicx11r) {
						float paramf = Lg_6.z / C_100d0;
						float H_fyky551 = fract(paramf);
						float H_tbx45o1 = C_10d0 * H_fyky551;
						float H_8bdsr91 = round(H_tbx45o1);
						bool H_4kclb5 = H_8bdsr91 == C_1d0;
						if (H_4kclb5) {
							vec4 txtd = textureGrad(g_tTextureLayer1Clamped, vZoomedUVs1.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
							ternary6 = txtd;
						} else {
							vec4 txte = textureGrad(g_tTextureLayer1, vZoomedUVs1.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
							ternary6 = txte;
						}
						vResult4 = ternary6;
					} else {
						bool H_jxwcn11r = nIndex == C_2;
						if (H_jxwcn11r) {
							float paramg = Lg_6.z / C_1000d0;
							float H_effn5f1 = fract(paramg);
							float H_g016301 = C_10d0 * H_effn5f1;
							float H_5iisep1 = round(H_g016301);
							bool H_deh1oh = H_5iisep1 == C_1d0;
							if (H_deh1oh) {
								vec4 txtf = textureGrad(g_tTextureLayer2Clamped, vZoomedUVs1.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
								ternary7 = txtf;
							} else {
								vec4 txtg = textureGrad(g_tTextureLayer2, vZoomedUVs1.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
								ternary7 = txtg;
							}
							vResult3 = ternary7;
						} else {
							vec4 txth = textureGrad(g_tBaseTexture, vZoomedUVs1.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
							vResult3 = txth;
						}
						vResult4 = vResult3;
					}
					vResult5 = vResult4;
				}
				float H_t9se0t1 = H_q00csj1 * H_q00csj1;
				vec4 vBlende = mix(vResult5, vResult2, H_t9se0t1);
				int H_u58to11 = int(blendParams[nIndex].member1.y);
				bool H_sryo5z = C_2rmtgp1[H_u58to11].y != C_1d0;
				float H_7u06w31 = float(H_sryo5z);
				float vBlendf = mix(vecSourceTexel1.w, vBlende.w, H_7u06w31);
				vec4 H_ru1ick1 = vBlende;
				H_ru1ick1.w = vBlendf;
				Lg_m1 = Lg_1;
				Lg_n1 = Lg_2;
				Lg_o1 = Lg_6;
				flNextTexel3 = H_ru1ick1;
			} else {
				bool H_x2cq7f1 = blendParams[nIndex].member1.x == C_2d0;
				if (H_x2cq7f1) {
					float H_8qmlex1 = blendParams[nIndex].member2.z * flBlendCoords.w;
					float flDistortion = H_8qmlex1 * C_0d125;
					vec2 H_l7b9fs = blendParams[nIndex].member3.xy + C_vec2pa0d5p;
					vec2 vOffset = H_l7b9fs * C_vec2p2d0p;
					float flDistorionDist = blendParams[nIndex].member3.w * flDistortion;
					vec2 H_dxlnpd = vec2(flDistorionDist);
					vec2 H_lqvkbv1 = H_dxlnpd * vOffset;
					vec2 vNewUV = flBlendCoords.xy - H_lqvkbv1;
					bool H_50s5ti1 = nPrevLayerIndex == C_0;
					if (H_50s5ti1) {
						float paramh = Lg_1.z / C_10d0;
						float H_dc4eq6 = fract(paramh);
						float H_4at9ch = C_10d0 * H_dc4eq6;
						float H_ii8hbh1 = round(H_4at9ch);
						bool H_mc3489 = H_ii8hbh1 == C_1d0;
						if (H_mc3489) {
							vec4 txti = textureGrad(g_tBaseTextureClamped, vNewUV, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
							ternary8 = txti;
						} else {
							vec4 txtj = textureGrad(g_tBaseTexture, vNewUV, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
							ternary8 = txtj;
						}
						Lg_b = Lg_1;
						Lg_c = Lg_1;
						vResult8 = ternary8;
					} else {
						bool H_6b66ji1 = nPrevLayerIndex == C_1;
						if (H_6b66ji1) {
							float parami = Lg_1.z / C_100d0;
							float H_spb9ac = fract(parami);
							float H_nefz3l = C_10d0 * H_spb9ac;
							float H_1kobxv1 = round(H_nefz3l);
							bool H_dgyahp = H_1kobxv1 == C_1d0;
							if (H_dgyahp) {
								vec4 txtk = textureGrad(g_tTextureLayer1Clamped, vNewUV, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
								ternary9 = txtk;
							} else {
								vec4 txtl = textureGrad(g_tTextureLayer1, vNewUV, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
								ternary9 = txtl;
							}
							Lg_9 = Lg_1;
							Lg_a = Lg_1;
							vResult7 = ternary9;
						} else {
							bool H_7mk69i1 = nPrevLayerIndex == C_2;
							if (H_7mk69i1) {
								float paramj = Lg_1.z / C_1000d0;
								float H_f7ivw21 = fract(paramj);
								float H_n1y2x1 = C_10d0 * H_f7ivw21;
								float H_c6pe0y1 = round(H_n1y2x1);
								bool H_r2lgit1 = H_c6pe0y1 == C_1d0;
								if (H_r2lgit1) {
									vec4 txtm = textureGrad(g_tTextureLayer2Clamped, vNewUV, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
									ternarya = txtm;
								} else {
									vec4 txtn = textureGrad(g_tTextureLayer2, vNewUV, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
									ternarya = txtn;
								}
								Lg_7 = Lg_1;
								Lg_8 = Lg_1;
								vResult6 = ternarya;
							} else {
								vec4 txto = textureGrad(g_tBaseTexture, vNewUV, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
								Lg_7 = Lg_2;
								Lg_8 = Lg_3;
								vResult6 = txto;
							}
							Lg_9 = Lg_7;
							Lg_a = Lg_8;
							vResult7 = vResult6;
						}
						Lg_b = Lg_9;
						Lg_c = Lg_a;
						vResult8 = vResult7;
					}
					Lg_j1 = Lg_1;
					Lg_k1 = Lg_b;
					Lg_l1 = Lg_c;
					flNextTexel2 = vResult8;
				} else {
					bool H_ue3bzj1 = blendParams[nIndex].member1.x == C_3d0;
					if (H_ue3bzj1) {
						float paramk = blendParams[nIndex].member0.z * blendParams[nIndex].member2.y;
						float H_eockwc1 = fract(paramk);
						float H_5zp1o2 = C_1d0 - H_eockwc1;
						float H_c1bn381 = C_a0d4 * H_5zp1o2;
						float H_u59yax = C_1d0 + H_c1bn381;
						float H_y8fjyr1 = H_eockwc1 / H_u59yax;
						float flNewUVAmt2 = mix(C_4d0, C_1d0, H_y8fjyr1);
						vec4 H_r9b0zh1 = vec4(flNewUVAmt2);
						float flNewUVAmt3 = mix(C_1d0, C_0d0625, H_y8fjyr1);
						vec4 H_u5ovoa = vec4(flNewUVAmt3);
						vec4 H_pd4hay1 = C_vec4pa0d5p + blendParams[nIndex].member0;
						vec4 H_w90iq9 = H_pd4hay1 * H_r9b0zh1;
						vec4 vZoomedUVs2 = C_vec4p0d5p + H_w90iq9;
						vec4 H_jovhbd1 = H_pd4hay1 * H_u5ovoa;
						vec4 vZoomedUVs3 = C_vec4p0d5p + H_jovhbd1;
						bool H_hb4c721r = nIndex == C_0;
						if (H_hb4c721r) {
							if (H_v4h18x1) {
								vec4 txtp = textureGrad(g_tBaseTextureClamped, vZoomedUVs2.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
								ternaryb = txtp;
							} else {
								vec4 txtq = textureGrad(g_tBaseTexture, vZoomedUVs2.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
								ternaryb = txtq;
							}
							Lg_j = g_vecMotionVectorsControl;
							Lg_k = g_vecMotionVectorsControl;
							Lg_l = g_vecMotionVectorsControl;
							vResultb = ternaryb;
						} else {
							bool H_imicx11rr = nIndex == C_1;
							if (H_imicx11rr) {
								if (H_ttkkq1) {
									vec4 txtr = textureGrad(g_tTextureLayer1Clamped, vZoomedUVs2.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
									ternaryc = txtr;
								} else {
									vec4 txts = textureGrad(g_tTextureLayer1, vZoomedUVs2.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
									ternaryc = txts;
								}
								Lg_g = g_vecMotionVectorsControl;
								Lg_h = g_vecMotionVectorsControl;
								Lg_i = g_vecMotionVectorsControl;
								vResulta = ternaryc;
							} else {
								bool H_jxwcn11rr = nIndex == C_2;
								if (H_jxwcn11rr) {
									if (H_xx7xdp1) {
										vec4 txtt = textureGrad(g_tTextureLayer2Clamped, vZoomedUVs2.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
										ternaryd = txtt;
									} else {
										vec4 txtu = textureGrad(g_tTextureLayer2, vZoomedUVs2.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
										ternaryd = txtu;
									}
									Lg_d = g_vecMotionVectorsControl;
									Lg_e = g_vecMotionVectorsControl;
									Lg_f = g_vecMotionVectorsControl;
									vResult9 = ternaryd;
								} else {
									vec4 txtv = textureGrad(g_tBaseTexture, vZoomedUVs2.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
									Lg_d = Lg_1;
									Lg_e = Lg_2;
									Lg_f = Lg_3;
									vResult9 = txtv;
								}
								Lg_g = Lg_d;
								Lg_h = Lg_e;
								Lg_i = Lg_f;
								vResulta = vResult9;
							}
							Lg_j = Lg_g;
							Lg_k = Lg_h;
							Lg_l = Lg_i;
							vResultb = vResulta;
						}
						if (H_hb4c721r) {
							if (H_v4h18x1) {
								vec4 txtw = textureGrad(g_tBaseTextureClamped, vZoomedUVs3.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
								ternarye = txtw;
							} else {
								vec4 txtx = textureGrad(g_tBaseTexture, vZoomedUVs3.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
								ternarye = txtx;
							}
							Lg_s = g_vecMotionVectorsControl;
							Lg_t = g_vecMotionVectorsControl;
							Lg_u = g_vecMotionVectorsControl;
							vResulte = ternarye;
						} else {
							bool H_imicx11rrr = nIndex == C_1;
							if (H_imicx11rrr) {
								if (H_ttkkq1) {
									vec4 txty = textureGrad(g_tTextureLayer1Clamped, vZoomedUVs3.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
									ternaryf = txty;
								} else {
									vec4 txtz = textureGrad(g_tTextureLayer1, vZoomedUVs3.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
									ternaryf = txtz;
								}
								Lg_p = g_vecMotionVectorsControl;
								Lg_q = g_vecMotionVectorsControl;
								Lg_r = g_vecMotionVectorsControl;
								vResultd = ternaryf;
							} else {
								bool H_jxwcn11rrr = nIndex == C_2;
								if (H_jxwcn11rrr) {
									if (H_xx7xdp1) {
										vec4 txt01 = textureGrad(g_tTextureLayer2Clamped, vZoomedUVs3.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
										ternaryg = txt01;
									} else {
										vec4 txt11 = textureGrad(g_tTextureLayer2, vZoomedUVs3.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
										ternaryg = txt11;
									}
									Lg_m = g_vecMotionVectorsControl;
									Lg_n = g_vecMotionVectorsControl;
									Lg_o = g_vecMotionVectorsControl;
									vResultc = ternaryg;
								} else {
									vec4 txt21 = textureGrad(g_tBaseTexture, vZoomedUVs3.xy, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
									Lg_m = Lg_j;
									Lg_n = Lg_k;
									Lg_o = Lg_l;
									vResultc = txt21;
								}
								Lg_p = Lg_m;
								Lg_q = Lg_n;
								Lg_r = Lg_o;
								vResultd = vResultc;
							}
							Lg_s = Lg_p;
							Lg_t = Lg_q;
							Lg_u = Lg_r;
							vResulte = vResultd;
						}
						float H_5o59k4 = H_y8fjyr1 * H_y8fjyr1;
						vec4 vBlendg = mix(vResulte, vResultb, H_5o59k4);
						int H_u58to11r = int(blendParams[nIndex].member1.y);
						bool H_8sndvz = C_2rmtgp1[H_u58to11r].y != C_1d0;
						float H_0joqlf1 = float(H_8sndvz);
						float vBlendh = mix(vecSourceTexel1.w, vBlendg.w, H_0joqlf1);
						float H_8qmlex1r = blendParams[nIndex].member2.z * flBlendCoords.w;
						float flDistortion1 = C_0d125 * H_8qmlex1r;
						vec2 H_vobpku1 = C_vec2pa0d5p + vBlendg.xy;
						vec2 vOffset1 = C_vec2p2d0p * H_vobpku1;
						float flDistorionDist1 = flDistortion1 * vBlendh;
						vec2 H_k337zm1 = vec2(flDistorionDist1);
						vec2 H_upqxp41 = H_k337zm1 * vOffset1;
						vec2 vNewUV1 = flBlendCoords.xy - H_upqxp41;
						bool H_50s5ti1r = nPrevLayerIndex == C_0;
						if (H_50s5ti1r) {
							if (H_v4h18x1) {
								vec4 txt31 = textureGrad(g_tBaseTextureClamped, vNewUV1, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
								ternaryh = txt31;
							} else {
								vec4 txt41 = textureGrad(g_tBaseTexture, vNewUV1, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
								ternaryh = txt41;
							}
							Lg_11 = g_vecMotionVectorsControl;
							Lg_21 = g_vecMotionVectorsControl;
							Lg_31 = g_vecMotionVectorsControl;
							vResulth = ternaryh;
						} else {
							bool H_6b66ji1r = nPrevLayerIndex == C_1;
							if (H_6b66ji1r) {
								if (H_ttkkq1) {
									vec4 txt51 = textureGrad(g_tTextureLayer1Clamped, vNewUV1, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
									ternaryi = txt51;
								} else {
									vec4 txt61 = textureGrad(g_tTextureLayer1, vNewUV1, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
									ternaryi = txt61;
								}
								Lg_y = g_vecMotionVectorsControl;
								Lg_z = g_vecMotionVectorsControl;
								Lg_01 = g_vecMotionVectorsControl;
								vResultg = ternaryi;
							} else {
								bool H_7mk69i1r = nPrevLayerIndex == C_2;
								if (H_7mk69i1r) {
									if (H_xx7xdp1) {
										vec4 txt71 = textureGrad(g_tTextureLayer2Clamped, vNewUV1, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
										ternaryj = txt71;
									} else {
										vec4 txt81 = textureGrad(g_tTextureLayer2, vNewUV1, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
										ternaryj = txt81;
									}
									Lg_v = g_vecMotionVectorsControl;
									Lg_w = g_vecMotionVectorsControl;
									Lg_x = g_vecMotionVectorsControl;
									vResultf = ternaryj;
								} else {
									vec4 txt91 = textureGrad(g_tBaseTexture, vNewUV1, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
									Lg_v = Lg_s;
									Lg_w = Lg_t;
									Lg_x = Lg_u;
									vResultf = txt91;
								}
								Lg_y = Lg_v;
								Lg_z = Lg_w;
								Lg_01 = Lg_x;
								vResultg = vResultf;
							}
							Lg_11 = Lg_y;
							Lg_21 = Lg_z;
							Lg_31 = Lg_01;
							vResulth = vResultg;
						}
						Lg_g1 = Lg_11;
						Lg_h1 = Lg_21;
						Lg_i1 = Lg_31;
						flNextTexel1 = vResulth;
					} else {
						bool H_bl7txc = blendParams[nIndex].member1.x == C_4d0;
						if (H_bl7txc) {
							int nChannel = int(blendParams[nIndex].member1.y);
							vec3 H_x8izeq1 = vecSourceTexel1.www * vecSourceTexel1.xyz;
							vec4 H_f2g0a41 = vec4(H_x8izeq1.x, H_x8izeq1.y, H_x8izeq1.z, C_1d0);
							vec4 vInput = mix(H_f2g0a41, vecSourceTexel1, C_fxxkrt1[nChannel].x);
							vec4 vInput1 = mix(vInput, vecSourceTexel1.wwww, C_fxxkrt1[nChannel].y);
							vec3 vLinearSegment = vInput1.xyz * C_vec3p12d92p;
							vec3 vExpSegment = pow(vInput1.xyz, C_3ktjyb);
							vec3 H_vrh075 = vExpSegment * C_vec3p1d055p;
							vec3 vExpSegment1 = H_vrh075 + C_m93d951;
							bool H_d5atx5 = vInput1.x > C_0d0031308;
							float select = H_d5atx5 ? vExpSegment1.x : vLinearSegment.x;
							bool H_io9o7u1 = vInput1.y > C_0d0031308;
							float select1 = H_io9o7u1 ? vExpSegment1.y : vLinearSegment.y;
							bool H_vl5tu41 = vInput1.z > C_0d0031308;
							float select2 = H_vl5tu41 ? vExpSegment1.z : vLinearSegment.z;
							vec3 H_g5tqsp = vec3(select, select1, select2);
							float flLuminance = dot(H_g5tqsp, C_kfumqy1);
							float vLum = mix(C_0d0, C_1d0, flLuminance);
							vec2 H_6jaldw1 = vec2(vLum);
							vec2 H_e5agt21 = H_6jaldw1 + blendParams[nIndex].member0.xy;
							vec2 paraml = H_e5agt21 * blendParams[nIndex].member0.zw;
							bool H_hb4c721rr = nIndex == C_0;
							if (H_hb4c721rr) {
								if (H_v4h18x1) {
									vec4 txta1 = textureGrad(g_tBaseTextureClamped, paraml, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
									ternaryk = txta1;
								} else {
									vec4 txtb1 = textureGrad(g_tBaseTexture, paraml, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
									ternaryk = txtb1;
								}
								Lg_a1 = g_vecMotionVectorsControl;
								Lg_b1 = g_vecMotionVectorsControl;
								Lg_c1 = g_vecMotionVectorsControl;
								vBlend2 = ternaryk;
							} else {
								bool H_imicx11rrrr = nIndex == C_1;
								if (H_imicx11rrrr) {
									if (H_ttkkq1) {
										vec4 txtc1 = textureGrad(g_tTextureLayer1Clamped, paraml, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
										ternaryl = txtc1;
									} else {
										vec4 txtd1 = textureGrad(g_tTextureLayer1, paraml, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
										ternaryl = txtd1;
									}
									Lg_71 = g_vecMotionVectorsControl;
									Lg_81 = g_vecMotionVectorsControl;
									Lg_91 = g_vecMotionVectorsControl;
									vBlend1 = ternaryl;
								} else {
									bool H_jxwcn11rrrr = nIndex == C_2;
									if (H_jxwcn11rrrr) {
										if (H_xx7xdp1) {
											vec4 txte1 = textureGrad(g_tTextureLayer2Clamped, paraml, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
											ternarym = txte1;
										} else {
											vec4 txtf1 = textureGrad(g_tTextureLayer2, paraml, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
											ternarym = txtf1;
										}
										Lg_41 = g_vecMotionVectorsControl;
										Lg_51 = g_vecMotionVectorsControl;
										Lg_61 = g_vecMotionVectorsControl;
										vBlend = ternarym;
									} else {
										vec4 txtg1 = textureGrad(g_tBaseTexture, paraml, blendParams[nIndex].member4.xy, blendParams[nIndex].member4.zw);
										Lg_41 = Lg_1;
										Lg_51 = Lg_2;
										Lg_61 = Lg_3;
										vBlend = txtg1;
									}
									Lg_71 = Lg_41;
									Lg_81 = Lg_51;
									Lg_91 = Lg_61;
									vBlend1 = vBlend;
								}
								Lg_a1 = Lg_71;
								Lg_b1 = Lg_81;
								Lg_c1 = Lg_91;
								vBlend2 = vBlend1;
							}
							float misc2a = dot(vBlend2.xyz, C_nsxfnm1);
							vec4 H_utubjz = vBlend2;
							H_utubjz.w = misc2a;
							vec4 H_32vmqw1 = vec4(vBlend2.x, vBlend2.y, vBlend2.z, vecSourceTexel1.w);
							vec4 vBlendi = mix(H_32vmqw1, H_utubjz, C_fxxkrt1[nChannel].y);
							Lg_d1 = Lg_a1;
							Lg_e1 = Lg_b1;
							Lg_f1 = Lg_c1;
							flNextTexel = vBlendi;
						} else {
							Lg_d1 = Lg_1;
							Lg_e1 = Lg_2;
							Lg_f1 = Lg_3;
							flNextTexel = blendParams[nIndex].member3;
						}
						Lg_g1 = Lg_d1;
						Lg_h1 = Lg_e1;
						Lg_i1 = Lg_f1;
						flNextTexel1 = flNextTexel;
					}
					Lg_j1 = Lg_g1;
					Lg_k1 = Lg_h1;
					Lg_l1 = Lg_i1;
					flNextTexel2 = flNextTexel1;
				}
				Lg_m1 = Lg_j1;
				Lg_n1 = Lg_k1;
				Lg_o1 = Lg_l1;
				flNextTexel3 = flNextTexel2;
			}
			Lg_p1 = Lg_m1;
			Lg_q1 = Lg_n1;
			Lg_r1 = Lg_o1;
			flNextTexel4 = flNextTexel3;
		}
		bool H_qhq2ah = blendParams[nIndex].member1.y == C_0d0;
		if (H_qhq2ah) {
			vec4 H_xxg4kt1 = vec4(flNextTexel4.x, flNextTexel4.y, flNextTexel4.z, flStartingTexel.w);
			vBlendb = H_xxg4kt1;
		} else {
			bool H_9y7vub1 = blendParams[nIndex].member1.y == C_1d0;
			if (H_9y7vub1) {
				vBlenda = flNextTexel4;
			} else {
				bool H_8uwszl1 = blendParams[nIndex].member1.y == C_2d0;
				if (H_8uwszl1) {
					vec4 H_rzddyr = vec4(flStartingTexel.x, flStartingTexel.y, flStartingTexel.z, flNextTexel4.w);
					vBlend9 = H_rzddyr;
				} else {
					bool H_7tjnil1 = blendParams[nIndex].member1.y == C_3d0;
					if (H_7tjnil1) {
						float H_amj57l1 = flNextTexel4.w * flStartingTexel.w;
						vec4 H_qqdnn51 = flNextTexel4;
						H_qqdnn51.w = H_amj57l1;
						vBlend8 = H_qqdnn51;
					} else {
						bool H_6xg4i5 = blendParams[nIndex].member1.y == C_4d0;
						if (H_6xg4i5) {
							vec3 vBlendj = mix(flStartingTexel.xyz, flNextTexel4.xyz, flNextTexel4.w);
							vec4 H_5skwfw = vec4(vBlendj.x, vBlendj.y, vBlendj.z, flStartingTexel.w);
							vBlend7 = H_5skwfw;
						} else {
							bool H_5ewwl = blendParams[nIndex].member1.y == C_5d0;
							if (H_5ewwl) {
								float misc2a1 = dot(flNextTexel4.xyz, C_nsxfnm1);
								vec3 vBlendk = mix(flStartingTexel.xyz, flNextTexel4.xyz, misc2a1);
								vec4 H_00wjgn1 = vec4(vBlendk.x, vBlendk.y, vBlendk.z, flStartingTexel.w);
								vBlend6 = H_00wjgn1;
							} else {
								bool H_ohg32a = blendParams[nIndex].member1.y == C_6d0;
								if (H_ohg32a) {
									float misc2a2 = dot(flNextTexel4.xyz, C_nsxfnm1);
									vec4 H_qqdnn51r = flNextTexel4;
									H_qqdnn51r.w = misc2a2;
									vBlend5 = H_qqdnn51r;
								} else {
									bool H_bnwo991 = blendParams[nIndex].member1.y == C_7d0;
									if (H_bnwo991) {
										float misc2a3 = dot(flNextTexel4.xyz, C_nsxfnm1);
										vec4 H_h3o4gp1 = vec4(flStartingTexel.x, flStartingTexel.y, flStartingTexel.z, misc2a3);
										vBlend4 = H_h3o4gp1;
									} else {
										bool H_mcsvpj = blendParams[nIndex].member1.y == C_8d0;
										if (H_mcsvpj) {
											float misc2a4 = dot(flNextTexel4.xyz, C_nsxfnm1);
											float H_7r35uk1 = flStartingTexel.w * misc2a4;
											vec4 H_qdrr65 = vec4(flStartingTexel.x, flStartingTexel.y, flStartingTexel.z, H_7r35uk1);
											vBlend3 = H_qdrr65;
										} else {
											bool H_p01bye = blendParams[nIndex].member1.y == C_9d0;
											vec4 H_w60h51 = vec4(flNextTexel4.x, flNextTexel4.x, flNextTexel4.x, flStartingTexel.w);
											bool H_v75v001 = blendParams[nIndex].member1.y == C_10d0;
											vec4 H_3gkq3p1 = vec4(flNextTexel4.y, flNextTexel4.y, flNextTexel4.y, flStartingTexel.w);
											bool H_82lhz = blendParams[nIndex].member1.y == C_11d0;
											vec4 H_acx6301 = vec4(flNextTexel4.z, flNextTexel4.z, flNextTexel4.z, flStartingTexel.w);
											bool H_tx2fkq1 = blendParams[nIndex].member1.y == C_12d0;
											bool H_ivdetu1 = blendParams[nIndex].member1.y == C_13d0;
											bool H_fumngo = blendParams[nIndex].member1.y == C_14d0;
											vec4 select3 = H_fumngo ? flNextTexel4.zzzz : flNextTexel4;
											vec4 select4 = H_ivdetu1 ? flNextTexel4.yyyy : select3;
											vec4 select5 = H_tx2fkq1 ? flNextTexel4.xxxx : select4;
											vec4 select6 = H_82lhz ? H_acx6301 : select5;
											vec4 select7 = H_v75v001 ? H_3gkq3p1 : select6;
											vec4 select8 = H_p01bye ? H_w60h51 : select7;
											vBlend3 = select8;
										}
										vBlend4 = vBlend3;
									}
									vBlend5 = vBlend4;
								}
								vBlend6 = vBlend5;
							}
							vBlend7 = vBlend6;
						}
						vBlend8 = vBlend7;
					}
					vBlend9 = vBlend8;
				}
				vBlenda = vBlend9;
			}
			vBlendb = vBlenda;
		}
		bool H_5ncv551 = blendParams[nIndex].member1.z == C_0d0;
		if (H_5ncv551) {
			vec4 vBlendl = flStartingTexel * vBlendb;
			vBlendd = vBlendl;
		} else {
			bool H_oqw1me1 = blendParams[nIndex].member1.z == C_3d0;
			if (H_oqw1me1) {
				vec4 vBlendm = flStartingTexel + vBlendb;
				vBlendc = vBlendm;
			} else {
				bool H_p9y99s1 = blendParams[nIndex].member1.z == C_4d0;
				vec4 vBlendn = flStartingTexel - vBlendb;
				bool H_m6v2la = blendParams[nIndex].member1.z == C_1d0;
				vec4 H_aj57n81 = vBlendb * C_vec4p2d0p;
				vec4 vBlendo = H_aj57n81 * flStartingTexel;
				bool H_3ionte1 = blendParams[nIndex].member1.z == C_2d0;
				bool H_qsih5x1 = blendParams[nIndex].member1.z == C_5d0;
				vec4 H_dhwvnj1 = flStartingTexel + vBlendb;
				vec4 vBlendp = C_vec4p0d5p * H_dhwvnj1;
				bool H_7c1pk21 = blendParams[nIndex].member1.z == C_6d0;
				float flLuminance1 = dot(vBlendb.xyz, C_kfumqy1);
				vec3 H_chpant1 = vec3(flLuminance1);
				vec3 H_wfoga61 = H_chpant1 * flStartingTexel.xyz;
				vec4 H_mb2gql1 = vBlendb;
				H_mb2gql1.xyz = H_wfoga61.xyz;
				vec4 select9 = H_7c1pk21 ? H_mb2gql1 : vBlendb;
				vec4 selecta = H_qsih5x1 ? vBlendp : select9;
				vec4 selectb = H_3ionte1 ? vBlendb : selecta;
				vec4 selectc = H_m6v2la ? vBlendo : selectb;
				vec4 selectd = H_p9y99s1 ? vBlendn : selectc;
				vBlendc = selectd;
			}
			vBlendd = vBlendc;
		}
		vec4 misc3a = mix(flStartingTexel, vBlendd, blendParams[nIndex].member2.x);
		vec4 misc3a1 = clamp(misc3a, C_vec4p0d0p, C_vec4p1d0p);
		Lg_1 = Lg_p1;
		Lg_2 = Lg_q1;
		Lg_3 = Lg_r1;
		nPrevLayerIndex = nIndex;
		flStartingTexel = misc3a1;
		flBlendCoords = blendParams[nIndex].member0;
		vecSourceTexel1 = misc3a1;
	}
	vec3 H_ka7to01 = PS_INPUT_gl_m_vTintColor.xyz * vecSourceTexel1.xyz;
	vec4 H_jclks21 = vecSourceTexel1;
	H_jclks21.xyz = H_ka7to01.xyz;
	float paramm = Lg_3.w / C_1000d0;
	float H_sulg551 = fract(paramm);
	float H_5i3e85 = C_10d0 * H_sulg551;
	float H_0n3u7k = round(H_5i3e85);
	bool H_s2t6o2 = H_0n3u7k == C_0d0;
	vecSourceTexel2 = H_jclks21;
	if (H_s2t6o2) {
		bool H_eugmf21 = g_vecPixelControls.w < g_vecPixelControls.z;
		float vecSourceTexel7 = smoothstep(g_vecPixelControls.w, g_vecPixelControls.z, vecSourceTexel1.w);
		vec4 H_y4oly8 = H_jclks21;
		H_y4oly8.w = vecSourceTexel7;
		vec4 selecte = H_eugmf21 ? H_y4oly8 : H_jclks21;
		bool H_587qdg1 = vecSourceTexel1.w >= g_vecOutlineRanges.x;
		bool H_ujlyki1 = vecSourceTexel1.w <= g_vecOutlineRanges.w;
		bool H_tgs9ux = H_587qdg1 && H_ujlyki1;
		bool H_63gghw = vecSourceTexel1.w > g_vecOutlineRanges.z;
		float oFactor = smoothstep(g_vecOutlineRanges.w, g_vecOutlineRanges.y, vecSourceTexel1.w);
		float oFactor1 = smoothstep(g_vecOutlineRanges.x, g_vecOutlineRanges.z, vecSourceTexel1.w);
		float selectf = H_63gghw ? oFactor : oFactor1;
		vec4 vecSourceTexel8 = mix(selecte, g_vecOutlineColor, selectf);
		vec4 selectg = H_tgs9ux ? vecSourceTexel8 : selecte;
		vecSourceTexel2 = selectg;
	}
	float flLuminance2 = dot(vecSourceTexel2.xyz, C_kfumqy1);
	vec3 H_3ee3031 = vec3(flLuminance2);
	vec3 vecSourceTexel9 = mix(vecSourceTexel2.xyz, H_3ee3031, g_vecTextureControlsPixel_Layer1.x);
	vec4 H_i17k231 = vecSourceTexel2;
	H_i17k231.xyz = vecSourceTexel9.xyz;
	vec4 vecSourceTexela = H_i17k231 * g_vColorTransformScale;
	float H_4kkyad = g_vecTextureControlsPixel_Base.x + vecSourceTexela.w;
	vec4 H_busozo1 = vecSourceTexela;
	H_busozo1.w = H_4kkyad;
	float paramn = Lg_3.w / C_10000d0;
	float H_fk0mm5 = fract(paramn);
	float H_ri6u6o = C_10d0 * H_fk0mm5;
	float H_2yexu01 = round(H_ri6u6o);
	bool H_wxbup61 = H_2yexu01 == C_0d0;
	float misc3a2 = clamp(H_4kkyad, C_0d0, C_1d0);
	vec4 H_busozo1r = vecSourceTexela;
	H_busozo1r.w = misc3a2;
	vec4 selecth = H_wxbup61 ? H_busozo1 : H_busozo1r;
	bool H_z7wnis1 = H_0n3u7k == C_1d0;
	if (H_z7wnis1) {
		float paramo = PS_INPUT_gl_m_vAnimationBlendValues.w + PS_INPUT_gl_m_vAnimationBlendValues.z;
		float paramp = g_vecPixelControls.z + selecth.w;
		float flWindowAlpha = max(g_vecOutlineRanges.x, selecth.w);
		float H_3zqrz3 = paramo - selecth.w;
		float H_69a1cy = paramp - selecth.w;
		float paramq = H_3zqrz3 / H_69a1cy;
		float misc3a3 = clamp(paramq, C_0d0, C_1d0);
		float H_m02tqc = flWindowAlpha * misc3a3;
		float paramr = selecth.w - g_vecPixelControls.w;
		float H_z9obok = PS_INPUT_gl_m_vAnimationBlendValues.z - paramr;
		float H_c21na61 = selecth.w - paramr;
		float params = H_z9obok / H_c21na61;
		float misc3a4 = clamp(params, C_0d0, C_1d0);
		float H_4mqxn01 = C_0d0 - flWindowAlpha;
		float H_p7ts2c1 = H_4mqxn01 * misc3a4;
		float H_hgu16d = H_p7ts2c1 + flWindowAlpha;
		float vecSourceTexelb = min(H_m02tqc, H_hgu16d);
		float vecSourceTexelc = max(g_vecOutlineRanges.y, PS_INPUT_gl_m_vTintColor.w);
		float H_erxq9f1 = vecSourceTexelb * vecSourceTexelc;
		vec4 H_fw9m3g = selecth;
		H_fw9m3g.w = H_erxq9f1;
		vecSourceTexel3 = H_fw9m3g;
	} else {
		float H_ko9i5u1 = PS_INPUT_gl_m_vTintColor.w * selecth.w;
		vec4 H_fw9m3gr = selecth;
		H_fw9m3gr.w = H_ko9i5u1;
		vecSourceTexel3 = H_fw9m3gr;
	}
	vec2 H_r2g58o1 = PS_INPUT_gl_vPositionCs.xy / PS_INPUT_gl_vPositionCs.ww;
	vec2 H_5w9eg6 = H_r2g58o1 * C_vec2p0d5p;
	vec2 H_tpi0o8 = C_vec2p0d5p + H_5w9eg6;
	bool H_swlg7z = PS_INPUT_gl_vPositionCs.z > C_1d0;
	if (H_swlg7z) {
	} else {
		vec3 H_e9cvpw = vec3(H_tpi0o8.x, H_tpi0o8.y, PS_INPUT_gl_vPositionCs.z);
		vec3 H_o5x0ro1 = H_e9cvpw * g_vLightBinCounts.xyz;
		vec3 vBin = floor(H_o5x0ro1);
		float flSliceStride = g_vLightBinCounts.x * g_vLightBinCounts.y;
		float H_zt06yv1 = flSliceStride * vBin.z;
		float H_sl3crk = g_vLightBinCounts.x * vBin.y;
		float H_ekeiy11 = H_sl3crk + H_zt06yv1;
		float flBinIndex = H_ekeiy11 + vBin.x;
		float H_7mv7qo = C_3d0 * flBinIndex;
		float H_bjhxv9 = H_7mv7qo + C_0d1;
		float flBinTexel = H_bjhxv9 * g_vInvLightTextureDims.w;
		vec2 H_23b4ob1 = C_a1z03r;
		H_23b4ob1.y = flBinTexel;
		vec4 nTmp = textureLod(g_tTotalLightBuffer, H_23b4ob1, C_0d0);
		vec4 H_k19b9d1 = nTmp * C_saeofs1;
		ivec4 nTmp1 = ivec4(uvec4(H_k19b9d1));
		int H_f8ejai = nTmp1.x & C_255;
		float H_8sn2351 = float(H_f8ejai);
		p = C_0d0;
		while (true) {
			bool H_v4s46m1 = p >= H_8sn2351;
			if (H_v4s46m1) {
				break;
			}
			float H_b2u81e1 = C_1d0 + p;
			p = H_b2u81e1;
		}
		int H_d40csw = int(uint(nTmp1.x) >> uint(C_8));
		float H_c2ksni = float(H_d40csw);
		s = C_0d0;
		while (true) {
			bool H_2hpykj1 = s >= H_c2ksni;
			if (H_2hpykj1) {
				break;
			}
			float H_arf8be1 = C_1d0 + s;
			s = H_arf8be1;
		}
		int H_4dij9g1 = nTmp1.y & C_255;
		float H_7na65o = float(H_4dij9g1);
		ss = C_0d0;
		while (true) {
			bool H_30d9tc1 = ss >= H_7na65o;
			if (H_30d9tc1) {
				break;
			}
			float ss1 = C_1d0 + ss;
			ss = ss1;
		}
	}
	float paramt = vecSourceTexel3.w * C_128d0;
	float misc3a5 = clamp(paramt, C_0d0, C_1d0);
	float paramu = Lg_3.w / C_10d0;
	float H_sgz7p5 = fract(paramu);
	float H_7nc15l = C_10d0 * H_sgz7p5;
	float flAlphaValue = round(H_7nc15l);
	float flAlphaValue1 = mix(vecSourceTexel3.w, misc3a5, flAlphaValue);
	vec3 H_1s3obw = vec3(g_flMod2xIdentity);
	vec3 vModulationColor = mix(H_1s3obw, vecSourceTexel3.xyz, PS_INPUT_gl_m_vTintColor.xyz);
	vec3 vFinalOutput = mix(H_1s3obw, vModulationColor, flAlphaValue1);
	float flAlphaScale = abs(g_vecBlendControl.w);
	float H_x5dfy31 = flAlphaScale * flAlphaValue1;
	vec4 H_nptcur = vec4(vFinalOutput.x, vFinalOutput.y, vFinalOutput.z, H_x5dfy31);
	PS_OUTPUT_gl_m_vColor = H_nptcur;
}