uniform float2x2 testMatrix2x2;uniform float3x3 testMatrix3x3;uniform float4 testInputs;uniform half4 colorRed;uniform half4 colorGreen;uniform half unknownInput;bool a(){float2x2 b;float2x2 c;b=testMatrix2x2;b=testMatrix2x2;if(b!=testMatrix2x2)return false;if(b!=testMatrix2x2)return false;if(b!=testMatrix2x2)return false;b=-b;if(b!=-testMatrix2x2)return false;c=float2x2(0.);c=float2x2(0.);return c==float2x2(0.);}bool b(){float3x3 c;float3x3 d;c=testMatrix3x3;c=testMatrix3x3;if(c!=testMatrix3x3)return false;if(c!=testMatrix3x3)return false;if(c!=testMatrix3x3)return false;c=-c;if(c!=-testMatrix3x3)return false;d=float3x3(0.);d=float3x3(0.);return d==float3x3(0.);}bool c(){float4x4 d=float4x4(testInputs,testInputs,testInputs,testInputs);float4x4 e;float4x4 f;e=d;e=d;if(e!=d)return false;if(e!=d)return false;if(e!=d)return false;e=-e;if(e!=-d)return false;f=float4x4(0.);f=float4x4(0.);return f==float4x4(0.);}bool d(){float2x2 e;float2x2 f;const float2x2 h=float2x2(0.);float k=testInputs.x;e=float2x2(k);e=float2x2(k);if(e!=float2x2(k))return false;e=k/float2x2(float4(1.));if(e!=float2x2(k,k,k,k))return false;e=k+h;e=h+k;if(e!=float2x2(k,k,k,k))return false;e=k-h;e=h-k;if(e!=-float2x2(k,k,k,k))return false;f=float2x2(0.);f=float2x2(0.);return f==h;}bool e(){float3x3 f;float3x3 g;const float3x3 j=float3x3(0.);float l=testInputs.x;float3 n=float3(l);f=float3x3(l);f=float3x3(l);if(f!=float3x3(l))return false;f=l/float3x3(float3(1.),float3(1.),float3(1.));if(f!=float3x3(n,n,n))return false;f=l+j;f=j+l;if(f!=float3x3(n,n,n))return false;f=l-j;f=j-l;if(f!=-float3x3(n,n,n))return false;g=float3x3(0.);g=float3x3(0.);return g==j;}bool f(){float4x4 g;float4x4 h;const float4x4 k=float4x4(0.);float n=testInputs.x;float4 o=float4(n);g=float4x4(n);g=float4x4(n);if(g!=float4x4(n))return false;g=n/float4x4(float4(1.),float4(1.),float4(1.),float4(1.));if(g!=float4x4(o,o,o,o))return false;g=n+k;g=k+n;if(g!=float4x4(o,o,o,o))return false;g=n-k;g=k-n;if(g!=-float4x4(o,o,o,o))return false;h=float4x4(0.);h=float4x4(0.);return h==k;}half4 main(float2 g){return((((a()&&b())&&c())&&d())&&e())&&f()?colorGreen:colorRed;}
