#include <metal_stdlib>
using namespace metal;

struct main_outputs {
  float4 tint_symbol [[color(0)]];
};

void bar() {
}

float4 main_inner() {
  float2 a = float2(0.0f);
  bar();
  return float4(0.40000000596046447754f, 0.40000000596046447754f, 0.80000001192092895508f, 1.0f);
}

fragment main_outputs v() {
  main_outputs tint_wrapper_result = {};
  tint_wrapper_result.tint_symbol = main_inner();
  return tint_wrapper_result;
}
