var<private> x_GLF_global_loop_count : i32;

var<private> x_GLF_color : vec4<f32>;

fn main_1() {
  var m23 : mat2x3<f32>;
  var m24 : mat2x4<f32>;
  var m32 : mat3x2<f32>;
  var m33 : mat3x3<f32>;
  var m34 : mat3x4<f32>;
  var m42 : mat4x2<f32>;
  var m43 : mat4x3<f32>;
  var m44 : mat4x4<f32>;
  var i : i32;
  var i_1 : i32;
  var i_2 : i32;
  var i_3 : i32;
  var i_4 : i32;
  var i_5 : i32;
  var i_6 : i32;
  var i_7 : i32;
  var i_8 : i32;
  var i_9 : i32;
  var i_10 : i32;
  var i_11 : i32;
  var i_12 : i32;
  var i_13 : i32;
  var i_14 : i32;
  var i_15 : i32;
  var i_16 : i32;
  var i_17 : i32;
  var i_18 : i32;
  var i_19 : i32;
  var i_20 : i32;
  var i_21 : i32;
  var i_22 : i32;
  var i_23 : i32;
  var i_24 : i32;
  var i_25 : i32;
  var i_26 : i32;
  var i_27 : i32;
  var i_28 : i32;
  var i_29 : i32;
  var i_30 : i32;
  var i_31 : i32;
  var i_32 : i32;
  var i_33 : i32;
  var i_34 : i32;
  var i_35 : i32;
  var i_36 : i32;
  var i_37 : i32;
  var sum : f32;
  var r : i32;
  x_GLF_global_loop_count = 0;
  m23 = mat2x3<f32>(vec3<f32>(0.0, 0.0, 0.0), vec3<f32>(0.0, 0.0, 0.0));
  m24 = mat2x4<f32>(vec4<f32>(0.0, 0.0, 0.0, 0.0), vec4<f32>(0.0, 0.0, 0.0, 0.0));
  m32 = mat3x2<f32>(vec2<f32>(0.0, 0.0), vec2<f32>(0.0, 0.0), vec2<f32>(0.0, 0.0));
  m33 = mat3x3<f32>(vec3<f32>(0.0, 0.0, 0.0), vec3<f32>(0.0, 0.0, 0.0), vec3<f32>(0.0, 0.0, 0.0));
  m34 = mat3x4<f32>(vec4<f32>(0.0, 0.0, 0.0, 0.0), vec4<f32>(0.0, 0.0, 0.0, 0.0), vec4<f32>(0.0, 0.0, 0.0, 0.0));
  m42 = mat4x2<f32>(vec2<f32>(0.0, 0.0), vec2<f32>(0.0, 0.0), vec2<f32>(0.0, 0.0), vec2<f32>(0.0, 0.0));
  m43 = mat4x3<f32>(vec3<f32>(0.0, 0.0, 0.0), vec3<f32>(0.0, 0.0, 0.0), vec3<f32>(0.0, 0.0, 0.0), vec3<f32>(0.0, 0.0, 0.0));
  m44 = mat4x4<f32>(vec4<f32>(0.0, 0.0, 0.0, 0.0), vec4<f32>(0.0, 0.0, 0.0, 0.0), vec4<f32>(0.0, 0.0, 0.0, 0.0), vec4<f32>(0.0, 0.0, 0.0, 0.0));
  i = 0;
  loop {
    let x_105 : i32 = i;
    if ((x_105 < 1)) {
    } else {
      break;
    }
    i_1 = 0;
    loop {
      let x_112 : i32 = i_1;
      if ((x_112 < 1)) {
      } else {
        break;
      }
      i_2 = 0;
      loop {
        let x_119 : i32 = i_2;
        if ((x_119 < 1)) {
        } else {
          break;
        }
        i_3 = 0;
        loop {
          let x_126 : i32 = i_3;
          if ((x_126 < 1)) {
          } else {
            break;
          }
          i_4 = 0;
          loop {
            let x_133 : i32 = i_4;
            if ((x_133 < 1)) {
            } else {
              break;
            }
            i_5 = 0;
            loop {
              let x_140 : i32 = i_5;
              if ((x_140 < 1)) {
              } else {
                break;
              }
              i_6 = 0;
              loop {
                let x_147 : i32 = i_6;
                if ((x_147 < 1)) {
                } else {
                  break;
                }
                i_7 = 0;
                loop {
                  let x_154 : i32 = i_7;
                  if ((x_154 < 1)) {
                  } else {
                    break;
                  }
                  i_8 = 0;
                  loop {
                    let x_161 : i32 = i_8;
                    if ((x_161 < 1)) {
                    } else {
                      break;
                    }
                    i_9 = 0;
                    loop {
                      let x_168 : i32 = i_9;
                      if ((x_168 < 1)) {
                      } else {
                        break;
                      }
                      i_10 = 0;
                      loop {
                        let x_175 : i32 = i_10;
                        if ((x_175 < 1)) {
                        } else {
                          break;
                        }
                        i_11 = 0;
                        loop {
                          let x_182 : i32 = i_11;
                          if ((x_182 < 1)) {
                          } else {
                            break;
                          }
                          i_12 = 0;
                          loop {
                            let x_189 : i32 = i_12;
                            if ((x_189 < 1)) {
                            } else {
                              break;
                            }
                            i_13 = 0;
                            loop {
                              let x_196 : i32 = i_13;
                              if ((x_196 < 1)) {
                              } else {
                                break;
                              }
                              i_14 = 0;
                              loop {
                                let x_203 : i32 = i_14;
                                if ((x_203 < 1)) {
                                } else {
                                  break;
                                }
                                i_15 = 0;
                                loop {
                                  let x_210 : i32 = i_15;
                                  if ((x_210 < 1)) {
                                  } else {
                                    break;
                                  }
                                  i_16 = 0;
                                  loop {
                                    let x_217 : i32 = i_16;
                                    if ((x_217 < 1)) {
                                    } else {
                                      break;
                                    }
                                    i_17 = 0;
                                    loop {
                                      let x_224 : i32 = i_17;
                                      if ((x_224 < 1)) {
                                      } else {
                                        break;
                                      }
                                      i_18 = 0;
                                      loop {
                                        let x_231 : i32 = i_18;
                                        if ((x_231 < 1)) {
                                        } else {
                                          break;
                                        }
                                        i_19 = 0;
                                        loop {
                                          let x_238 : i32 = i_19;
                                          if ((x_238 < 1)) {
                                          } else {
                                            break;
                                          }
                                          i_20 = 0;
                                          loop {
                                            let x_245 : i32 = i_20;
                                            if ((x_245 < 1)) {
                                            } else {
                                              break;
                                            }
                                            i_21 = 0;
                                            loop {
                                              let x_252 : i32 = i_21;
                                              if ((x_252 < 1)) {
                                              } else {
                                                break;
                                              }
                                              i_22 = 0;
                                              loop {
                                                let x_259 : i32 = i_22;
                                                if ((x_259 < 1)) {
                                                } else {
                                                  break;
                                                }
                                                i_23 = 0;
                                                loop {
                                                  let x_266 : i32 = i_23;
                                                  if ((x_266 < 1)) {
                                                  } else {
                                                    break;
                                                  }
                                                  i_24 = 0;
                                                  loop {
                                                    let x_273 : i32 = i_24;
                                                    if ((x_273 < 1)) {
                                                    } else {
                                                      break;
                                                    }
                                                    i_25 = 0;
                                                    loop {
                                                      let x_280 : i32 = i_25;
                                                      if ((x_280 < 1)) {
                                                      } else {
                                                        break;
                                                      }
                                                      i_26 = 0;
                                                      loop {
                                                        let x_287 : i32 = i_26;
                                                        if ((x_287 < 1)) {
                                                        } else {
                                                          break;
                                                        }
                                                        i_27 = 0;
                                                        loop {
                                                          let x_294 : i32 = i_27;
                                                          if ((x_294 < 1)) {
                                                          } else {
                                                            break;
                                                          }
                                                          i_28 = 0;
                                                          loop {
                                                            let x_301 : i32 = i_28;
                                                            if ((x_301 < 1)) {
                                                            } else {
                                                              break;
                                                            }
                                                            i_29 = 0;
                                                            loop {
                                                              let x_308 : i32 = i_29;
                                                              if ((x_308 < 1)) {
                                                              } else {
                                                                break;
                                                              }
                                                              i_30 = 0;
                                                              loop {
                                                                let x_315 : i32 = i_30;
                                                                if ((x_315 < 1)) {
                                                                } else {
                                                                  break;
                                                                }
                                                                i_31 = 0;
                                                                loop {
                                                                  let x_322 : i32 = i_31;
                                                                  if ((x_322 < 1)) {
                                                                  } else {
                                                                    break;
                                                                  }
                                                                  i_32 = 0;
                                                                  loop {
                                                                    let x_329 : i32 = i_32;
                                                                    if ((x_329 < 1)) {
                                                                    } else {
                                                                      break;
                                                                    }
                                                                    i_33 = 0;
                                                                    loop {
                                                                      let x_336 : i32 = i_33;
                                                                      if ((x_336 < 1)) {
                                                                      } else {
                                                                        break;
                                                                      }
                                                                      i_34 = 0;
                                                                      loop {
                                                                        let x_343 : i32 = i_34;
                                                                        if ((x_343 < 1)) {
                                                                        } else {
                                                                          break;
                                                                        }
                                                                        i_35 = 0;
                                                                        loop {
                                                                          let x_350 : i32 = i_35;
                                                                          if ((x_350 < 1)) {
                                                                          } else {
                                                                            break;
                                                                          }
                                                                          i_36 = 0;
                                                                          loop {
                                                                            let x_357 : i32 = i_36;
                                                                            if ((x_357 < 1)) {
                                                                            } else {
                                                                              break;
                                                                            }
                                                                            i_37 = 0;
                                                                            loop {
                                                                              let x_364 : i32 = i_37;
                                                                              if ((x_364 < 1)) {
                                                                              } else {
                                                                                break;
                                                                              }
                                                                              loop {
                                                                                let x_371 : i32 = x_GLF_global_loop_count;
                                                                                x_GLF_global_loop_count = (x_371 + 1);

                                                                                continuing {
                                                                                  let x_373 : i32 = x_GLF_global_loop_count;
                                                                                  if ((x_373 < 98)) {
                                                                                  } else {
                                                                                    break;
                                                                                  }
                                                                                }
                                                                              }
                                                                              let x_375 : i32 = i_37;
                                                                              let x_376 : i32 = i_37;
                                                                              m23[x_375][x_376] = 1.0;
                                                                              let x_378 : i32 = i_37;
                                                                              let x_379 : i32 = i_37;
                                                                              m24[x_378][x_379] = 1.0;
                                                                              let x_381 : i32 = i_37;
                                                                              let x_382 : i32 = i_37;
                                                                              m32[x_381][x_382] = 1.0;
                                                                              let x_384 : i32 = i_37;
                                                                              let x_385 : i32 = i_37;
                                                                              m33[x_384][x_385] = 1.0;
                                                                              let x_387 : i32 = i_37;
                                                                              let x_388 : i32 = i_37;
                                                                              m34[x_387][x_388] = 1.0;
                                                                              let x_390 : i32 = i_37;
                                                                              let x_391 : i32 = i_37;
                                                                              m42[x_390][x_391] = 1.0;
                                                                              let x_393 : i32 = i_37;
                                                                              let x_394 : i32 = i_37;
                                                                              m43[x_393][x_394] = 1.0;
                                                                              let x_396 : i32 = i_37;
                                                                              let x_397 : i32 = i_37;
                                                                              m44[x_396][x_397] = 1.0;

                                                                              continuing {
                                                                                let x_399 : i32 = i_37;
                                                                                i_37 = (x_399 + 1);
                                                                              }
                                                                            }

                                                                            continuing {
                                                                              let x_401 : i32 = i_36;
                                                                              i_36 = (x_401 + 1);
                                                                            }
                                                                          }

                                                                          continuing {
                                                                            let x_403 : i32 = i_35;
                                                                            i_35 = (x_403 + 1);
                                                                          }
                                                                        }

                                                                        continuing {
                                                                          let x_405 : i32 = i_34;
                                                                          i_34 = (x_405 + 1);
                                                                        }
                                                                      }

                                                                      continuing {
                                                                        let x_407 : i32 = i_33;
                                                                        i_33 = (x_407 + 1);
                                                                      }
                                                                    }

                                                                    continuing {
                                                                      let x_409 : i32 = i_32;
                                                                      i_32 = (x_409 + 1);
                                                                    }
                                                                  }

                                                                  continuing {
                                                                    let x_411 : i32 = i_31;
                                                                    i_31 = (x_411 + 1);
                                                                  }
                                                                }

                                                                continuing {
                                                                  let x_413 : i32 = i_30;
                                                                  i_30 = (x_413 + 1);
                                                                }
                                                              }

                                                              continuing {
                                                                let x_415 : i32 = i_29;
                                                                i_29 = (x_415 + 1);
                                                              }
                                                            }

                                                            continuing {
                                                              let x_417 : i32 = i_28;
                                                              i_28 = (x_417 + 1);
                                                            }
                                                          }

                                                          continuing {
                                                            let x_419 : i32 = i_27;
                                                            i_27 = (x_419 + 1);
                                                          }
                                                        }

                                                        continuing {
                                                          let x_421 : i32 = i_26;
                                                          i_26 = (x_421 + 1);
                                                        }
                                                      }

                                                      continuing {
                                                        let x_423 : i32 = i_25;
                                                        i_25 = (x_423 + 1);
                                                      }
                                                    }

                                                    continuing {
                                                      let x_425 : i32 = i_24;
                                                      i_24 = (x_425 + 1);
                                                    }
                                                  }

                                                  continuing {
                                                    let x_427 : i32 = i_23;
                                                    i_23 = (x_427 + 1);
                                                  }
                                                }

                                                continuing {
                                                  let x_429 : i32 = i_22;
                                                  i_22 = (x_429 + 1);
                                                }
                                              }

                                              continuing {
                                                let x_431 : i32 = i_21;
                                                i_21 = (x_431 + 1);
                                              }
                                            }

                                            continuing {
                                              let x_433 : i32 = i_20;
                                              i_20 = (x_433 + 1);
                                            }
                                          }

                                          continuing {
                                            let x_435 : i32 = i_19;
                                            i_19 = (x_435 + 1);
                                          }
                                        }

                                        continuing {
                                          let x_437 : i32 = i_18;
                                          i_18 = (x_437 + 1);
                                        }
                                      }

                                      continuing {
                                        let x_439 : i32 = i_17;
                                        i_17 = (x_439 + 1);
                                      }
                                    }

                                    continuing {
                                      let x_441 : i32 = i_16;
                                      i_16 = (x_441 + 1);
                                    }
                                  }

                                  continuing {
                                    let x_443 : i32 = i_15;
                                    i_15 = (x_443 + 1);
                                  }
                                }

                                continuing {
                                  let x_445 : i32 = i_14;
                                  i_14 = (x_445 + 1);
                                }
                              }

                              continuing {
                                let x_447 : i32 = i_13;
                                i_13 = (x_447 + 1);
                              }
                            }

                            continuing {
                              let x_449 : i32 = i_12;
                              i_12 = (x_449 + 1);
                            }
                          }

                          continuing {
                            let x_451 : i32 = i_11;
                            i_11 = (x_451 + 1);
                          }
                        }

                        continuing {
                          let x_453 : i32 = i_10;
                          i_10 = (x_453 + 1);
                        }
                      }

                      continuing {
                        let x_455 : i32 = i_9;
                        i_9 = (x_455 + 1);
                      }
                    }

                    continuing {
                      let x_457 : i32 = i_8;
                      i_8 = (x_457 + 1);
                    }
                  }

                  continuing {
                    let x_459 : i32 = i_7;
                    i_7 = (x_459 + 1);
                  }
                }

                continuing {
                  let x_461 : i32 = i_6;
                  i_6 = (x_461 + 1);
                }
              }

              continuing {
                let x_463 : i32 = i_5;
                i_5 = (x_463 + 1);
              }
            }

            continuing {
              let x_465 : i32 = i_4;
              i_4 = (x_465 + 1);
            }
          }

          continuing {
            let x_467 : i32 = i_3;
            i_3 = (x_467 + 1);
          }
        }

        continuing {
          let x_469 : i32 = i_2;
          i_2 = (x_469 + 1);
        }
      }

      continuing {
        let x_471 : i32 = i_1;
        i_1 = (x_471 + 1);
      }
    }

    continuing {
      let x_473 : i32 = i;
      i = (x_473 + 1);
    }
  }
  sum = 0.0;
  r = 0;
  loop {
    let x_479 : i32 = x_GLF_global_loop_count;
    if ((x_479 < 100)) {
    } else {
      break;
    }
    let x_482 : i32 = x_GLF_global_loop_count;
    x_GLF_global_loop_count = (x_482 + 1);
    let x_484 : i32 = r;
    let x_486 : f32 = m23[0][x_484];
    let x_487 : f32 = sum;
    sum = (x_487 + x_486);
    let x_489 : i32 = r;
    let x_491 : f32 = m24[0][x_489];
    let x_492 : f32 = sum;
    sum = (x_492 + x_491);
    let x_494 : i32 = r;
    let x_496 : f32 = m32[0][x_494];
    let x_497 : f32 = sum;
    sum = (x_497 + x_496);
    let x_499 : i32 = r;
    let x_501 : f32 = m33[0][x_499];
    let x_502 : f32 = sum;
    sum = (x_502 + x_501);
    let x_504 : i32 = r;
    let x_506 : f32 = m34[0][x_504];
    let x_507 : f32 = sum;
    sum = (x_507 + x_506);
    let x_509 : i32 = r;
    let x_511 : f32 = m42[0][x_509];
    let x_512 : f32 = sum;
    sum = (x_512 + x_511);
    let x_514 : i32 = r;
    let x_516 : f32 = m43[0][x_514];
    let x_517 : f32 = sum;
    sum = (x_517 + x_516);
    let x_519 : i32 = r;
    let x_521 : f32 = m44[0][x_519];
    let x_522 : f32 = sum;
    sum = (x_522 + x_521);

    continuing {
      let x_524 : i32 = r;
      r = (x_524 + 1);
    }
  }
  let x_526 : f32 = sum;
  if ((x_526 == 8.0)) {
    x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
  } else {
    x_GLF_color = vec4<f32>(0.0, 0.0, 0.0, 0.0);
  }
  return;
}

struct main_out {
  [[location(0)]]
  x_GLF_color_1 : vec4<f32>;
};

[[stage(fragment)]]
fn main() -> main_out {
  main_1();
  return main_out(x_GLF_color);
}
