#version 310 es
precision mediump float;

layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
void unused_entry_point() {
  return;
}
void main() {
  unused_entry_point();
}



void f() {
  bool tint_tmp = true;
  if (!tint_tmp) {
    tint_tmp = false;
  }
  bvec2 v2 = bvec2((tint_tmp));
  bool tint_tmp_1 = true;
  if (!tint_tmp_1) {
    tint_tmp_1 = false;
  }
  bvec3 v3 = bvec3((tint_tmp_1));
  bool tint_tmp_2 = true;
  if (!tint_tmp_2) {
    tint_tmp_2 = false;
  }
  bvec4 v4 = bvec4((tint_tmp_2));
}
