import * as env from 'env';

  var bufferView;

  var scratchBuffer = new ArrayBuffer(16);
  var i32ScratchView = new Int32Array(scratchBuffer);
  var f32ScratchView = new Float32Array(scratchBuffer);
  var f64ScratchView = new Float64Array(scratchBuffer);
  
  function wasm2js_scratch_load_i32(index) {
    return i32ScratchView[index];
  }
      
  function wasm2js_scratch_store_i32(index, value) {
    i32ScratchView[index] = value;
  }
      
  function wasm2js_scratch_load_f64() {
    return f64ScratchView[0];
  }
      
  function wasm2js_scratch_store_f64(value) {
    f64ScratchView[0] = value;
  }
      
  function wasm2js_scratch_load_f32() {
    return f32ScratchView[2];
  }
      
  function wasm2js_scratch_store_f32(value) {
    f32ScratchView[2] = value;
  }
      
function asmFunc(imports) {
 var buffer = new ArrayBuffer(65536);
 var HEAP8 = new Int8Array(buffer);
 var HEAP16 = new Int16Array(buffer);
 var HEAP32 = new Int32Array(buffer);
 var HEAPU8 = new Uint8Array(buffer);
 var HEAPU16 = new Uint16Array(buffer);
 var HEAPU32 = new Uint32Array(buffer);
 var HEAPF32 = new Float32Array(buffer);
 var HEAPF64 = new Float64Array(buffer);
 var Math_imul = Math.imul;
 var Math_fround = Math.fround;
 var Math_abs = Math.abs;
 var Math_clz32 = Math.clz32;
 var Math_min = Math.min;
 var Math_max = Math.max;
 var Math_floor = Math.floor;
 var Math_ceil = Math.ceil;
 var Math_trunc = Math.trunc;
 var Math_sqrt = Math.sqrt;
 var env = imports.env;
 var setTempRet0 = env.setTempRet0;
 var i64toi32_i32$HIGH_BITS = 0;
 function $0() {
  var $0_1 = 0;
  $0_1 = 0;
  return HEAPU8[$0_1 >> 0] | 0 | ((HEAPU8[($0_1 + 1 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($0_1 + 2 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($0_1 + 3 | 0) >> 0] | 0) << 24 | 0) | 0) | 0 | 0;
 }
 
 function $1() {
  var $2_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
  $2_1 = 0;
  i64toi32_i32$0 = HEAPU8[$2_1 >> 0] | 0 | ((HEAPU8[($2_1 + 1 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($2_1 + 2 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($2_1 + 3 | 0) >> 0] | 0) << 24 | 0) | 0) | 0;
  i64toi32_i32$1 = HEAPU8[($2_1 + 4 | 0) >> 0] | 0 | ((HEAPU8[($2_1 + 5 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($2_1 + 6 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($2_1 + 7 | 0) >> 0] | 0) << 24 | 0) | 0) | 0;
  i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
  return i64toi32_i32$0 | 0;
 }
 
 function $2() {
  var $0_1 = 0;
  $0_1 = 0;
  return Math_fround((wasm2js_scratch_store_i32(2, HEAPU8[$0_1 >> 0] | 0 | ((HEAPU8[($0_1 + 1 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($0_1 + 2 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($0_1 + 3 | 0) >> 0] | 0) << 24 | 0) | 0) | 0), wasm2js_scratch_load_f32()));
 }
 
 function $3() {
  var $1_1 = 0, i64toi32_i32$1 = 0;
  $1_1 = 0;
  i64toi32_i32$1 = HEAPU8[($1_1 + 4 | 0) >> 0] | 0 | ((HEAPU8[($1_1 + 5 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($1_1 + 6 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($1_1 + 7 | 0) >> 0] | 0) << 24 | 0) | 0) | 0;
  wasm2js_scratch_store_i32(0 | 0, HEAPU8[$1_1 >> 0] | 0 | ((HEAPU8[($1_1 + 1 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($1_1 + 2 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($1_1 + 3 | 0) >> 0] | 0) << 24 | 0) | 0) | 0 | 0);
  wasm2js_scratch_store_i32(1 | 0, i64toi32_i32$1 | 0);
  return +(+wasm2js_scratch_load_f64());
 }
 
 function $4() {
  var $0_1 = 0, $1_1 = 0;
  $0_1 = 0;
  $1_1 = 0;
  HEAP8[$0_1 >> 0] = $1_1;
  HEAP8[($0_1 + 1 | 0) >> 0] = $1_1 >>> 8 | 0;
  HEAP8[($0_1 + 2 | 0) >> 0] = $1_1 >>> 16 | 0;
  HEAP8[($0_1 + 3 | 0) >> 0] = $1_1 >>> 24 | 0;
 }
 
 function $5() {
  var $0_1 = 0, $1_1 = 0, $2_1 = 0;
  $0_1 = 0;
  $1_1 = 0;
  HEAP8[$0_1 >> 0] = $1_1;
  HEAP8[($0_1 + 1 | 0) >> 0] = $1_1 >>> 8 | 0;
  HEAP8[($0_1 + 2 | 0) >> 0] = $1_1 >>> 16 | 0;
  HEAP8[($0_1 + 3 | 0) >> 0] = $1_1 >>> 24 | 0;
  $2_1 = 0;
  HEAP8[($0_1 + 4 | 0) >> 0] = $2_1;
  HEAP8[($0_1 + 5 | 0) >> 0] = $2_1 >>> 8 | 0;
  HEAP8[($0_1 + 6 | 0) >> 0] = $2_1 >>> 16 | 0;
  HEAP8[($0_1 + 7 | 0) >> 0] = $2_1 >>> 24 | 0;
 }
 
 function $6() {
  var $0_1 = 0, $1_1 = 0;
  $0_1 = 0;
  $1_1 = (wasm2js_scratch_store_f32(Math_fround(0.0)), wasm2js_scratch_load_i32(2));
  HEAP8[$0_1 >> 0] = $1_1;
  HEAP8[($0_1 + 1 | 0) >> 0] = $1_1 >>> 8 | 0;
  HEAP8[($0_1 + 2 | 0) >> 0] = $1_1 >>> 16 | 0;
  HEAP8[($0_1 + 3 | 0) >> 0] = $1_1 >>> 24 | 0;
 }
 
 function $7() {
  var $1_1 = 0, $2_1 = 0, $3_1 = 0, i64toi32_i32$0 = 0;
  wasm2js_scratch_store_f64(+(0.0));
  i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0;
  $1_1 = 0;
  $2_1 = wasm2js_scratch_load_i32(0 | 0) | 0;
  HEAP8[$1_1 >> 0] = $2_1;
  HEAP8[($1_1 + 1 | 0) >> 0] = $2_1 >>> 8 | 0;
  HEAP8[($1_1 + 2 | 0) >> 0] = $2_1 >>> 16 | 0;
  HEAP8[($1_1 + 3 | 0) >> 0] = $2_1 >>> 24 | 0;
  $3_1 = i64toi32_i32$0;
  HEAP8[($1_1 + 4 | 0) >> 0] = $3_1;
  HEAP8[($1_1 + 5 | 0) >> 0] = $3_1 >>> 8 | 0;
  HEAP8[($1_1 + 6 | 0) >> 0] = $3_1 >>> 16 | 0;
  HEAP8[($1_1 + 7 | 0) >> 0] = $3_1 >>> 24 | 0;
 }
 
 function legalstub$1() {
  var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $7_1 = 0, $0_1 = 0, $0$hi = 0, i64toi32_i32$2 = 0;
  i64toi32_i32$0 = $1() | 0;
  i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
  $0_1 = i64toi32_i32$0;
  $0$hi = i64toi32_i32$1;
  i64toi32_i32$2 = i64toi32_i32$0;
  i64toi32_i32$0 = 0;
  i64toi32_i32$3 = 32;
  i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
  if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
   i64toi32_i32$0 = 0;
   $7_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
  } else {
   i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
   $7_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
  }
  setTempRet0($7_1 | 0);
  i64toi32_i32$0 = $0$hi;
  return $0_1 | 0;
 }
 
 bufferView = HEAPU8;
 function __wasm_memory_size() {
  return buffer.byteLength / 65536 | 0;
 }
 
 return {
  "i32_load": $0, 
  "i64_load": legalstub$1, 
  "f32_load": $2, 
  "f64_load": $3, 
  "i32_store": $4, 
  "i64_store": $5, 
  "f32_store": $6, 
  "f64_store": $7
 };
}

var retasmFunc = asmFunc({
  "env": env,
});
export var i32_load = retasmFunc.i32_load;
export var i64_load = retasmFunc.i64_load;
export var f32_load = retasmFunc.f32_load;
export var f64_load = retasmFunc.f64_load;
export var i32_store = retasmFunc.i32_store;
export var i64_store = retasmFunc.i64_store;
export var f32_store = retasmFunc.f32_store;
export var f64_store = retasmFunc.f64_store;