#version 450

uniform sampler2D samp2D;
in mediump vec2 coord;

in vec4 u, w;
out vec4 color;

struct s1 {
    int i;
    float f;
};

struct s2 {
    int i;
    float f;
	s1 s1_1;
};

layout(std140) uniform ub1 { s2 foo2a; } uName1;
layout(std430) buffer  ub2 { s2 foo2b; } uName2;

void main()
{
    vec4 v;
    s1 a[3], b[3];
    a = s1[3](s1(int(u.x), u.y), s1(int(u.z), u.w), s1(14, 14.0));
    b = s1[3](s1(17, 17.0), s1(int(w.x), w.y), s1(int(w.z), w.w));

    if (uName1.foo2a == uName2.foo2b)
        v = texture(samp2D, coord);
    else
        v = texture(samp2D, 2.0*coord);

    if (u == v)
        v *= 3.0;

    if (u != v)
        v *= 4.0;

    if (coord == v.yw)
        v *= 5.0;

    if (a == b)
        v *= 6.0;

    if (a != b)
        v *= 7.0;

	color =  v;
}
