#version 120
vec2 xll_matrixindex_mf2x2_i (mat2 m, int i) { vec2 v; v.x=m[0][i]; v.y=m[1][i]; return v; }
vec3 xll_matrixindex_mf3x3_i (mat3 m, int i) { vec3 v; v.x=m[0][i]; v.y=m[1][i]; v.z=m[2][i]; return v; }
vec4 xll_matrixindex_mf4x4_i (mat4 m, int i) { vec4 v; v.x=m[0][i]; v.y=m[1][i]; v.z=m[2][i]; v.w=m[3][i]; return v; }
#line 5
#line 9
#line 15
uniform float val;
#line 9
vec2 mat_downcast( in mat3x2 m ) {
    mat2 m22 = mat2( m);
    return xll_matrixindex_mf2x2_i (m22, 0).xx;
}
#line 5
void vec_downcast( in vec2 f ) {
}
#line 1
void vec_upcast( in vec4 f ) {
}
#line 16
vec4 xlat_main(  ) {
    vec_upcast( vec4( 0.0));
    #line 19
    vec_downcast( vec2( 1.0));
    mat4 m = mat4( val);
    mat4x2 m2 = mat4x2( m);
    #line 23
    mat2 m3 = mat2( m2);
    mat2 m5 = (m3 + mat2( m2));
    #line 27
    return vec4( (vec2( xll_matrixindex_mf4x4_i (m, 3)) * mat_downcast( mat3x2( m2))), 0.0, 0.0);
}
void main() {
    vec4 xl_retval;
    xl_retval = xlat_main( );
    gl_FragData[0] = vec4(xl_retval);
}

// uniforms:
// val:<none> type 9 arrsize 0