half4 color;void W();half4 main(float2 a){W();return color;}void a(){color=half4(1.);}void b(){a();}void c(){b();}void d(){c();}void e(){d();}void f(){e();}void g(){f();}void h(){g();}void i(){h();}void j(){i();}void k(){j();}void l(){k();}void m(){l();}void n(){m();}void o(){n();}void p(){o();}void q(){p();}void r(){q();}void s(){r();}void t(){s();}void u(){t();}void v(){u();}void w(){v();}void x(){w();}void y(){x();}void z(){y();}void A(){z();}void B(){A();}void C(){B();}void D(){C();}void E(){D();}void F(){E();}void G(){F();}void H(){G();}void I(){H();}void J(){I();}void K(){J();}void L(){K();}void M(){L();}void N(){M();}void O(){N();}void P(){O();}void Q(){P();}void R(){Q();}void S(){R();}void T(){S();}void U(){T();}void V(){U();}void W(){V();}
