uniform half4 colorRed;uniform half4 colorGreen;int a(int b){for(int c=0;c<10;++c){if(c==b){return c;}}return 0;}int b(int c){int d=0;for(int e=0;e<10;++e){if(e<c){continue;}d+=e;}return d;}int c(int d){int e=0;for(int g=0;g<10;g+=1){if(g>d){break;}e+=g;}return e;}bool d(){int4 e=int4(9);for(int f=1;f<=3;++f){e=int4(e.yzw,f);}return e==int4(9,1,2,3);}bool e(){int4 f=int4(9);for(int g=1;g<4;++g){f=int4(f.yzw,g);}return f==int4(9,1,2,3);}bool f(){int4 g=int4(9);for(int h=3;h>=1;--h){g=int4(g.yzw,h);}return g==int4(9,3,2,1);}bool g(){int4 h=int4(9);for(int j=3;j>0;--j){h=int4(h.yzw,j);}return h==int4(9,3,2,1);}bool h(){int4 i=int4(9);for(int j=1;j!=4;++j){i=int4(i.yzw,j);}return i==int4(9,1,2,3);}bool i(){int4 j=int4(9);for(int k=1;k==1;++k){j=int4(j.yzw,k);}return j==int4(9,9,9,1);}half4 main(float2 j){int k=int(clamp(j.x,float(colorGreen.y),float(colorGreen.w)))*5;return(((((((a(k)==5&&b(k)==35)&&c(5)==15)&&d())&&e())&&f())&&g())&&i())&&h()?colorGreen:colorRed;}
