#include <metal_stdlib>

using namespace metal;
void textureSampleBias_9dbb51(texture2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1, device float4* const tint_symbol_2) {
  float2 arg_2 = float2(1.0f);
  int arg_3 = 1;
  float arg_4 = 1.0f;
  float4 res = tint_symbol.sample(tint_symbol_1, arg_2, arg_3, bias(arg_4), int2(1));
  *(tint_symbol_2) = res;
}

fragment void fragment_main(texture2d_array<float, access::sample> tint_symbol_3 [[texture(0)]], sampler tint_symbol_4 [[sampler(0)]], device float4* tint_symbol_5 [[buffer(0)]]) {
  textureSampleBias_9dbb51(tint_symbol_3, tint_symbol_4, tint_symbol_5);
  return;
}

