HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/dev-telemedicina.teky.com.co/public/js/record/WebAudioRecorderMp3.min.js
(function(self) {
  var Module = self.Mp3LameEncoderConfig;
  var Module;
  if (!Module) Module = (typeof Module !== "undefined" ? Module : null) || {};
  var moduleOverrides = {};
  for (var key in Module) {
    if (Module.hasOwnProperty(key)) {
      moduleOverrides[key] = Module[key];
    }
  }
  var ENVIRONMENT_IS_WEB = typeof window === "object";
  var ENVIRONMENT_IS_NODE =
    typeof process === "object" && typeof require === "function" && !ENVIRONMENT_IS_WEB;
  var ENVIRONMENT_IS_WORKER = typeof importScripts === "function";
  var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;
  if (ENVIRONMENT_IS_NODE) {
    if (!Module["print"])
      Module["print"] = function e(e) {
        process["stdout"].write(e + "\n");
      };
    if (!Module["printErr"])
      Module["printErr"] = function r(e) {
        process["stderr"].write(e + "\n");
      };
    var nodeFS = require("fs");
    var nodePath = require("path");
    Module["read"] = function i(e, i) {
      e = nodePath["normalize"](e);
      var r = nodeFS["readFileSync"](e);
      if (!r && e != nodePath["resolve"](e)) {
        e = path.join(__dirname, "..", "src", e);
        r = nodeFS["readFileSync"](e);
      }
      if (r && !i) r = r.toString();
      return r;
    };
    Module["readBinary"] = function t(e) {
      return Module["read"](e, true);
    };
    Module["load"] = function n(e) {
      globalEval(read(e));
    };
    if (!Module["thisProgram"]) {
      if (process["argv"].length > 1) {
        Module["thisProgram"] = process["argv"][1].replace(/\\/g, "/");
      } else {
        Module["thisProgram"] = "unknown-program";
      }
    }
    Module["arguments"] = process["argv"].slice(2);
    if (typeof module !== "undefined") {
      module["exports"] = Module;
    }
    process["on"]("uncaughtException", function(e) {
      if (!(e instanceof ExitStatus)) {
        throw e;
      }
    });
    Module["inspect"] = function() {
      return "[Emscripten Module object]";
    };
  } else if (ENVIRONMENT_IS_SHELL) {
    if (!Module["print"]) Module["print"] = print;
    if (typeof printErr != "undefined") Module["printErr"] = printErr;
    if (typeof read != "undefined") {
      Module["read"] = read;
    } else {
      Module["read"] = function o() {
        throw "no read() available (jsc?)";
      };
    }
    Module["readBinary"] = function a(e) {
      if (typeof readbuffer === "function") {
        return new Uint8Array(readbuffer(e));
      }
      var r = read(e, "binary");
      assert(typeof r === "object");
      return r;
    };
    if (typeof scriptArgs != "undefined") {
      Module["arguments"] = scriptArgs;
    } else if (typeof arguments != "undefined") {
      Module["arguments"] = arguments;
    }
  } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
    Module["read"] = function s(r) {
      var e = new XMLHttpRequest();
      e.open("GET", r, false);
      e.send(null);
      return e.responseText;
    };
    if (typeof arguments != "undefined") {
      Module["arguments"] = arguments;
    }
    if (typeof console !== "undefined") {
      if (!Module["print"])
        Module["print"] = function f(e) {
          console.log(e);
        };
      if (!Module["printErr"])
        Module["printErr"] = function l(e) {
          console.log(e);
        };
    } else {
      var TRY_USE_DUMP = false;
      if (!Module["print"])
        Module["print"] =
          TRY_USE_DUMP && typeof dump !== "undefined"
            ? function(e) {
                dump(e);
              }
            : function(e) {};
    }
    if (ENVIRONMENT_IS_WORKER) {
      Module["load"] = importScripts;
    }
    if (typeof Module["setWindowTitle"] === "undefined") {
      Module["setWindowTitle"] = function(e) {
        document.title = e;
      };
    }
  } else {
    throw "Unknown runtime environment. Where are we?";
  }
  function globalEval(e) {
    eval.call(null, e);
  }
  if (!Module["load"] && Module["read"]) {
    Module["load"] = function u(e) {
      globalEval(Module["read"](e));
    };
  }
  if (!Module["print"]) {
    Module["print"] = function() {};
  }
  if (!Module["printErr"]) {
    Module["printErr"] = Module["print"];
  }
  if (!Module["arguments"]) {
    Module["arguments"] = [];
  }
  if (!Module["thisProgram"]) {
    Module["thisProgram"] = "./this.program";
  }
  Module.print = Module["print"];
  Module.printErr = Module["printErr"];
  Module["preRun"] = [];
  Module["postRun"] = [];
  for (var key in moduleOverrides) {
    if (moduleOverrides.hasOwnProperty(key)) {
      Module[key] = moduleOverrides[key];
    }
  }
  var Runtime = {
    setTempRet0: function(e) {
      tempRet0 = e;
    },
    getTempRet0: function() {
      return tempRet0;
    },
    stackSave: function() {
      return STACKTOP;
    },
    stackRestore: function(e) {
      STACKTOP = e;
    },
    getNativeTypeSize: function(e) {
      switch (e) {
        case "i1":
        case "i8":
          return 1;
        case "i16":
          return 2;
        case "i32":
          return 4;
        case "i64":
          return 8;
        case "float":
          return 4;
        case "double":
          return 8;
        default: {
          if (e[e.length - 1] === "*") {
            return Runtime.QUANTUM_SIZE;
          } else if (e[0] === "i") {
            var r = parseInt(e.substr(1));
            assert(r % 8 === 0);
            return r / 8;
          } else {
            return 0;
          }
        }
      }
    },
    getNativeFieldSize: function(e) {
      return Math.max(Runtime.getNativeTypeSize(e), Runtime.QUANTUM_SIZE);
    },
    STACK_ALIGN: 16,
    prepVararg: function(e, r) {
      if (r === "double" || r === "i64") {
        if (e & 7) {
          assert((e & 7) === 4);
          e += 4;
        }
      } else {
        assert((e & 3) === 0);
      }
      return e;
    },
    getAlignSize: function(e, r, i) {
      if (!i && (e == "i64" || e == "double")) return 8;
      if (!e) return Math.min(r, 8);
      return Math.min(r || (e ? Runtime.getNativeFieldSize(e) : 0), Runtime.QUANTUM_SIZE);
    },
    dynCall: function(r, i, e) {
      if (e && e.length) {
        if (!e.splice) e = Array.prototype.slice.call(e);
        e.splice(0, 0, i);
        return Module["dynCall_" + r].apply(null, e);
      } else {
        return Module["dynCall_" + r].call(null, i);
      }
    },
    functionPointers: [],
    addFunction: function(r) {
      for (var e = 0; e < Runtime.functionPointers.length; e++) {
        if (!Runtime.functionPointers[e]) {
          Runtime.functionPointers[e] = r;
          return 2 * (1 + e);
        }
      }
      throw "Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.";
    },
    removeFunction: function(e) {
      Runtime.functionPointers[(e - 2) / 2] = null;
    },
    warnOnce: function(e) {
      if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {};
      if (!Runtime.warnOnce.shown[e]) {
        Runtime.warnOnce.shown[e] = 1;
        Module.printErr(e);
      }
    },
    funcWrappers: {},
    getFuncWrapper: function(r, e) {
      assert(e);
      if (!Runtime.funcWrappers[e]) {
        Runtime.funcWrappers[e] = {};
      }
      var i = Runtime.funcWrappers[e];
      if (!i[r]) {
        i[r] = function t() {
          return Runtime.dynCall(e, r, arguments);
        };
      }
      return i[r];
    },
    getCompilerSetting: function(e) {
      throw "You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work";
    },
    stackAlloc: function(e) {
      var r = STACKTOP;
      STACKTOP = (STACKTOP + e) | 0;
      STACKTOP = (STACKTOP + 15) & -16;
      return r;
    },
    staticAlloc: function(e) {
      var r = STATICTOP;
      STATICTOP = (STATICTOP + e) | 0;
      STATICTOP = (STATICTOP + 15) & -16;
      return r;
    },
    dynamicAlloc: function(r) {
      var e = DYNAMICTOP;
      DYNAMICTOP = (DYNAMICTOP + r) | 0;
      DYNAMICTOP = (DYNAMICTOP + 15) & -16;
      if (DYNAMICTOP >= TOTAL_MEMORY) {
        var i = enlargeMemory();
        if (!i) {
          DYNAMICTOP = e;
          return 0;
        }
      }
      return e;
    },
    alignMemory: function(r, e) {
      var i = (r = Math.ceil(r / (e ? e : 16)) * (e ? e : 16));
      return i;
    },
    makeBigInt: function(e, r, i) {
      var t = i ? +(e >>> 0) + +(r >>> 0) * +4294967296 : +(e >>> 0) + +(r | 0) * +4294967296;
      return t;
    },
    GLOBAL_BASE: 8,
    QUANTUM_SIZE: 4,
    __dummy__: 0
  };
  Module["Runtime"] = Runtime;
  var __THREW__ = 0;
  var ABORT = false;
  var EXITSTATUS = 0;
  var undef = 0;
  var tempValue,
    tempInt,
    tempBigInt,
    tempInt2,
    tempBigInt2,
    tempPair,
    tempBigIntI,
    tempBigIntR,
    tempBigIntS,
    tempBigIntP,
    tempBigIntD,
    tempDouble,
    tempFloat;
  var tempI64, tempI64b;
  var tempRet0,
    tempRet1,
    tempRet2,
    tempRet3,
    tempRet4,
    tempRet5,
    tempRet6,
    tempRet7,
    tempRet8,
    tempRet9;
  function assert(e, r) {
    if (!e) {
      abort("Assertion failed: " + r);
    }
  }
  var globalScope = this;
  function getCFunc(ident) {
    var func = Module["_" + ident];
    if (!func) {
      try {
        func = eval("_" + ident);
      } catch (e) {}
    }
    assert(
      func,
      "Cannot call unknown function " +
        ident +
        " (perhaps LLVM optimizations or closure removed it?)"
    );
    return func;
  }
  var cwrap, ccall;
  (function() {
    var JSfuncs = {
      stackSave: function() {
        Runtime.stackSave();
      },
      stackRestore: function() {
        Runtime.stackRestore();
      },
      arrayToC: function(e) {
        var r = Runtime.stackAlloc(e.length);
        writeArrayToMemory(e, r);
        return r;
      },
      stringToC: function(e) {
        var r = 0;
        if (e !== null && e !== undefined && e !== 0) {
          r = Runtime.stackAlloc((e.length << 2) + 1);
          writeStringToMemory(e, r);
        }
        return r;
      }
    };
    var toC = { string: JSfuncs["stringToC"], array: JSfuncs["arrayToC"] };
    ccall = function e(u, l, s, i, o) {
      var f = getCFunc(u);
      var n = [];
      var r = 0;
      if (i) {
        for (var e = 0; e < i.length; e++) {
          var a = toC[s[e]];
          if (a) {
            if (r === 0) r = Runtime.stackSave();
            n[e] = a(i[e]);
          } else {
            n[e] = i[e];
          }
        }
      }
      var t = f.apply(null, n);
      if (l === "string") t = Pointer_stringify(t);
      if (r !== 0) {
        if (o && o.async) {
          EmterpreterAsync.asyncFinalizers.push(function() {
            Runtime.stackRestore(r);
          });
          return;
        }
        Runtime.stackRestore(r);
      }
      return t;
    };
    var sourceRegex = /^function\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;
    function parseJSFunc(r) {
      var e = r
        .toString()
        .match(sourceRegex)
        .slice(1);
      return { arguments: e[0], body: e[1], returnValue: e[2] };
    }
    var JSsource = {};
    for (var fun in JSfuncs) {
      if (JSfuncs.hasOwnProperty(fun)) {
        JSsource[fun] = parseJSFunc(JSfuncs[fun]);
      }
    }
    cwrap = function cwrap(ident, returnType, argTypes) {
      argTypes = argTypes || [];
      var cfunc = getCFunc(ident);
      var numericArgs = argTypes.every(function(e) {
        return e === "number";
      });
      var numericRet = returnType !== "string";
      if (numericRet && numericArgs) {
        return cfunc;
      }
      var argNames = argTypes.map(function(r, e) {
        return "$" + e;
      });
      var funcstr = "(function(" + argNames.join(",") + ") {";
      var nargs = argTypes.length;
      if (!numericArgs) {
        funcstr += "var stack = " + JSsource["stackSave"].body + ";";
        for (var i = 0; i < nargs; i++) {
          var arg = argNames[i],
            type = argTypes[i];
          if (type === "number") continue;
          var convertCode = JSsource[type + "ToC"];
          funcstr += "var " + convertCode.arguments + " = " + arg + ";";
          funcstr += convertCode.body + ";";
          funcstr += arg + "=" + convertCode.returnValue + ";";
        }
      }
      var cfuncname = parseJSFunc(function() {
        return cfunc;
      }).returnValue;
      funcstr += "var ret = " + cfuncname + "(" + argNames.join(",") + ");";
      if (!numericRet) {
        var strgfy = parseJSFunc(function() {
          return Pointer_stringify;
        }).returnValue;
        funcstr += "ret = " + strgfy + "(ret);";
      }
      if (!numericArgs) {
        funcstr += JSsource["stackRestore"].body.replace("()", "(stack)") + ";";
      }
      funcstr += "return ret})";
      return eval(funcstr);
    };
  })();
  Module["cwrap"] = cwrap;
  Module["ccall"] = ccall;
  function setValue(e, r, i, t) {
    i = i || "i8";
    if (i.charAt(i.length - 1) === "*") i = "i32";
    switch (i) {
      case "i1":
        HEAP8[e >> 0] = r;
        break;
      case "i8":
        HEAP8[e >> 0] = r;
        break;
      case "i16":
        HEAP16[e >> 1] = r;
        break;
      case "i32":
        HEAP32[e >> 2] = r;
        break;
      case "i64":
        (tempI64 = [
          r >>> 0,
          ((tempDouble = r),
          +Math_abs(tempDouble) >= +1
            ? tempDouble > +0
              ? (Math_min(+Math_floor(tempDouble / +4294967296), +4294967295) | 0) >>> 0
              : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / +4294967296) >>> 0
            : 0)
        ]),
          (HEAP32[e >> 2] = tempI64[0]),
          (HEAP32[(e + 4) >> 2] = tempI64[1]);
        break;
      case "float":
        HEAPF32[e >> 2] = r;
        break;
      case "double":
        HEAPF64[e >> 3] = r;
        break;
      default:
        abort("invalid type for setValue: " + i);
    }
  }
  Module["setValue"] = setValue;
  function getValue(e, r, i) {
    r = r || "i8";
    if (r.charAt(r.length - 1) === "*") r = "i32";
    switch (r) {
      case "i1":
        return HEAP8[e >> 0];
      case "i8":
        return HEAP8[e >> 0];
      case "i16":
        return HEAP16[e >> 1];
      case "i32":
        return HEAP32[e >> 2];
      case "i64":
        return HEAP32[e >> 2];
      case "float":
        return HEAPF32[e >> 2];
      case "double":
        return HEAPF64[e >> 3];
      default:
        abort("invalid type for setValue: " + r);
    }
    return null;
  }
  Module["getValue"] = getValue;
  var ALLOC_NORMAL = 0;
  var ALLOC_STACK = 1;
  var ALLOC_STATIC = 2;
  var ALLOC_DYNAMIC = 3;
  var ALLOC_NONE = 4;
  Module["ALLOC_NORMAL"] = ALLOC_NORMAL;
  Module["ALLOC_STACK"] = ALLOC_STACK;
  Module["ALLOC_STATIC"] = ALLOC_STATIC;
  Module["ALLOC_DYNAMIC"] = ALLOC_DYNAMIC;
  Module["ALLOC_NONE"] = ALLOC_NONE;
  function allocate(r, s, c, t) {
    var l, n;
    if (typeof r === "number") {
      l = true;
      n = r;
    } else {
      l = false;
      n = r.length;
    }
    var u = typeof s === "string" ? s : null;
    var e;
    if (c == ALLOC_NONE) {
      e = t;
    } else {
      e = [_malloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][
        c === undefined ? ALLOC_STATIC : c
      ](Math.max(n, u ? 1 : s.length));
    }
    if (l) {
      var t = e,
        f;
      assert((e & 3) == 0);
      f = e + (n & ~3);
      for (; t < f; t += 4) {
        HEAP32[t >> 2] = 0;
      }
      f = e + n;
      while (t < f) {
        HEAP8[t++ >> 0] = 0;
      }
      return e;
    }
    if (u === "i8") {
      if (r.subarray || r.slice) {
        HEAPU8.set(r, e);
      } else {
        HEAPU8.set(new Uint8Array(r), e);
      }
      return e;
    }
    var o = 0,
      i,
      d,
      h;
    while (o < n) {
      var a = r[o];
      if (typeof a === "function") {
        a = Runtime.getFunctionIndex(a);
      }
      i = u || s[o];
      if (i === 0) {
        o++;
        continue;
      }
      if (i == "i64") i = "i32";
      setValue(e + o, a, i);
      if (h !== i) {
        d = Runtime.getNativeTypeSize(i);
        h = i;
      }
      o += d;
    }
    return e;
  }
  Module["allocate"] = allocate;
  function getMemory(e) {
    if (!staticSealed) return Runtime.staticAlloc(e);
    if ((typeof _sbrk !== "undefined" && !_sbrk.called) || !runtimeInitialized)
      return Runtime.dynamicAlloc(e);
    return _malloc(e);
  }
  Module["getMemory"] = getMemory;
  function Pointer_stringify(r, e) {
    if (e === 0 || !r) return "";
    var s = 0;
    var n;
    var i = 0;
    while (1) {
      n = HEAPU8[(r + i) >> 0];
      s |= n;
      if (n == 0 && !e) break;
      i++;
      if (e && i == e) break;
    }
    if (!e) e = i;
    var t = "";
    if (s < 128) {
      var o = 1024;
      var a;
      while (e > 0) {
        a = String.fromCharCode.apply(String, HEAPU8.subarray(r, r + Math.min(e, o)));
        t = t ? t + a : a;
        r += o;
        e -= o;
      }
      return t;
    }
    return Module["UTF8ToString"](r);
  }
  Module["Pointer_stringify"] = Pointer_stringify;
  function AsciiToString(i) {
    var e = "";
    while (1) {
      var r = HEAP8[i++ >> 0];
      if (!r) return e;
      e += String.fromCharCode(r);
    }
  }
  Module["AsciiToString"] = AsciiToString;
  function stringToAscii(e, r) {
    return writeAsciiToMemory(e, r, false);
  }
  Module["stringToAscii"] = stringToAscii;
  function UTF8ArrayToString(r, i) {
    var e, t, n, a, s, f;
    var o = "";
    while (1) {
      e = r[i++];
      if (!e) return o;
      if (!(e & 128)) {
        o += String.fromCharCode(e);
        continue;
      }
      t = r[i++] & 63;
      if ((e & 224) == 192) {
        o += String.fromCharCode(((e & 31) << 6) | t);
        continue;
      }
      n = r[i++] & 63;
      if ((e & 240) == 224) {
        e = ((e & 15) << 12) | (t << 6) | n;
      } else {
        a = r[i++] & 63;
        if ((e & 248) == 240) {
          e = ((e & 7) << 18) | (t << 12) | (n << 6) | a;
        } else {
          s = r[i++] & 63;
          if ((e & 252) == 248) {
            e = ((e & 3) << 24) | (t << 18) | (n << 12) | (a << 6) | s;
          } else {
            f = r[i++] & 63;
            e = ((e & 1) << 30) | (t << 24) | (n << 18) | (a << 12) | (s << 6) | f;
          }
        }
      }
      if (e < 65536) {
        o += String.fromCharCode(e);
      } else {
        var l = e - 65536;
        o += String.fromCharCode(55296 | (l >> 10), 56320 | (l & 1023));
      }
    }
  }
  Module["UTF8ArrayToString"] = UTF8ArrayToString;
  function UTF8ToString(e) {
    return UTF8ArrayToString(HEAPU8, e);
  }
  Module["UTF8ToString"] = UTF8ToString;
  function stringToUTF8Array(o, i, e, a) {
    if (!(a > 0)) return 0;
    var s = e;
    var t = e + a - 1;
    for (var n = 0; n < o.length; ++n) {
      var r = o.charCodeAt(n);
      if (r >= 55296 && r <= 57343) r = (65536 + ((r & 1023) << 10)) | (o.charCodeAt(++n) & 1023);
      if (r <= 127) {
        if (e >= t) break;
        i[e++] = r;
      } else if (r <= 2047) {
        if (e + 1 >= t) break;
        i[e++] = 192 | (r >> 6);
        i[e++] = 128 | (r & 63);
      } else if (r <= 65535) {
        if (e + 2 >= t) break;
        i[e++] = 224 | (r >> 12);
        i[e++] = 128 | ((r >> 6) & 63);
        i[e++] = 128 | (r & 63);
      } else if (r <= 2097151) {
        if (e + 3 >= t) break;
        i[e++] = 240 | (r >> 18);
        i[e++] = 128 | ((r >> 12) & 63);
        i[e++] = 128 | ((r >> 6) & 63);
        i[e++] = 128 | (r & 63);
      } else if (r <= 67108863) {
        if (e + 4 >= t) break;
        i[e++] = 248 | (r >> 24);
        i[e++] = 128 | ((r >> 18) & 63);
        i[e++] = 128 | ((r >> 12) & 63);
        i[e++] = 128 | ((r >> 6) & 63);
        i[e++] = 128 | (r & 63);
      } else {
        if (e + 5 >= t) break;
        i[e++] = 252 | (r >> 30);
        i[e++] = 128 | ((r >> 24) & 63);
        i[e++] = 128 | ((r >> 18) & 63);
        i[e++] = 128 | ((r >> 12) & 63);
        i[e++] = 128 | ((r >> 6) & 63);
        i[e++] = 128 | (r & 63);
      }
    }
    i[e] = 0;
    return e - s;
  }
  Module["stringToUTF8Array"] = stringToUTF8Array;
  function stringToUTF8(e, r, i) {
    return stringToUTF8Array(e, HEAPU8, r, i);
  }
  Module["stringToUTF8"] = stringToUTF8;
  function lengthBytesUTF8(t) {
    var r = 0;
    for (var i = 0; i < t.length; ++i) {
      var e = t.charCodeAt(i);
      if (e >= 55296 && e <= 57343) e = (65536 + ((e & 1023) << 10)) | (t.charCodeAt(++i) & 1023);
      if (e <= 127) {
        ++r;
      } else if (e <= 2047) {
        r += 2;
      } else if (e <= 65535) {
        r += 3;
      } else if (e <= 2097151) {
        r += 4;
      } else if (e <= 67108863) {
        r += 5;
      } else {
        r += 6;
      }
    }
    return r;
  }
  Module["lengthBytesUTF8"] = lengthBytesUTF8;
  function UTF16ToString(t) {
    var e = 0;
    var r = "";
    while (1) {
      var i = HEAP16[(t + e * 2) >> 1];
      if (i == 0) return r;
      ++e;
      r += String.fromCharCode(i);
    }
  }
  Module["UTF16ToString"] = UTF16ToString;
  function stringToUTF16(i, r, e) {
    if (e === undefined) {
      e = 2147483647;
    }
    if (e < 2) return 0;
    e -= 2;
    var n = r;
    var o = e < i.length * 2 ? e / 2 : i.length;
    for (var t = 0; t < o; ++t) {
      var a = i.charCodeAt(t);
      HEAP16[r >> 1] = a;
      r += 2;
    }
    HEAP16[r >> 1] = 0;
    return r - n;
  }
  Module["stringToUTF16"] = stringToUTF16;
  function lengthBytesUTF16(e) {
    return e.length * 2;
  }
  Module["lengthBytesUTF16"] = lengthBytesUTF16;
  function UTF32ToString(n) {
    var i = 0;
    var r = "";
    while (1) {
      var e = HEAP32[(n + i * 4) >> 2];
      if (e == 0) return r;
      ++i;
      if (e >= 65536) {
        var t = e - 65536;
        r += String.fromCharCode(55296 | (t >> 10), 56320 | (t & 1023));
      } else {
        r += String.fromCharCode(e);
      }
    }
  }
  Module["UTF32ToString"] = UTF32ToString;
  function stringToUTF32(n, e, i) {
    if (i === undefined) {
      i = 2147483647;
    }
    if (i < 4) return 0;
    var o = e;
    var a = o + i - 4;
    for (var t = 0; t < n.length; ++t) {
      var r = n.charCodeAt(t);
      if (r >= 55296 && r <= 57343) {
        var s = n.charCodeAt(++t);
        r = (65536 + ((r & 1023) << 10)) | (s & 1023);
      }
      HEAP32[e >> 2] = r;
      e += 4;
      if (e + 4 > a) break;
    }
    HEAP32[e >> 2] = 0;
    return e - o;
  }
  Module["stringToUTF32"] = stringToUTF32;
  function lengthBytesUTF32(r) {
    var i = 0;
    for (var e = 0; e < r.length; ++e) {
      var t = r.charCodeAt(e);
      if (t >= 55296 && t <= 57343) ++e;
      i += 4;
    }
    return i;
  }
  Module["lengthBytesUTF32"] = lengthBytesUTF32;
  function demangle(r) {
    var s = !!Module["___cxa_demangle"];
    if (s) {
      try {
        var a = _malloc(r.length);
        writeStringToMemory(r.substr(1), a);
        var t = _malloc(4);
        var n = Module["___cxa_demangle"](a, 0, 0, t);
        if (getValue(t, "i32") === 0 && n) {
          return Pointer_stringify(n);
        }
      } catch (h) {
      } finally {
        if (a) _free(a);
        if (t) _free(t);
        if (n) _free(n);
      }
    }
    var e = 3;
    var u = {
      v: "void",
      b: "bool",
      c: "char",
      s: "short",
      i: "int",
      l: "long",
      f: "float",
      d: "double",
      w: "wchar_t",
      a: "signed char",
      h: "unsigned char",
      t: "unsigned short",
      j: "unsigned int",
      m: "unsigned long",
      x: "long long",
      y: "unsigned long long",
      z: "..."
    };
    var f = [];
    var l = true;
    function d(i) {
      if (i) Module.print(i);
      Module.print(r);
      var t = "";
      for (var n = 0; n < e; n++) t += " ";
      Module.print(t + "^");
    }
    function c() {
      e++;
      if (r[e] === "K") e++;
      var i = [];
      while (r[e] !== "E") {
        if (r[e] === "S") {
          e++;
          var o = r.indexOf("_", e);
          var s = r.substring(e, o) || 0;
          i.push(f[s] || "?");
          e = o + 1;
          continue;
        }
        if (r[e] === "C") {
          i.push(i[i.length - 1]);
          e += 2;
          continue;
        }
        var t = parseInt(r.substr(e));
        var n = t.toString().length;
        if (!t || !n) {
          e--;
          break;
        }
        var a = r.substr(e + n, t);
        i.push(a);
        f.push(a);
        e += n + t;
      }
      e++;
      return i;
    }
    function i(d, s, _) {
      s = s || Infinity;
      var a = "",
        t = [];
      function m() {
        return "(" + t.join(", ") + ")";
      }
      var o;
      if (r[e] === "N") {
        o = c().join("::");
        s--;
        if (s === 0) return d ? [o] : o;
      } else {
        if (r[e] === "K" || (l && r[e] === "L")) e++;
        var n = parseInt(r.substr(e));
        if (n) {
          var h = n.toString().length;
          o = r.substr(e + h, n);
          e += h + n;
        }
      }
      l = false;
      if (r[e] === "I") {
        e++;
        var w = i(true);
        var p = i(true, 1, true);
        a += p[0] + " " + o + "<" + w.join(", ") + ">";
      } else {
        a = o;
      }
      e: while (e < r.length && s-- > 0) {
        var f = r[e++];
        if (f in u) {
          t.push(u[f]);
        } else {
          switch (f) {
            case "P":
              t.push(i(true, 1, true)[0] + "*");
              break;
            case "R":
              t.push(i(true, 1, true)[0] + "&");
              break;
            case "L": {
              e++;
              var E = r.indexOf("E", e);
              var n = E - e;
              t.push(r.substr(e, n));
              e += n + 2;
              break;
            }
            case "A": {
              var n = parseInt(r.substr(e));
              e += n.toString().length;
              if (r[e] !== "_") throw "?";
              e++;
              t.push(i(true, 1, true)[0] + " [" + n + "]");
              break;
            }
            case "E":
              break e;
            default:
              a += "?" + f;
              break e;
          }
        }
      }
      if (!_ && t.length === 1 && t[0] === "void") t = [];
      if (d) {
        if (a) {
          t.push(a + "?");
        }
        return t;
      } else {
        return a + m();
      }
    }
    var o = r;
    try {
      if (r == "Object._main" || r == "_main") {
        return "main()";
      }
      if (typeof r === "number") r = Pointer_stringify(r);
      if (r[0] !== "_") return r;
      if (r[1] !== "_") return r;
      if (r[2] !== "Z") return r;
      switch (r[3]) {
        case "n":
          return "operator new()";
        case "d":
          return "operator delete()";
      }
      o = i();
    } catch (h) {
      o += "?";
    }
    if (o.indexOf("?") >= 0 && !s) {
      Runtime.warnOnce(
        "warning: a problem occurred in builtin C++ name demangling; build with  -s DEMANGLE_SUPPORT=1  to link in libcxxabi demangling"
      );
    }
    return o;
  }
  function demangleAll(e) {
    return e.replace(/__Z[\w\d_]+/g, function(e) {
      var r = demangle(e);
      return e === r ? e : e + " [" + r + "]";
    });
  }
  function jsStackTrace() {
    var e = new Error();
    if (!e.stack) {
      try {
        throw new Error(0);
      } catch (r) {
        e = r;
      }
      if (!e.stack) {
        return "(no stack trace available)";
      }
    }
    return e.stack.toString();
  }
  function stackTrace() {
    return demangleAll(jsStackTrace());
  }
  Module["stackTrace"] = stackTrace;
  var PAGE_SIZE = 4096;
  function alignMemoryPage(e) {
    if (e % 4096 > 0) {
      e += 4096 - (e % 4096);
    }
    return e;
  }
  var HEAP;
  var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
  var STATIC_BASE = 0,
    STATICTOP = 0,
    staticSealed = false;
  var STACK_BASE = 0,
    STACKTOP = 0,
    STACK_MAX = 0;
  var DYNAMIC_BASE = 0,
    DYNAMICTOP = 0;
  function enlargeMemory() {
    abort(
      "Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value " +
        TOTAL_MEMORY +
        ", (2) compile with ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs."
    );
  }
  var TOTAL_STACK = Module["TOTAL_STACK"] || 5242880;
  var TOTAL_MEMORY = Module["TOTAL_MEMORY"] || 16777216;
  var totalMemory = 64 * 1024;
  while (totalMemory < TOTAL_MEMORY || totalMemory < 2 * TOTAL_STACK) {
    if (totalMemory < 16 * 1024 * 1024) {
      totalMemory *= 2;
    } else {
      totalMemory += 16 * 1024 * 1024;
    }
  }
  if (totalMemory !== TOTAL_MEMORY) {
    Module.printErr(
      "increasing TOTAL_MEMORY to " +
        totalMemory +
        " to be compliant with the asm.js spec (and given that TOTAL_STACK=" +
        TOTAL_STACK +
        ")"
    );
    TOTAL_MEMORY = totalMemory;
  }
  assert(
    typeof Int32Array !== "undefined" &&
      typeof Float64Array !== "undefined" &&
      !!new Int32Array(1)["subarray"] &&
      !!new Int32Array(1)["set"],
    "JS engine does not provide full typed array support"
  );
  var buffer;
  buffer = new ArrayBuffer(TOTAL_MEMORY);
  HEAP8 = new Int8Array(buffer);
  HEAP16 = new Int16Array(buffer);
  HEAP32 = new Int32Array(buffer);
  HEAPU8 = new Uint8Array(buffer);
  HEAPU16 = new Uint16Array(buffer);
  HEAPU32 = new Uint32Array(buffer);
  HEAPF32 = new Float32Array(buffer);
  HEAPF64 = new Float64Array(buffer);
  HEAP32[0] = 255;
  assert(
    HEAPU8[0] === 255 && HEAPU8[3] === 0,
    "Typed arrays 2 must be run on a little-endian system"
  );
  Module["HEAP"] = HEAP;
  Module["buffer"] = buffer;
  Module["HEAP8"] = HEAP8;
  Module["HEAP16"] = HEAP16;
  Module["HEAP32"] = HEAP32;
  Module["HEAPU8"] = HEAPU8;
  Module["HEAPU16"] = HEAPU16;
  Module["HEAPU32"] = HEAPU32;
  Module["HEAPF32"] = HEAPF32;
  Module["HEAPF64"] = HEAPF64;
  function callRuntimeCallbacks(i) {
    while (i.length > 0) {
      var e = i.shift();
      if (typeof e == "function") {
        e();
        continue;
      }
      var r = e.func;
      if (typeof r === "number") {
        if (e.arg === undefined) {
          Runtime.dynCall("v", r);
        } else {
          Runtime.dynCall("vi", r, [e.arg]);
        }
      } else {
        r(e.arg === undefined ? null : e.arg);
      }
    }
  }
  var __ATPRERUN__ = [];
  var __ATINIT__ = [];
  var __ATMAIN__ = [];
  var __ATEXIT__ = [];
  var __ATPOSTRUN__ = [];
  var runtimeInitialized = false;
  var runtimeExited = false;
  function preRun() {
    if (Module["preRun"]) {
      if (typeof Module["preRun"] == "function") Module["preRun"] = [Module["preRun"]];
      while (Module["preRun"].length) {
        addOnPreRun(Module["preRun"].shift());
      }
    }
    callRuntimeCallbacks(__ATPRERUN__);
  }
  function ensureInitRuntime() {
    if (runtimeInitialized) return;
    runtimeInitialized = true;
    callRuntimeCallbacks(__ATINIT__);
  }
  function preMain() {
    callRuntimeCallbacks(__ATMAIN__);
  }
  function exitRuntime() {
    callRuntimeCallbacks(__ATEXIT__);
    runtimeExited = true;
  }
  function postRun() {
    if (Module["postRun"]) {
      if (typeof Module["postRun"] == "function") Module["postRun"] = [Module["postRun"]];
      while (Module["postRun"].length) {
        addOnPostRun(Module["postRun"].shift());
      }
    }
    callRuntimeCallbacks(__ATPOSTRUN__);
  }
  function addOnPreRun(e) {
    __ATPRERUN__.unshift(e);
  }
  Module["addOnPreRun"] = Module.addOnPreRun = addOnPreRun;
  function addOnInit(e) {
    __ATINIT__.unshift(e);
  }
  Module["addOnInit"] = Module.addOnInit = addOnInit;
  function addOnPreMain(e) {
    __ATMAIN__.unshift(e);
  }
  Module["addOnPreMain"] = Module.addOnPreMain = addOnPreMain;
  function addOnExit(e) {
    __ATEXIT__.unshift(e);
  }
  Module["addOnExit"] = Module.addOnExit = addOnExit;
  function addOnPostRun(e) {
    __ATPOSTRUN__.unshift(e);
  }
  Module["addOnPostRun"] = Module.addOnPostRun = addOnPostRun;
  function intArrayFromString(r, t, i) {
    var n = i > 0 ? i : lengthBytesUTF8(r) + 1;
    var e = new Array(n);
    var o = stringToUTF8Array(r, e, 0, e.length);
    if (t) e.length = o;
    return e;
  }
  Module["intArrayFromString"] = intArrayFromString;
  function intArrayToString(i) {
    var t = [];
    for (var e = 0; e < i.length; e++) {
      var r = i[e];
      if (r > 255) {
        r &= 255;
      }
      t.push(String.fromCharCode(r));
    }
    return t.join("");
  }
  Module["intArrayToString"] = intArrayToString;
  function writeStringToMemory(i, t, n) {
    var r = intArrayFromString(i, n);
    var e = 0;
    while (e < r.length) {
      var o = r[e];
      HEAP8[(t + e) >> 0] = o;
      e = e + 1;
    }
  }
  Module["writeStringToMemory"] = writeStringToMemory;
  function writeArrayToMemory(r, i) {
    for (var e = 0; e < r.length; e++) {
      HEAP8[i++ >> 0] = r[e];
    }
  }
  Module["writeArrayToMemory"] = writeArrayToMemory;
  function writeAsciiToMemory(r, i, t) {
    for (var e = 0; e < r.length; ++e) {
      HEAP8[i++ >> 0] = r.charCodeAt(e);
    }
    if (!t) HEAP8[i >> 0] = 0;
  }
  Module["writeAsciiToMemory"] = writeAsciiToMemory;
  function unSign(e, r, i) {
    if (e >= 0) {
      return e;
    }
    return r <= 32 ? 2 * Math.abs(1 << (r - 1)) + e : Math.pow(2, r) + e;
  }
  function reSign(e, r, t) {
    if (e <= 0) {
      return e;
    }
    var i = r <= 32 ? Math.abs(1 << (r - 1)) : Math.pow(2, r - 1);
    if (e >= i && (r <= 32 || e > i)) {
      e = -2 * i + e;
    }
    return e;
  }
  if (!Math["imul"] || Math["imul"](4294967295, 5) !== -5)
    Math["imul"] = function c(e, r) {
      var n = e >>> 16;
      var i = e & 65535;
      var o = r >>> 16;
      var t = r & 65535;
      return (i * t + ((n * t + i * o) << 16)) | 0;
    };
  Math.imul = Math["imul"];
  if (!Math["clz32"])
    Math["clz32"] = function(r) {
      r = r >>> 0;
      for (var e = 0; e < 32; e++) {
        if (r & (1 << (31 - e))) return e;
      }
      return 32;
    };
  Math.clz32 = Math["clz32"];
  var Math_abs = Math.abs;
  var Math_cos = Math.cos;
  var Math_sin = Math.sin;
  var Math_tan = Math.tan;
  var Math_acos = Math.acos;
  var Math_asin = Math.asin;
  var Math_atan = Math.atan;
  var Math_atan2 = Math.atan2;
  var Math_exp = Math.exp;
  var Math_log = Math.log;
  var Math_sqrt = Math.sqrt;
  var Math_ceil = Math.ceil;
  var Math_floor = Math.floor;
  var Math_pow = Math.pow;
  var Math_imul = Math.imul;
  var Math_fround = Math.fround;
  var Math_min = Math.min;
  var Math_clz32 = Math.clz32;
  var runDependencies = 0;
  var runDependencyWatcher = null;
  var dependenciesFulfilled = null;
  function getUniqueRunDependency(e) {
    return e;
  }
  function addRunDependency(e) {
    runDependencies++;
    if (Module["monitorRunDependencies"]) {
      Module["monitorRunDependencies"](runDependencies);
    }
  }
  Module["addRunDependency"] = addRunDependency;
  function removeRunDependency(r) {
    runDependencies--;
    if (Module["monitorRunDependencies"]) {
      Module["monitorRunDependencies"](runDependencies);
    }
    if (runDependencies == 0) {
      if (runDependencyWatcher !== null) {
        clearInterval(runDependencyWatcher);
        runDependencyWatcher = null;
      }
      if (dependenciesFulfilled) {
        var e = dependenciesFulfilled;
        dependenciesFulfilled = null;
        e();
      }
    }
  }
  Module["removeRunDependency"] = removeRunDependency;
  Module["preloadedImages"] = {};
  Module["preloadedAudios"] = {};
  var memoryInitializer = null;
  var ASM_CONSTS = [];
  STATIC_BASE = 8;
  STATICTOP = STATIC_BASE + 96992;
  __ATINIT__.push();
  memoryInitializer = "Mp3LameEncoder.min.js.mem";
  var tempDoublePtr = Runtime.alignMemory(allocate(12, "i8", ALLOC_STATIC), 8);
  assert(tempDoublePtr % 8 == 0);
  function copyTempFloat(e) {
    HEAP8[tempDoublePtr] = HEAP8[e];
    HEAP8[tempDoublePtr + 1] = HEAP8[e + 1];
    HEAP8[tempDoublePtr + 2] = HEAP8[e + 2];
    HEAP8[tempDoublePtr + 3] = HEAP8[e + 3];
  }
  function copyTempDouble(e) {
    HEAP8[tempDoublePtr] = HEAP8[e];
    HEAP8[tempDoublePtr + 1] = HEAP8[e + 1];
    HEAP8[tempDoublePtr + 2] = HEAP8[e + 2];
    HEAP8[tempDoublePtr + 3] = HEAP8[e + 3];
    HEAP8[tempDoublePtr + 4] = HEAP8[e + 4];
    HEAP8[tempDoublePtr + 5] = HEAP8[e + 5];
    HEAP8[tempDoublePtr + 6] = HEAP8[e + 6];
    HEAP8[tempDoublePtr + 7] = HEAP8[e + 7];
  }
  function _InitGainAnalysis() {
    Module["printErr"]("missing function: InitGainAnalysis");
    abort(-1);
  }
  function _AnalyzeSamples() {
    Module["printErr"]("missing function: AnalyzeSamples");
    abort(-1);
  }
  Module["_i64Subtract"] = _i64Subtract;
  var _fabsf = Math_abs;
  var _floorf = Math_floor;
  Module["_memset"] = _memset;
  var _BDtoILow = true;
  var ERRNO_CODES = {
    EPERM: 1,
    ENOENT: 2,
    ESRCH: 3,
    EINTR: 4,
    EIO: 5,
    ENXIO: 6,
    E2BIG: 7,
    ENOEXEC: 8,
    EBADF: 9,
    ECHILD: 10,
    EAGAIN: 11,
    EWOULDBLOCK: 11,
    ENOMEM: 12,
    EACCES: 13,
    EFAULT: 14,
    ENOTBLK: 15,
    EBUSY: 16,
    EEXIST: 17,
    EXDEV: 18,
    ENODEV: 19,
    ENOTDIR: 20,
    EISDIR: 21,
    EINVAL: 22,
    ENFILE: 23,
    EMFILE: 24,
    ENOTTY: 25,
    ETXTBSY: 26,
    EFBIG: 27,
    ENOSPC: 28,
    ESPIPE: 29,
    EROFS: 30,
    EMLINK: 31,
    EPIPE: 32,
    EDOM: 33,
    ERANGE: 34,
    ENOMSG: 42,
    EIDRM: 43,
    ECHRNG: 44,
    EL2NSYNC: 45,
    EL3HLT: 46,
    EL3RST: 47,
    ELNRNG: 48,
    EUNATCH: 49,
    ENOCSI: 50,
    EL2HLT: 51,
    EDEADLK: 35,
    ENOLCK: 37,
    EBADE: 52,
    EBADR: 53,
    EXFULL: 54,
    ENOANO: 55,
    EBADRQC: 56,
    EBADSLT: 57,
    EDEADLOCK: 35,
    EBFONT: 59,
    ENOSTR: 60,
    ENODATA: 61,
    ETIME: 62,
    ENOSR: 63,
    ENONET: 64,
    ENOPKG: 65,
    EREMOTE: 66,
    ENOLINK: 67,
    EADV: 68,
    ESRMNT: 69,
    ECOMM: 70,
    EPROTO: 71,
    EMULTIHOP: 72,
    EDOTDOT: 73,
    EBADMSG: 74,
    ENOTUNIQ: 76,
    EBADFD: 77,
    EREMCHG: 78,
    ELIBACC: 79,
    ELIBBAD: 80,
    ELIBSCN: 81,
    ELIBMAX: 82,
    ELIBEXEC: 83,
    ENOSYS: 38,
    ENOTEMPTY: 39,
    ENAMETOOLONG: 36,
    ELOOP: 40,
    EOPNOTSUPP: 95,
    EPFNOSUPPORT: 96,
    ECONNRESET: 104,
    ENOBUFS: 105,
    EAFNOSUPPORT: 97,
    EPROTOTYPE: 91,
    ENOTSOCK: 88,
    ENOPROTOOPT: 92,
    ESHUTDOWN: 108,
    ECONNREFUSED: 111,
    EADDRINUSE: 98,
    ECONNABORTED: 103,
    ENETUNREACH: 101,
    ENETDOWN: 100,
    ETIMEDOUT: 110,
    EHOSTDOWN: 112,
    EHOSTUNREACH: 113,
    EINPROGRESS: 115,
    EALREADY: 114,
    EDESTADDRREQ: 89,
    EMSGSIZE: 90,
    EPROTONOSUPPORT: 93,
    ESOCKTNOSUPPORT: 94,
    EADDRNOTAVAIL: 99,
    ENETRESET: 102,
    EISCONN: 106,
    ENOTCONN: 107,
    ETOOMANYREFS: 109,
    EUSERS: 87,
    EDQUOT: 122,
    ESTALE: 116,
    ENOTSUP: 95,
    ENOMEDIUM: 123,
    EILSEQ: 84,
    EOVERFLOW: 75,
    ECANCELED: 125,
    ENOTRECOVERABLE: 131,
    EOWNERDEAD: 130,
    ESTRPIPE: 86
  };
  var ERRNO_MESSAGES = {
    0: "Success",
    1: "Not super-user",
    2: "No such file or directory",
    3: "No such process",
    4: "Interrupted system call",
    5: "I/O error",
    6: "No such device or address",
    7: "Arg list too long",
    8: "Exec format error",
    9: "Bad file number",
    10: "No children",
    11: "No more processes",
    12: "Not enough core",
    13: "Permission denied",
    14: "Bad address",
    15: "Block device required",
    16: "Mount device busy",
    17: "File exists",
    18: "Cross-device link",
    19: "No such device",
    20: "Not a directory",
    21: "Is a directory",
    22: "Invalid argument",
    23: "Too many open files in system",
    24: "Too many open files",
    25: "Not a typewriter",
    26: "Text file busy",
    27: "File too large",
    28: "No space left on device",
    29: "Illegal seek",
    30: "Read only file system",
    31: "Too many links",
    32: "Broken pipe",
    33: "Math arg out of domain of func",
    34: "Math result not representable",
    35: "File locking deadlock error",
    36: "File or path name too long",
    37: "No record locks available",
    38: "Function not implemented",
    39: "Directory not empty",
    40: "Too many symbolic links",
    42: "No message of desired type",
    43: "Identifier removed",
    44: "Channel number out of range",
    45: "Level 2 not synchronized",
    46: "Level 3 halted",
    47: "Level 3 reset",
    48: "Link number out of range",
    49: "Protocol driver not attached",
    50: "No CSI structure available",
    51: "Level 2 halted",
    52: "Invalid exchange",
    53: "Invalid request descriptor",
    54: "Exchange full",
    55: "No anode",
    56: "Invalid request code",
    57: "Invalid slot",
    59: "Bad font file fmt",
    60: "Device not a stream",
    61: "No data (for no delay io)",
    62: "Timer expired",
    63: "Out of streams resources",
    64: "Machine is not on the network",
    65: "Package not installed",
    66: "The object is remote",
    67: "The link has been severed",
    68: "Advertise error",
    69: "Srmount error",
    70: "Communication error on send",
    71: "Protocol error",
    72: "Multihop attempted",
    73: "Cross mount point (not really error)",
    74: "Trying to read unreadable message",
    75: "Value too large for defined data type",
    76: "Given log. name not unique",
    77: "f.d. invalid for this operation",
    78: "Remote address changed",
    79: "Can   access a needed shared lib",
    80: "Accessing a corrupted shared lib",
    81: ".lib section in a.out corrupted",
    82: "Attempting to link in too many libs",
    83: "Attempting to exec a shared library",
    84: "Illegal byte sequence",
    86: "Streams pipe error",
    87: "Too many users",
    88: "Socket operation on non-socket",
    89: "Destination address required",
    90: "Message too long",
    91: "Protocol wrong type for socket",
    92: "Protocol not available",
    93: "Unknown protocol",
    94: "Socket type not supported",
    95: "Not supported",
    96: "Protocol family not supported",
    97: "Address family not supported by protocol family",
    98: "Address already in use",
    99: "Address not available",
    100: "Network interface is not configured",
    101: "Network is unreachable",
    102: "Connection reset by network",
    103: "Connection aborted",
    104: "Connection reset by peer",
    105: "No buffer space available",
    106: "Socket is already connected",
    107: "Socket is not connected",
    108: "Can't send after socket shutdown",
    109: "Too many references",
    110: "Connection timed out",
    111: "Connection refused",
    112: "Host is down",
    113: "Host is unreachable",
    114: "Socket already connected",
    115: "Connection already in progress",
    116: "Stale file handle",
    122: "Quota exceeded",
    123: "No medium (in tape drive)",
    125: "Operation canceled",
    130: "Previous owner died",
    131: "State not recoverable"
  };
  var ___errno_state = 0;
  function ___setErrNo(e) {
    HEAP32[___errno_state >> 2] = e;
    return e;
  }
  function _strerror_r(e, r, i) {
    if (e in ERRNO_MESSAGES) {
      if (ERRNO_MESSAGES[e].length > i - 1) {
        return ___setErrNo(ERRNO_CODES.ERANGE);
      } else {
        var t = ERRNO_MESSAGES[e];
        writeAsciiToMemory(t, r);
        return 0;
      }
    } else {
      return ___setErrNo(ERRNO_CODES.EINVAL);
    }
  }
  function _strerror(e) {
    if (!_strerror.buffer) _strerror.buffer = _malloc(256);
    _strerror_r(e, _strerror.buffer, 256);
    return _strerror.buffer;
  }
  function _VBR_encode_frame() {
    Module["printErr"]("missing function: VBR_encode_frame");
    abort(-1);
  }
  function _abort() {
    Module["abort"]();
  }
  function _init_xrpow_core_sse() {
    Module["printErr"]("missing function: init_xrpow_core_sse");
    abort(-1);
  }
  var PATH = {
    splitPath: function(e) {
      var r = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
      return r.exec(e).slice(1);
    },
    normalizeArray: function(e, n) {
      var i = 0;
      for (var r = e.length - 1; r >= 0; r--) {
        var t = e[r];
        if (t === ".") {
          e.splice(r, 1);
        } else if (t === "..") {
          e.splice(r, 1);
          i++;
        } else if (i) {
          e.splice(r, 1);
          i--;
        }
      }
      if (n) {
        for (; i--; i) {
          e.unshift("..");
        }
      }
      return e;
    },
    normalize: function(e) {
      var r = e.charAt(0) === "/",
        i = e.substr(-1) === "/";
      e = PATH.normalizeArray(
        e.split("/").filter(function(e) {
          return !!e;
        }),
        !r
      ).join("/");
      if (!e && !r) {
        e = ".";
      }
      if (e && i) {
        e += "/";
      }
      return (r ? "/" : "") + e;
    },
    dirname: function(t) {
      var r = PATH.splitPath(t),
        i = r[0],
        e = r[1];
      if (!i && !e) {
        return ".";
      }
      if (e) {
        e = e.substr(0, e.length - 1);
      }
      return i + e;
    },
    basename: function(e) {
      if (e === "/") return "/";
      var r = e.lastIndexOf("/");
      if (r === -1) return e;
      return e.substr(r + 1);
    },
    extname: function(e) {
      return PATH.splitPath(e)[3];
    },
    join: function() {
      var e = Array.prototype.slice.call(arguments, 0);
      return PATH.normalize(e.join("/"));
    },
    join2: function(e, r) {
      return PATH.normalize(e + "/" + r);
    },
    resolve: function() {
      var e = "",
        r = false;
      for (var i = arguments.length - 1; i >= -1 && !r; i--) {
        var t = i >= 0 ? arguments[i] : FS.cwd();
        if (typeof t !== "string") {
          throw new TypeError("Arguments to path.resolve must be strings");
        } else if (!t) {
          return "";
        }
        e = t + "/" + e;
        r = t.charAt(0) === "/";
      }
      e = PATH.normalizeArray(
        e.split("/").filter(function(e) {
          return !!e;
        }),
        !r
      ).join("/");
      return (r ? "/" : "") + e || ".";
    },
    relative: function(i, t) {
      i = PATH.resolve(i).substr(1);
      t = PATH.resolve(t).substr(1);
      function s(r) {
        var e = 0;
        for (; e < r.length; e++) {
          if (r[e] !== "") break;
        }
        var i = r.length - 1;
        for (; i >= 0; i--) {
          if (r[i] !== "") break;
        }
        if (e > i) return [];
        return r.slice(e, i - e + 1);
      }
      var n = s(i.split("/"));
      var o = s(t.split("/"));
      var f = Math.min(n.length, o.length);
      var a = f;
      for (var e = 0; e < f; e++) {
        if (n[e] !== o[e]) {
          a = e;
          break;
        }
      }
      var r = [];
      for (var e = a; e < n.length; e++) {
        r.push("..");
      }
      r = r.concat(o.slice(a));
      return r.join("/");
    }
  };
  var TTY = {
    ttys: [],
    init: function() {},
    shutdown: function() {},
    register: function(e, r) {
      TTY.ttys[e] = { input: [], output: [], ops: r };
      FS.registerDevice(e, TTY.stream_ops);
    },
    stream_ops: {
      open: function(e) {
        var r = TTY.ttys[e.node.rdev];
        if (!r) {
          throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
        }
        e.tty = r;
        e.seekable = false;
      },
      close: function(e) {
        e.tty.ops.flush(e.tty);
      },
      flush: function(e) {
        e.tty.ops.flush(e.tty);
      },
      read: function(e, n, o, a, s) {
        if (!e.tty || !e.tty.ops.get_char) {
          throw new FS.ErrnoError(ERRNO_CODES.ENXIO);
        }
        var i = 0;
        for (var t = 0; t < a; t++) {
          var r;
          try {
            r = e.tty.ops.get_char(e.tty);
          } catch (f) {
            throw new FS.ErrnoError(ERRNO_CODES.EIO);
          }
          if (r === undefined && i === 0) {
            throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
          }
          if (r === null || r === undefined) break;
          i++;
          n[o + t] = r;
        }
        if (i) {
          e.node.timestamp = Date.now();
        }
        return i;
      },
      write: function(e, t, n, i, o) {
        if (!e.tty || !e.tty.ops.put_char) {
          throw new FS.ErrnoError(ERRNO_CODES.ENXIO);
        }
        for (var r = 0; r < i; r++) {
          try {
            e.tty.ops.put_char(e.tty, t[n + r]);
          } catch (a) {
            throw new FS.ErrnoError(ERRNO_CODES.EIO);
          }
        }
        if (i) {
          e.node.timestamp = Date.now();
        }
        return r;
      }
    },
    default_tty_ops: {
      get_char: function(r) {
        if (!r.input.length) {
          var e = null;
          if (ENVIRONMENT_IS_NODE) {
            var n = 256;
            var o = new Buffer(n);
            var i = 0;
            var t = process.stdin.fd;
            var a = false;
            try {
              t = fs.openSync("/dev/stdin", "r");
              a = true;
            } catch (s) {}
            i = fs.readSync(t, o, 0, n, null);
            if (a) {
              fs.closeSync(t);
            }
            if (i > 0) {
              e = o.slice(0, i).toString("utf-8");
            } else {
              e = null;
            }
          } else if (typeof window != "undefined" && typeof window.prompt == "function") {
            e = window.prompt("Input: ");
            if (e !== null) {
              e += "\n";
            }
          } else if (typeof readline == "function") {
            e = readline();
            if (e !== null) {
              e += "\n";
            }
          }
          if (!e) {
            return null;
          }
          r.input = intArrayFromString(e, true);
        }
        return r.input.shift();
      },
      put_char: function(r, e) {
        if (e === null || e === 10) {
          Module["print"](UTF8ArrayToString(r.output, 0));
          r.output = [];
        } else {
          if (e != 0) r.output.push(e);
        }
      },
      flush: function(e) {
        if (e.output && e.output.length > 0) {
          Module["print"](UTF8ArrayToString(e.output, 0));
          e.output = [];
        }
      }
    },
    default_tty1_ops: {
      put_char: function(r, e) {
        if (e === null || e === 10) {
          Module["printErr"](UTF8ArrayToString(r.output, 0));
          r.output = [];
        } else {
          if (e != 0) r.output.push(e);
        }
      },
      flush: function(e) {
        if (e.output && e.output.length > 0) {
          Module["printErr"](UTF8ArrayToString(e.output, 0));
          e.output = [];
        }
      }
    }
  };
  var MEMFS = {
    ops_table: null,
    mount: function(e) {
      return MEMFS.createNode(null, "/", 16384 | 511, 0);
    },
    createNode: function(r, t, i, n) {
      if (FS.isBlkdev(i) || FS.isFIFO(i)) {
        throw new FS.ErrnoError(ERRNO_CODES.EPERM);
      }
      if (!MEMFS.ops_table) {
        MEMFS.ops_table = {
          dir: {
            node: {
              getattr: MEMFS.node_ops.getattr,
              setattr: MEMFS.node_ops.setattr,
              lookup: MEMFS.node_ops.lookup,
              mknod: MEMFS.node_ops.mknod,
              rename: MEMFS.node_ops.rename,
              unlink: MEMFS.node_ops.unlink,
              rmdir: MEMFS.node_ops.rmdir,
              readdir: MEMFS.node_ops.readdir,
              symlink: MEMFS.node_ops.symlink
            },
            stream: { llseek: MEMFS.stream_ops.llseek }
          },
          file: {
            node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr },
            stream: {
              llseek: MEMFS.stream_ops.llseek,
              read: MEMFS.stream_ops.read,
              write: MEMFS.stream_ops.write,
              allocate: MEMFS.stream_ops.allocate,
              mmap: MEMFS.stream_ops.mmap,
              msync: MEMFS.stream_ops.msync
            }
          },
          link: {
            node: {
              getattr: MEMFS.node_ops.getattr,
              setattr: MEMFS.node_ops.setattr,
              readlink: MEMFS.node_ops.readlink
            },
            stream: {}
          },
          chrdev: {
            node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr },
            stream: FS.chrdev_stream_ops
          }
        };
      }
      var e = FS.createNode(r, t, i, n);
      if (FS.isDir(e.mode)) {
        e.node_ops = MEMFS.ops_table.dir.node;
        e.stream_ops = MEMFS.ops_table.dir.stream;
        e.contents = {};
      } else if (FS.isFile(e.mode)) {
        e.node_ops = MEMFS.ops_table.file.node;
        e.stream_ops = MEMFS.ops_table.file.stream;
        e.usedBytes = 0;
        e.contents = null;
      } else if (FS.isLink(e.mode)) {
        e.node_ops = MEMFS.ops_table.link.node;
        e.stream_ops = MEMFS.ops_table.link.stream;
      } else if (FS.isChrdev(e.mode)) {
        e.node_ops = MEMFS.ops_table.chrdev.node;
        e.stream_ops = MEMFS.ops_table.chrdev.stream;
      }
      e.timestamp = Date.now();
      if (r) {
        r.contents[t] = e;
      }
      return e;
    },
    getFileDataAsRegularArray: function(e) {
      if (e.contents && e.contents.subarray) {
        var i = [];
        for (var r = 0; r < e.usedBytes; ++r) i.push(e.contents[r]);
        return i;
      }
      return e.contents;
    },
    getFileDataAsTypedArray: function(e) {
      if (!e.contents) return new Uint8Array();
      if (e.contents.subarray) return e.contents.subarray(0, e.usedBytes);
      return new Uint8Array(e.contents);
    },
    expandFileStorage: function(e, r) {
      if (e.contents && e.contents.subarray && r > e.contents.length) {
        e.contents = MEMFS.getFileDataAsRegularArray(e);
        e.usedBytes = e.contents.length;
      }
      if (!e.contents || e.contents.subarray) {
        var i = e.contents ? e.contents.buffer.byteLength : 0;
        if (i >= r) return;
        var t = 1024 * 1024;
        r = Math.max(r, (i * (i < t ? 2 : 1.125)) | 0);
        if (i != 0) r = Math.max(r, 256);
        var n = e.contents;
        e.contents = new Uint8Array(r);
        if (e.usedBytes > 0) e.contents.set(n.subarray(0, e.usedBytes), 0);
        return;
      }
      if (!e.contents && r > 0) e.contents = [];
      while (e.contents.length < r) e.contents.push(0);
    },
    resizeFileStorage: function(e, r) {
      if (e.usedBytes == r) return;
      if (r == 0) {
        e.contents = null;
        e.usedBytes = 0;
        return;
      }
      if (!e.contents || e.contents.subarray) {
        var i = e.contents;
        e.contents = new Uint8Array(new ArrayBuffer(r));
        if (i) {
          e.contents.set(i.subarray(0, Math.min(r, e.usedBytes)));
        }
        e.usedBytes = r;
        return;
      }
      if (!e.contents) e.contents = [];
      if (e.contents.length > r) e.contents.length = r;
      else while (e.contents.length < r) e.contents.push(0);
      e.usedBytes = r;
    },
    node_ops: {
      getattr: function(r) {
        var e = {};
        e.dev = FS.isChrdev(r.mode) ? r.id : 1;
        e.ino = r.id;
        e.mode = r.mode;
        e.nlink = 1;
        e.uid = 0;
        e.gid = 0;
        e.rdev = r.rdev;
        if (FS.isDir(r.mode)) {
          e.size = 4096;
        } else if (FS.isFile(r.mode)) {
          e.size = r.usedBytes;
        } else if (FS.isLink(r.mode)) {
          e.size = r.link.length;
        } else {
          e.size = 0;
        }
        e.atime = new Date(r.timestamp);
        e.mtime = new Date(r.timestamp);
        e.ctime = new Date(r.timestamp);
        e.blksize = 4096;
        e.blocks = Math.ceil(e.size / e.blksize);
        return e;
      },
      setattr: function(r, e) {
        if (e.mode !== undefined) {
          r.mode = e.mode;
        }
        if (e.timestamp !== undefined) {
          r.timestamp = e.timestamp;
        }
        if (e.size !== undefined) {
          MEMFS.resizeFileStorage(r, e.size);
        }
      },
      lookup: function(e, r) {
        throw FS.genericErrors[ERRNO_CODES.ENOENT];
      },
      mknod: function(e, r, i, t) {
        return MEMFS.createNode(e, r, i, t);
      },
      rename: function(e, r, i) {
        if (FS.isDir(e.mode)) {
          var t;
          try {
            t = FS.lookupNode(r, i);
          } catch (n) {}
          if (t) {
            for (var o in t.contents) {
              throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
            }
          }
        }
        delete e.parent.contents[e.name];
        e.name = i;
        r.contents[i] = e;
        e.parent = r;
      },
      unlink: function(e, r) {
        delete e.contents[r];
      },
      rmdir: function(e, r) {
        var i = FS.lookupNode(e, r);
        for (var t in i.contents) {
          throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
        }
        delete e.contents[r];
      },
      readdir: function(e) {
        var r = [".", ".."];
        for (var i in e.contents) {
          if (!e.contents.hasOwnProperty(i)) {
            continue;
          }
          r.push(i);
        }
        return r;
      },
      symlink: function(r, i, t) {
        var e = MEMFS.createNode(r, i, 511 | 40960, 0);
        e.link = t;
        return e;
      },
      readlink: function(e) {
        if (!FS.isLink(e.mode)) {
          throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
        }
        return e.link;
      }
    },
    stream_ops: {
      read: function(t, o, a, s, e) {
        var n = t.node.contents;
        if (e >= t.node.usedBytes) return 0;
        var r = Math.min(t.node.usedBytes - e, s);
        assert(r >= 0);
        if (r > 8 && n.subarray) {
          o.set(n.subarray(e, e + r), a);
        } else {
          for (var i = 0; i < r; i++) o[a + i] = n[e + i];
        }
        return r;
      },
      write: function(a, t, i, r, n, s) {
        if (!r) return 0;
        var e = a.node;
        e.timestamp = Date.now();
        if (t.subarray && (!e.contents || e.contents.subarray)) {
          if (s) {
            e.contents = t.subarray(i, i + r);
            e.usedBytes = r;
            return r;
          } else if (e.usedBytes === 0 && n === 0) {
            e.contents = new Uint8Array(t.subarray(i, i + r));
            e.usedBytes = r;
            return r;
          } else if (n + r <= e.usedBytes) {
            e.contents.set(t.subarray(i, i + r), n);
            return r;
          }
        }
        MEMFS.expandFileStorage(e, n + r);
        if (e.contents.subarray && t.subarray) e.contents.set(t.subarray(i, i + r), n);
        else {
          for (var o = 0; o < r; o++) {
            e.contents[n + o] = t[i + o];
          }
        }
        e.usedBytes = Math.max(e.usedBytes, n + r);
        return r;
      },
      llseek: function(r, t, i) {
        var e = t;
        if (i === 1) {
          e += r.position;
        } else if (i === 2) {
          if (FS.isFile(r.node.mode)) {
            e += r.node.usedBytes;
          }
        }
        if (e < 0) {
          throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
        }
        return e;
      },
      allocate: function(e, r, i) {
        MEMFS.expandFileStorage(e.node, r + i);
        e.node.usedBytes = Math.max(e.node.usedBytes, r + i);
      },
      mmap: function(n, o, f, t, r, l, s) {
        if (!FS.isFile(n.node.mode)) {
          throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
        }
        var i;
        var a;
        var e = n.node.contents;
        if (!(s & 2) && (e.buffer === o || e.buffer === o.buffer)) {
          a = false;
          i = e.byteOffset;
        } else {
          if (r > 0 || r + t < n.node.usedBytes) {
            if (e.subarray) {
              e = e.subarray(r, r + t);
            } else {
              e = Array.prototype.slice.call(e, r, r + t);
            }
          }
          a = true;
          i = _malloc(t);
          if (!i) {
            throw new FS.ErrnoError(ERRNO_CODES.ENOMEM);
          }
          o.set(e, i);
        }
        return { ptr: i, allocated: a };
      },
      msync: function(e, r, i, t, n) {
        if (!FS.isFile(e.node.mode)) {
          throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
        }
        if (n & 2) {
          return 0;
        }
        var o = MEMFS.stream_ops.write(e, r, 0, t, i, false);
        return 0;
      }
    }
  };
  var IDBFS = {
    dbs: {},
    indexedDB: function() {
      if (typeof indexedDB !== "undefined") return indexedDB;
      var e = null;
      if (typeof window === "object")
        e = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
      assert(e, "IDBFS used, but indexedDB not supported");
      return e;
    },
    DB_VERSION: 21,
    DB_STORE_NAME: "FILE_DATA",
    mount: function(e) {
      return MEMFS.mount.apply(null, arguments);
    },
    syncfs: function(r, i, e) {
      IDBFS.getLocalSet(r, function(t, n) {
        if (t) return e(t);
        IDBFS.getRemoteSet(r, function(r, t) {
          if (r) return e(r);
          var o = i ? t : n;
          var a = i ? n : t;
          IDBFS.reconcile(o, a, e);
        });
      });
    },
    getDB: function(t, i) {
      var e = IDBFS.dbs[t];
      if (e) {
        return i(null, e);
      }
      var r;
      try {
        r = IDBFS.indexedDB().open(t, IDBFS.DB_VERSION);
      } catch (n) {
        return i(n);
      }
      r.onupgradeneeded = function(r) {
        var i = r.target.result;
        var t = r.target.transaction;
        var e;
        if (i.objectStoreNames.contains(IDBFS.DB_STORE_NAME)) {
          e = t.objectStore(IDBFS.DB_STORE_NAME);
        } else {
          e = i.createObjectStore(IDBFS.DB_STORE_NAME);
        }
        if (!e.indexNames.contains("timestamp")) {
          e.createIndex("timestamp", "timestamp", { unique: false });
        }
      };
      r.onsuccess = function() {
        e = r.result;
        IDBFS.dbs[t] = e;
        i(null, e);
      };
      r.onerror = function(e) {
        i(this.error);
        e.preventDefault();
      };
    },
    getLocalSet: function(t, n) {
      var o = {};
      function a(e) {
        return e !== "." && e !== "..";
      }
      function s(e) {
        return function(r) {
          return PATH.join2(e, r);
        };
      }
      var e = FS.readdir(t.mountpoint)
        .filter(a)
        .map(s(t.mountpoint));
      while (e.length) {
        var r = e.pop();
        var i;
        try {
          i = FS.stat(r);
        } catch (f) {
          return n(f);
        }
        if (FS.isDir(i.mode)) {
          e.push.apply(
            e,
            FS.readdir(r)
              .filter(a)
              .map(s(r))
          );
        }
        o[r] = { timestamp: i.mtime };
      }
      return n(null, { type: "local", entries: o });
    },
    getRemoteSet: function(i, e) {
      var r = {};
      IDBFS.getDB(i.mountpoint, function(i, t) {
        if (i) return e(i);
        var n = t.transaction([IDBFS.DB_STORE_NAME], "readonly");
        n.onerror = function(r) {
          e(this.error);
          r.preventDefault();
        };
        var o = n.objectStore(IDBFS.DB_STORE_NAME);
        var a = o.index("timestamp");
        a.openKeyCursor().onsuccess = function(n) {
          var i = n.target.result;
          if (!i) {
            return e(null, { type: "remote", db: t, entries: r });
          }
          r[i.primaryKey] = { timestamp: i.key };
          i.continue();
        };
      });
    },
    loadLocalEntry: function(t, r) {
      var e, i;
      try {
        var n = FS.lookupPath(t);
        i = n.node;
        e = FS.stat(t);
      } catch (o) {
        return r(o);
      }
      if (FS.isDir(e.mode)) {
        return r(null, { timestamp: e.mtime, mode: e.mode });
      } else if (FS.isFile(e.mode)) {
        i.contents = MEMFS.getFileDataAsTypedArray(i);
        return r(null, { timestamp: e.mtime, mode: e.mode, contents: i.contents });
      } else {
        return r(new Error("node type not supported"));
      }
    },
    storeLocalEntry: function(r, e, i) {
      try {
        if (FS.isDir(e.mode)) {
          FS.mkdir(r, e.mode);
        } else if (FS.isFile(e.mode)) {
          FS.writeFile(r, e.contents, { encoding: "binary", canOwn: true });
        } else {
          return i(new Error("node type not supported"));
        }
        FS.chmod(r, e.mode);
        FS.utime(r, e.timestamp, e.timestamp);
      } catch (t) {
        return i(t);
      }
      i(null);
    },
    removeLocalEntry: function(e, r) {
      try {
        var n = FS.lookupPath(e);
        var i = FS.stat(e);
        if (FS.isDir(i.mode)) {
          FS.rmdir(e);
        } else if (FS.isFile(i.mode)) {
          FS.unlink(e);
        }
      } catch (t) {
        return r(t);
      }
      r(null);
    },
    loadRemoteEntry: function(i, t, e) {
      var r = i.get(t);
      r.onsuccess = function(r) {
        e(null, r.target.result);
      };
      r.onerror = function(r) {
        e(this.error);
        r.preventDefault();
      };
    },
    storeRemoteEntry: function(i, t, n, e) {
      var r = i.put(n, t);
      r.onsuccess = function() {
        e(null);
      };
      r.onerror = function(r) {
        e(this.error);
        r.preventDefault();
      };
    },
    removeRemoteEntry: function(i, t, e) {
      var r = i.delete(t);
      r.onsuccess = function() {
        e(null);
      };
      r.onerror = function(r) {
        e(this.error);
        r.preventDefault();
      };
    },
    reconcile: function(i, r, n) {
      var t = 0;
      var a = [];
      Object.keys(i.entries).forEach(function(e) {
        var o = i.entries[e];
        var n = r.entries[e];
        if (!n || o.timestamp > n.timestamp) {
          a.push(e);
          t++;
        }
      });
      var s = [];
      Object.keys(r.entries).forEach(function(e) {
        var o = r.entries[e];
        var n = i.entries[e];
        if (!n) {
          s.push(e);
          t++;
        }
      });
      if (!t) {
        return n(null);
      }
      var c = false;
      var l = 0;
      var u = i.type === "remote" ? i.db : r.db;
      var f = u.transaction([IDBFS.DB_STORE_NAME], "readwrite");
      var o = f.objectStore(IDBFS.DB_STORE_NAME);
      function e(r) {
        if (r) {
          if (!e.errored) {
            e.errored = true;
            return n(r);
          }
          return;
        }
        if (++l >= t) {
          return n(null);
        }
      }
      f.onerror = function(r) {
        e(this.error);
        r.preventDefault();
      };
      a.sort().forEach(function(i) {
        if (r.type === "local") {
          IDBFS.loadRemoteEntry(o, i, function(r, t) {
            if (r) return e(r);
            IDBFS.storeLocalEntry(i, t, e);
          });
        } else {
          IDBFS.loadLocalEntry(i, function(r, t) {
            if (r) return e(r);
            IDBFS.storeRemoteEntry(o, i, t, e);
          });
        }
      });
      s.sort()
        .reverse()
        .forEach(function(i) {
          if (r.type === "local") {
            IDBFS.removeLocalEntry(i, e);
          } else {
            IDBFS.removeRemoteEntry(o, i, e);
          }
        });
    }
  };
  var NODEFS = {
    isWindows: false,
    staticInit: function() {
      NODEFS.isWindows = !!process.platform.match(/^win/);
    },
    mount: function(e) {
      assert(ENVIRONMENT_IS_NODE);
      return NODEFS.createNode(null, "/", NODEFS.getMode(e.opts.root), 0);
    },
    createNode: function(i, t, e, n) {
      if (!FS.isDir(e) && !FS.isFile(e) && !FS.isLink(e)) {
        throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
      }
      var r = FS.createNode(i, t, e);
      r.node_ops = NODEFS.node_ops;
      r.stream_ops = NODEFS.stream_ops;
      return r;
    },
    getMode: function(i) {
      var e;
      try {
        e = fs.lstatSync(i);
        if (NODEFS.isWindows) {
          e.mode = e.mode | ((e.mode & 146) >> 1);
        }
      } catch (r) {
        if (!r.code) throw r;
        throw new FS.ErrnoError(ERRNO_CODES[r.code]);
      }
      return e.mode;
    },
    realPath: function(e) {
      var r = [];
      while (e.parent !== e) {
        r.push(e.name);
        e = e.parent;
      }
      r.push(e.mount.opts.root);
      r.reverse();
      return PATH.join.apply(null, r);
    },
    flagsToPermissionStringMap: {
      0: "r",
      1: "r+",
      2: "r+",
      64: "r",
      65: "r+",
      66: "r+",
      129: "rx+",
      193: "rx+",
      514: "w+",
      577: "w",
      578: "w+",
      705: "wx",
      706: "wx+",
      1024: "a",
      1025: "a",
      1026: "a+",
      1089: "a",
      1090: "a+",
      1153: "ax",
      1154: "ax+",
      1217: "ax",
      1218: "ax+",
      4096: "rs",
      4098: "rs+"
    },
    flagsToPermissionString: function(e) {
      if (e in NODEFS.flagsToPermissionStringMap) {
        return NODEFS.flagsToPermissionStringMap[e];
      } else {
        return e;
      }
    },
    node_ops: {
      getattr: function(i) {
        var t = NODEFS.realPath(i);
        var e;
        try {
          e = fs.lstatSync(t);
        } catch (r) {
          if (!r.code) throw r;
          throw new FS.ErrnoError(ERRNO_CODES[r.code]);
        }
        if (NODEFS.isWindows && !e.blksize) {
          e.blksize = 4096;
        }
        if (NODEFS.isWindows && !e.blocks) {
          e.blocks = ((e.size + e.blksize - 1) / e.blksize) | 0;
        }
        return {
          dev: e.dev,
          ino: e.ino,
          mode: e.mode,
          nlink: e.nlink,
          uid: e.uid,
          gid: e.gid,
          rdev: e.rdev,
          size: e.size,
          atime: e.atime,
          mtime: e.mtime,
          ctime: e.ctime,
          blksize: e.blksize,
          blocks: e.blocks
        };
      },
      setattr: function(t, e) {
        var r = NODEFS.realPath(t);
        try {
          if (e.mode !== undefined) {
            fs.chmodSync(r, e.mode);
            t.mode = e.mode;
          }
          if (e.timestamp !== undefined) {
            var n = new Date(e.timestamp);
            fs.utimesSync(r, n, n);
          }
          if (e.size !== undefined) {
            fs.truncateSync(r, e.size);
          }
        } catch (i) {
          if (!i.code) throw i;
          throw new FS.ErrnoError(ERRNO_CODES[i.code]);
        }
      },
      lookup: function(e, r) {
        var i = PATH.join2(NODEFS.realPath(e), r);
        var t = NODEFS.getMode(i);
        return NODEFS.createNode(e, r, t);
      },
      mknod: function(t, n, o, a) {
        var e = NODEFS.createNode(t, n, o, a);
        var i = NODEFS.realPath(e);
        try {
          if (FS.isDir(e.mode)) {
            fs.mkdirSync(i, e.mode);
          } else {
            fs.writeFileSync(i, "", { mode: e.mode });
          }
        } catch (r) {
          if (!r.code) throw r;
          throw new FS.ErrnoError(ERRNO_CODES[r.code]);
        }
        return e;
      },
      rename: function(r, i, t) {
        var n = NODEFS.realPath(r);
        var o = PATH.join2(NODEFS.realPath(i), t);
        try {
          fs.renameSync(n, o);
        } catch (e) {
          if (!e.code) throw e;
          throw new FS.ErrnoError(ERRNO_CODES[e.code]);
        }
      },
      unlink: function(r, i) {
        var t = PATH.join2(NODEFS.realPath(r), i);
        try {
          fs.unlinkSync(t);
        } catch (e) {
          if (!e.code) throw e;
          throw new FS.ErrnoError(ERRNO_CODES[e.code]);
        }
      },
      rmdir: function(r, i) {
        var t = PATH.join2(NODEFS.realPath(r), i);
        try {
          fs.rmdirSync(t);
        } catch (e) {
          if (!e.code) throw e;
          throw new FS.ErrnoError(ERRNO_CODES[e.code]);
        }
      },
      readdir: function(r) {
        var i = NODEFS.realPath(r);
        try {
          return fs.readdirSync(i);
        } catch (e) {
          if (!e.code) throw e;
          throw new FS.ErrnoError(ERRNO_CODES[e.code]);
        }
      },
      symlink: function(r, i, t) {
        var n = PATH.join2(NODEFS.realPath(r), i);
        try {
          fs.symlinkSync(t, n);
        } catch (e) {
          if (!e.code) throw e;
          throw new FS.ErrnoError(ERRNO_CODES[e.code]);
        }
      },
      readlink: function(i) {
        var e = NODEFS.realPath(i);
        try {
          e = fs.readlinkSync(e);
          e = NODEJS_PATH.relative(NODEJS_PATH.resolve(i.mount.opts.root), e);
          return e;
        } catch (r) {
          if (!r.code) throw r;
          throw new FS.ErrnoError(ERRNO_CODES[r.code]);
        }
      }
    },
    stream_ops: {
      open: function(e) {
        var i = NODEFS.realPath(e.node);
        try {
          if (FS.isFile(e.node.mode)) {
            e.nfd = fs.openSync(i, NODEFS.flagsToPermissionString(e.flags));
          }
        } catch (r) {
          if (!r.code) throw r;
          throw new FS.ErrnoError(ERRNO_CODES[r.code]);
        }
      },
      close: function(e) {
        try {
          if (FS.isFile(e.node.mode) && e.nfd) {
            fs.closeSync(e.nfd);
          }
        } catch (r) {
          if (!r.code) throw r;
          throw new FS.ErrnoError(ERRNO_CODES[r.code]);
        }
      },
      read: function(n, o, a, i, s) {
        if (i === 0) return 0;
        var t = new Buffer(i);
        var e;
        try {
          e = fs.readSync(n.nfd, t, 0, i, s);
        } catch (f) {
          throw new FS.ErrnoError(ERRNO_CODES[f.code]);
        }
        if (e > 0) {
          for (var r = 0; r < e; r++) {
            o[a + r] = t[r];
          }
        }
        return e;
      },
      write: function(t, n, e, r, o) {
        var a = new Buffer(n.subarray(e, e + r));
        var i;
        try {
          i = fs.writeSync(t.nfd, a, 0, r, o);
        } catch (s) {
          throw new FS.ErrnoError(ERRNO_CODES[s.code]);
        }
        return i;
      },
      llseek: function(r, t, i) {
        var e = t;
        if (i === 1) {
          e += r.position;
        } else if (i === 2) {
          if (FS.isFile(r.node.mode)) {
            try {
              var n = fs.fstatSync(r.nfd);
              e += n.size;
            } catch (o) {
              throw new FS.ErrnoError(ERRNO_CODES[o.code]);
            }
          }
        }
        if (e < 0) {
          throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
        }
        return e;
      }
    }
  };
  var _stdin = allocate(1, "i32*", ALLOC_STATIC);
  var _stdout = allocate(1, "i32*", ALLOC_STATIC);
  var _stderr = allocate(1, "i32*", ALLOC_STATIC);
  var FS = {
    root: null,
    mounts: [],
    devices: [null],
    streams: [],
    nextInode: 1,
    nameTable: null,
    currentPath: "/",
    initialized: false,
    ignorePermissions: true,
    trackingDelegate: {},
    tracking: { openFlags: { READ: 1, WRITE: 2 } },
    ErrnoError: null,
    genericErrors: {},
    handleFSError: function(e) {
      if (!(e instanceof FS.ErrnoError)) throw e + " : " + stackTrace();
      return ___setErrNo(e.errno);
    },
    lookupPath: function(a, e) {
      a = PATH.resolve(FS.cwd(), a);
      e = e || {};
      if (!a) return { path: "", node: null };
      var f = { follow_mount: true, recurse_count: 0 };
      for (var s in f) {
        if (e[s] === undefined) {
          e[s] = f[s];
        }
      }
      if (e.recurse_count > 8) {
        throw new FS.ErrnoError(ERRNO_CODES.ELOOP);
      }
      var n = PATH.normalizeArray(
        a.split("/").filter(function(e) {
          return !!e;
        }),
        false
      );
      var r = FS.root;
      var i = "/";
      for (var t = 0; t < n.length; t++) {
        var o = t === n.length - 1;
        if (o && e.parent) {
          break;
        }
        r = FS.lookupNode(r, n[t]);
        i = PATH.join2(i, n[t]);
        if (FS.isMountpoint(r)) {
          if (!o || (o && e.follow_mount)) {
            r = r.mounted.root;
          }
        }
        if (!o || e.follow) {
          var l = 0;
          while (FS.isLink(r.mode)) {
            var u = FS.readlink(i);
            i = PATH.resolve(PATH.dirname(i), u);
            var c = FS.lookupPath(i, { recurse_count: e.recurse_count });
            r = c.node;
            if (l++ > 40) {
              throw new FS.ErrnoError(ERRNO_CODES.ELOOP);
            }
          }
        }
      }
      return { path: i, node: r };
    },
    getPath: function(e) {
      var r;
      while (true) {
        if (FS.isRoot(e)) {
          var i = e.mount.mountpoint;
          if (!r) return i;
          return i[i.length - 1] !== "/" ? i + "/" + r : i + r;
        }
        r = r ? e.name + "/" + r : e.name;
        e = e.parent;
      }
    },
    hashName: function(t, i) {
      var e = 0;
      for (var r = 0; r < i.length; r++) {
        e = ((e << 5) - e + i.charCodeAt(r)) | 0;
      }
      return ((t + e) >>> 0) % FS.nameTable.length;
    },
    hashAddNode: function(e) {
      var r = FS.hashName(e.parent.id, e.name);
      e.name_next = FS.nameTable[r];
      FS.nameTable[r] = e;
    },
    hashRemoveNode: function(e) {
      var i = FS.hashName(e.parent.id, e.name);
      if (FS.nameTable[i] === e) {
        FS.nameTable[i] = e.name_next;
      } else {
        var r = FS.nameTable[i];
        while (r) {
          if (r.name_next === e) {
            r.name_next = e.name_next;
            break;
          }
          r = r.name_next;
        }
      }
    },
    lookupNode: function(r, i) {
      var t = FS.mayLookup(r);
      if (t) {
        throw new FS.ErrnoError(t, r);
      }
      var n = FS.hashName(r.id, i);
      for (var e = FS.nameTable[n]; e; e = e.name_next) {
        var o = e.name;
        if (e.parent.id === r.id && o === i) {
          return e;
        }
      }
      return FS.lookup(r, i);
    },
    createNode: function(t, n, o, a) {
      if (!FS.FSNode) {
        FS.FSNode = function(e, r, i, t) {
          if (!e) {
            e = this;
          }
          this.parent = e;
          this.mount = e.mount;
          this.mounted = null;
          this.id = FS.nextInode++;
          this.name = r;
          this.mode = i;
          this.node_ops = {};
          this.stream_ops = {};
          this.rdev = t;
        };
        FS.FSNode.prototype = {};
        var e = 292 | 73;
        var r = 146;
        Object.defineProperties(FS.FSNode.prototype, {
          read: {
            get: function() {
              return (this.mode & e) === e;
            },
            set: function(r) {
              r ? (this.mode |= e) : (this.mode &= ~e);
            }
          },
          write: {
            get: function() {
              return (this.mode & r) === r;
            },
            set: function(e) {
              e ? (this.mode |= r) : (this.mode &= ~r);
            }
          },
          isFolder: {
            get: function() {
              return FS.isDir(this.mode);
            }
          },
          isDevice: {
            get: function() {
              return FS.isChrdev(this.mode);
            }
          }
        });
      }
      var i = new FS.FSNode(t, n, o, a);
      FS.hashAddNode(i);
      return i;
    },
    destroyNode: function(e) {
      FS.hashRemoveNode(e);
    },
    isRoot: function(e) {
      return e === e.parent;
    },
    isMountpoint: function(e) {
      return !!e.mounted;
    },
    isFile: function(e) {
      return (e & 61440) === 32768;
    },
    isDir: function(e) {
      return (e & 61440) === 16384;
    },
    isLink: function(e) {
      return (e & 61440) === 40960;
    },
    isChrdev: function(e) {
      return (e & 61440) === 8192;
    },
    isBlkdev: function(e) {
      return (e & 61440) === 24576;
    },
    isFIFO: function(e) {
      return (e & 61440) === 4096;
    },
    isSocket: function(e) {
      return (e & 49152) === 49152;
    },
    flagModes: {
      r: 0,
      rs: 1052672,
      "r+": 2,
      w: 577,
      wx: 705,
      xw: 705,
      "w+": 578,
      "wx+": 706,
      "xw+": 706,
      a: 1089,
      ax: 1217,
      xa: 1217,
      "a+": 1090,
      "ax+": 1218,
      "xa+": 1218
    },
    modeStringToFlags: function(e) {
      var r = FS.flagModes[e];
      if (typeof r === "undefined") {
        throw new Error("Unknown file open mode: " + e);
      }
      return r;
    },
    flagsToPermissionString: function(e) {
      var i = e & 2097155;
      var r = ["r", "w", "rw"][i];
      if (e & 512) {
        r += "w";
      }
      return r;
    },
    nodePermissions: function(e, r) {
      if (FS.ignorePermissions) {
        return 0;
      }
      if (r.indexOf("r") !== -1 && !(e.mode & 292)) {
        return ERRNO_CODES.EACCES;
      } else if (r.indexOf("w") !== -1 && !(e.mode & 146)) {
        return ERRNO_CODES.EACCES;
      } else if (r.indexOf("x") !== -1 && !(e.mode & 73)) {
        return ERRNO_CODES.EACCES;
      }
      return 0;
    },
    mayLookup: function(e) {
      var r = FS.nodePermissions(e, "x");
      if (r) return r;
      if (!e.node_ops.lookup) return ERRNO_CODES.EACCES;
      return 0;
    },
    mayCreate: function(e, r) {
      try {
        var i = FS.lookupNode(e, r);
        return ERRNO_CODES.EEXIST;
      } catch (t) {}
      return FS.nodePermissions(e, "wx");
    },
    mayDelete: function(r, t, n) {
      var e;
      try {
        e = FS.lookupNode(r, t);
      } catch (o) {
        return o.errno;
      }
      var i = FS.nodePermissions(r, "wx");
      if (i) {
        return i;
      }
      if (n) {
        if (!FS.isDir(e.mode)) {
          return ERRNO_CODES.ENOTDIR;
        }
        if (FS.isRoot(e) || FS.getPath(e) === FS.cwd()) {
          return ERRNO_CODES.EBUSY;
        }
      } else {
        if (FS.isDir(e.mode)) {
          return ERRNO_CODES.EISDIR;
        }
      }
      return 0;
    },
    mayOpen: function(e, r) {
      if (!e) {
        return ERRNO_CODES.ENOENT;
      }
      if (FS.isLink(e.mode)) {
        return ERRNO_CODES.ELOOP;
      } else if (FS.isDir(e.mode)) {
        if ((r & 2097155) !== 0 || r & 512) {
          return ERRNO_CODES.EISDIR;
        }
      }
      return FS.nodePermissions(e, FS.flagsToPermissionString(r));
    },
    MAX_OPEN_FDS: 4096,
    nextfd: function(r, i) {
      r = r || 0;
      i = i || FS.MAX_OPEN_FDS;
      for (var e = r; e <= i; e++) {
        if (!FS.streams[e]) {
          return e;
        }
      }
      throw new FS.ErrnoError(ERRNO_CODES.EMFILE);
    },
    getStream: function(e) {
      return FS.streams[e];
    },
    createStream: function(e, n, o) {
      if (!FS.FSStream) {
        FS.FSStream = function() {};
        FS.FSStream.prototype = {};
        Object.defineProperties(FS.FSStream.prototype, {
          object: {
            get: function() {
              return this.node;
            },
            set: function(e) {
              this.node = e;
            }
          },
          isRead: {
            get: function() {
              return (this.flags & 2097155) !== 1;
            }
          },
          isWrite: {
            get: function() {
              return (this.flags & 2097155) !== 0;
            }
          },
          isAppend: {
            get: function() {
              return this.flags & 1024;
            }
          }
        });
      }
      var r = new FS.FSStream();
      for (var i in e) {
        r[i] = e[i];
      }
      e = r;
      var t = FS.nextfd(n, o);
      e.fd = t;
      FS.streams[t] = e;
      return e;
    },
    closeStream: function(e) {
      FS.streams[e] = null;
    },
    getStreamFromPtr: function(e) {
      return FS.streams[e - 1];
    },
    getPtrForStream: function(e) {
      return e ? e.fd + 1 : 0;
    },
    chrdev_stream_ops: {
      open: function(e) {
        var r = FS.getDevice(e.node.rdev);
        e.stream_ops = r.stream_ops;
        if (e.stream_ops.open) {
          e.stream_ops.open(e);
        }
      },
      llseek: function() {
        throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
      }
    },
    major: function(e) {
      return e >> 8;
    },
    minor: function(e) {
      return e & 255;
    },
    makedev: function(e, r) {
      return (e << 8) | r;
    },
    registerDevice: function(e, r) {
      FS.devices[e] = { stream_ops: r };
    },
    getDevice: function(e) {
      return FS.devices[e];
    },
    getMounts: function(t) {
      var r = [];
      var e = [t];
      while (e.length) {
        var i = e.pop();
        r.push(i);
        e.push.apply(e, i.mounts);
      }
      return r;
    },
    syncfs: function(e, i) {
      if (typeof e === "function") {
        i = e;
        e = false;
      }
      var t = FS.getMounts(FS.root.mount);
      var n = 0;
      function r(e) {
        if (e) {
          if (!r.errored) {
            r.errored = true;
            return i(e);
          }
          return;
        }
        if (++n >= t.length) {
          i(null);
        }
      }
      t.forEach(function(i) {
        if (!i.type.syncfs) {
          return r(null);
        }
        i.type.syncfs(i, e, r);
      });
    },
    mount: function(o, s, r) {
      var n = r === "/";
      var f = !r;
      var e;
      if (n && FS.root) {
        throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
      } else if (!n && !f) {
        var a = FS.lookupPath(r, { follow_mount: false });
        r = a.path;
        e = a.node;
        if (FS.isMountpoint(e)) {
          throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
        }
        if (!FS.isDir(e.mode)) {
          throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);
        }
      }
      var i = { type: o, opts: s, mountpoint: r, mounts: [] };
      var t = o.mount(i);
      t.mount = i;
      i.root = t;
      if (n) {
        FS.root = t;
      } else if (e) {
        e.mounted = i;
        if (e.mount) {
          e.mount.mounts.push(i);
        }
      }
      return t;
    },
    unmount: function(n) {
      var r = FS.lookupPath(n, { follow_mount: false });
      if (!FS.isMountpoint(r.node)) {
        throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
      }
      var e = r.node;
      var i = e.mounted;
      var o = FS.getMounts(i);
      Object.keys(FS.nameTable).forEach(function(r) {
        var e = FS.nameTable[r];
        while (e) {
          var i = e.name_next;
          if (o.indexOf(e.mount) !== -1) {
            FS.destroyNode(e);
          }
          e = i;
        }
      });
      e.mounted = null;
      var t = e.mount.mounts.indexOf(i);
      assert(t !== -1);
      e.mount.mounts.splice(t, 1);
    },
    lookup: function(e, r) {
      return e.node_ops.lookup(e, r);
    },
    mknod: function(i, n, o) {
      var a = FS.lookupPath(i, { parent: true });
      var r = a.node;
      var e = PATH.basename(i);
      if (!e || e === "." || e === "..") {
        throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
      }
      var t = FS.mayCreate(r, e);
      if (t) {
        throw new FS.ErrnoError(t);
      }
      if (!r.node_ops.mknod) {
        throw new FS.ErrnoError(ERRNO_CODES.EPERM);
      }
      return r.node_ops.mknod(r, e, n, o);
    },
    create: function(r, e) {
      e = e !== undefined ? e : 438;
      e &= 4095;
      e |= 32768;
      return FS.mknod(r, e, 0);
    },
    mkdir: function(r, e) {
      e = e !== undefined ? e : 511;
      e &= 511 | 512;
      e |= 16384;
      return FS.mknod(r, e, 0);
    },
    mkdev: function(i, e, r) {
      if (typeof r === "undefined") {
        r = e;
        e = 438;
      }
      e |= 8192;
      return FS.mknod(i, e, r);
    },
    symlink: function(r, i) {
      if (!PATH.resolve(r)) {
        throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
      }
      var o = FS.lookupPath(i, { parent: true });
      var e = o.node;
      if (!e) {
        throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
      }
      var t = PATH.basename(i);
      var n = FS.mayCreate(e, t);
      if (n) {
        throw new FS.ErrnoError(n);
      }
      if (!e.node_ops.symlink) {
        throw new FS.ErrnoError(ERRNO_CODES.EPERM);
      }
      return e.node_ops.symlink(e, t, r);
    },
    rename: function(r, t) {
      var h = PATH.dirname(r);
      var m = PATH.dirname(t);
      var d = PATH.basename(r);
      var f = PATH.basename(t);
      var s, e, i;
      try {
        s = FS.lookupPath(r, { parent: true });
        e = s.node;
        s = FS.lookupPath(t, { parent: true });
        i = s.node;
      } catch (l) {
        throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
      }
      if (!e || !i) throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
      if (e.mount !== i.mount) {
        throw new FS.ErrnoError(ERRNO_CODES.EXDEV);
      }
      var o = FS.lookupNode(e, d);
      var u = PATH.relative(r, m);
      if (u.charAt(0) !== ".") {
        throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
      }
      u = PATH.relative(t, h);
      if (u.charAt(0) !== ".") {
        throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
      }
      var a;
      try {
        a = FS.lookupNode(i, f);
      } catch (l) {}
      if (o === a) {
        return;
      }
      var c = FS.isDir(o.mode);
      var n = FS.mayDelete(e, d, c);
      if (n) {
        throw new FS.ErrnoError(n);
      }
      n = a ? FS.mayDelete(i, f, c) : FS.mayCreate(i, f);
      if (n) {
        throw new FS.ErrnoError(n);
      }
      if (!e.node_ops.rename) {
        throw new FS.ErrnoError(ERRNO_CODES.EPERM);
      }
      if (FS.isMountpoint(o) || (a && FS.isMountpoint(a))) {
        throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
      }
      if (i !== e) {
        n = FS.nodePermissions(e, "w");
        if (n) {
          throw new FS.ErrnoError(n);
        }
      }
      try {
        if (FS.trackingDelegate["willMovePath"]) {
          FS.trackingDelegate["willMovePath"](r, t);
        }
      } catch (l) {
        console.log(
          "FS.trackingDelegate['willMovePath']('" +
            r +
            "', '" +
            t +
            "') threw an exception: " +
            l.message
        );
      }
      FS.hashRemoveNode(o);
      try {
        e.node_ops.rename(o, i, f);
      } catch (l) {
        throw l;
      } finally {
        FS.hashAddNode(o);
      }
      try {
        if (FS.trackingDelegate["onMovePath"]) FS.trackingDelegate["onMovePath"](r, t);
      } catch (l) {
        console.log(
          "FS.trackingDelegate['onMovePath']('" +
            r +
            "', '" +
            t +
            "') threw an exception: " +
            l.message
        );
      }
    },
    rmdir: function(e) {
      var a = FS.lookupPath(e, { parent: true });
      var r = a.node;
      var i = PATH.basename(e);
      var t = FS.lookupNode(r, i);
      var n = FS.mayDelete(r, i, true);
      if (n) {
        throw new FS.ErrnoError(n);
      }
      if (!r.node_ops.rmdir) {
        throw new FS.ErrnoError(ERRNO_CODES.EPERM);
      }
      if (FS.isMountpoint(t)) {
        throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
      }
      try {
        if (FS.trackingDelegate["willDeletePath"]) {
          FS.trackingDelegate["willDeletePath"](e);
        }
      } catch (o) {
        console.log(
          "FS.trackingDelegate['willDeletePath']('" + e + "') threw an exception: " + o.message
        );
      }
      r.node_ops.rmdir(r, i);
      FS.destroyNode(t);
      try {
        if (FS.trackingDelegate["onDeletePath"]) FS.trackingDelegate["onDeletePath"](e);
      } catch (o) {
        console.log(
          "FS.trackingDelegate['onDeletePath']('" + e + "') threw an exception: " + o.message
        );
      }
    },
    readdir: function(r) {
      var i = FS.lookupPath(r, { follow: true });
      var e = i.node;
      if (!e.node_ops.readdir) {
        throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);
      }
      return e.node_ops.readdir(e);
    },
    unlink: function(e) {
      var a = FS.lookupPath(e, { parent: true });
      var r = a.node;
      var t = PATH.basename(e);
      var n = FS.lookupNode(r, t);
      var i = FS.mayDelete(r, t, false);
      if (i) {
        if (i === ERRNO_CODES.EISDIR) i = ERRNO_CODES.EPERM;
        throw new FS.ErrnoError(i);
      }
      if (!r.node_ops.unlink) {
        throw new FS.ErrnoError(ERRNO_CODES.EPERM);
      }
      if (FS.isMountpoint(n)) {
        throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
      }
      try {
        if (FS.trackingDelegate["willDeletePath"]) {
          FS.trackingDelegate["willDeletePath"](e);
        }
      } catch (o) {
        console.log(
          "FS.trackingDelegate['willDeletePath']('" + e + "') threw an exception: " + o.message
        );
      }
      r.node_ops.unlink(r, t);
      FS.destroyNode(n);
      try {
        if (FS.trackingDelegate["onDeletePath"]) FS.trackingDelegate["onDeletePath"](e);
      } catch (o) {
        console.log(
          "FS.trackingDelegate['onDeletePath']('" + e + "') threw an exception: " + o.message
        );
      }
    },
    readlink: function(i) {
      var r = FS.lookupPath(i);
      var e = r.node;
      if (!e) {
        throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
      }
      if (!e.node_ops.readlink) {
        throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
      }
      return PATH.resolve(FS.getPath(r.node.parent), e.node_ops.readlink(e));
    },
    stat: function(r, i) {
      var t = FS.lookupPath(r, { follow: !i });
      var e = t.node;
      if (!e) {
        throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
      }
      if (!e.node_ops.getattr) {
        throw new FS.ErrnoError(ERRNO_CODES.EPERM);
      }
      return e.node_ops.getattr(e);
    },
    lstat: function(e) {
      return FS.stat(e, true);
    },
    chmod: function(r, i, t) {
      var e;
      if (typeof r === "string") {
        var n = FS.lookupPath(r, { follow: !t });
        e = n.node;
      } else {
        e = r;
      }
      if (!e.node_ops.setattr) {
        throw new FS.ErrnoError(ERRNO_CODES.EPERM);
      }
      e.node_ops.setattr(e, { mode: (i & 4095) | (e.mode & ~4095), timestamp: Date.now() });
    },
    lchmod: function(e, r) {
      FS.chmod(e, r, true);
    },
    fchmod: function(r, i) {
      var e = FS.getStream(r);
      if (!e) {
        throw new FS.ErrnoError(ERRNO_CODES.EBADF);
      }
      FS.chmod(e.node, i);
    },
    chown: function(r, n, o, i) {
      var e;
      if (typeof r === "string") {
        var t = FS.lookupPath(r, { follow: !i });
        e = t.node;
      } else {
        e = r;
      }
      if (!e.node_ops.setattr) {
        throw new FS.ErrnoError(ERRNO_CODES.EPERM);
      }
      e.node_ops.setattr(e, { timestamp: Date.now() });
    },
    lchown: function(e, r, i) {
      FS.chown(e, r, i, true);
    },
    fchown: function(r, i, t) {
      var e = FS.getStream(r);
      if (!e) {
        throw new FS.ErrnoError(ERRNO_CODES.EBADF);
      }
      FS.chown(e.node, i, t);
    },
    truncate: function(r, i) {
      if (i < 0) {
        throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
      }
      var e;
      if (typeof r === "string") {
        var n = FS.lookupPath(r, { follow: true });
        e = n.node;
      } else {
        e = r;
      }
      if (!e.node_ops.setattr) {
        throw new FS.ErrnoError(ERRNO_CODES.EPERM);
      }
      if (FS.isDir(e.mode)) {
        throw new FS.ErrnoError(ERRNO_CODES.EISDIR);
      }
      if (!FS.isFile(e.mode)) {
        throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
      }
      var t = FS.nodePermissions(e, "w");
      if (t) {
        throw new FS.ErrnoError(t);
      }
      e.node_ops.setattr(e, { size: i, timestamp: Date.now() });
    },
    ftruncate: function(r, i) {
      var e = FS.getStream(r);
      if (!e) {
        throw new FS.ErrnoError(ERRNO_CODES.EBADF);
      }
      if ((e.flags & 2097155) === 0) {
        throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
      }
      FS.truncate(e.node, i);
    },
    utime: function(r, i, t) {
      var n = FS.lookupPath(r, { follow: true });
      var e = n.node;
      e.node_ops.setattr(e, { timestamp: Math.max(i, t) });
    },
    open: function(r, e, t, u, f) {
      if (r === "") {
        throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
      }
      e = typeof e === "string" ? FS.modeStringToFlags(e) : e;
      t = typeof t === "undefined" ? 438 : t;
      if (e & 64) {
        t = (t & 4095) | 32768;
      } else {
        t = 0;
      }
      var i;
      if (typeof r === "object") {
        i = r;
      } else {
        r = PATH.normalize(r);
        try {
          var c = FS.lookupPath(r, { follow: !(e & 131072) });
          i = c.node;
        } catch (l) {}
      }
      var a = false;
      if (e & 64) {
        if (i) {
          if (e & 128) {
            throw new FS.ErrnoError(ERRNO_CODES.EEXIST);
          }
        } else {
          i = FS.mknod(r, t, 0);
          a = true;
        }
      }
      if (!i) {
        throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
      }
      if (FS.isChrdev(i.mode)) {
        e &= ~512;
      }
      if (!a) {
        var s = FS.mayOpen(i, e);
        if (s) {
          throw new FS.ErrnoError(s);
        }
      }
      if (e & 512) {
        FS.truncate(i, 0);
      }
      e &= ~(128 | 512);
      var n = FS.createStream(
        {
          node: i,
          path: FS.getPath(i),
          flags: e,
          seekable: true,
          position: 0,
          stream_ops: i.stream_ops,
          ungotten: [],
          error: false
        },
        u,
        f
      );
      if (n.stream_ops.open) {
        n.stream_ops.open(n);
      }
      if (Module["logReadFiles"] && !(e & 1)) {
        if (!FS.readFiles) FS.readFiles = {};
        if (!(r in FS.readFiles)) {
          FS.readFiles[r] = 1;
          Module["printErr"]("read file: " + r);
        }
      }
      try {
        if (FS.trackingDelegate["onOpenFile"]) {
          var o = 0;
          if ((e & 2097155) !== 1) {
            o |= FS.tracking.openFlags.READ;
          }
          if ((e & 2097155) !== 0) {
            o |= FS.tracking.openFlags.WRITE;
          }
          FS.trackingDelegate["onOpenFile"](r, o);
        }
      } catch (l) {
        console.log(
          "FS.trackingDelegate['onOpenFile']('" + r + "', flags) threw an exception: " + l.message
        );
      }
      return n;
    },
    close: function(e) {
      try {
        if (e.stream_ops.close) {
          e.stream_ops.close(e);
        }
      } catch (r) {
        throw r;
      } finally {
        FS.closeStream(e.fd);
      }
    },
    llseek: function(e, r, i) {
      if (!e.seekable || !e.stream_ops.llseek) {
        throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
      }
      e.position = e.stream_ops.llseek(e, r, i);
      e.ungotten = [];
      return e.position;
    },
    read: function(e, o, a, i, r) {
      if (i < 0 || r < 0) {
        throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
      }
      if ((e.flags & 2097155) === 1) {
        throw new FS.ErrnoError(ERRNO_CODES.EBADF);
      }
      if (FS.isDir(e.node.mode)) {
        throw new FS.ErrnoError(ERRNO_CODES.EISDIR);
      }
      if (!e.stream_ops.read) {
        throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
      }
      var t = true;
      if (typeof r === "undefined") {
        r = e.position;
        t = false;
      } else if (!e.seekable) {
        throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
      }
      var n = e.stream_ops.read(e, o, a, i, r);
      if (!t) e.position += n;
      return n;
    },
    write: function(e, o, a, i, r, s) {
      if (i < 0 || r < 0) {
        throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
      }
      if ((e.flags & 2097155) === 0) {
        throw new FS.ErrnoError(ERRNO_CODES.EBADF);
      }
      if (FS.isDir(e.node.mode)) {
        throw new FS.ErrnoError(ERRNO_CODES.EISDIR);
      }
      if (!e.stream_ops.write) {
        throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
      }
      if (e.flags & 1024) {
        FS.llseek(e, 0, 2);
      }
      var t = true;
      if (typeof r === "undefined") {
        r = e.position;
        t = false;
      } else if (!e.seekable) {
        throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
      }
      var n = e.stream_ops.write(e, o, a, i, r, s);
      if (!t) e.position += n;
      try {
        if (e.path && FS.trackingDelegate["onWriteToFile"])
          FS.trackingDelegate["onWriteToFile"](e.path);
      } catch (f) {
        console.log(
          "FS.trackingDelegate['onWriteToFile']('" + path + "') threw an exception: " + f.message
        );
      }
      return n;
    },
    allocate: function(e, r, i) {
      if (r < 0 || i <= 0) {
        throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
      }
      if ((e.flags & 2097155) === 0) {
        throw new FS.ErrnoError(ERRNO_CODES.EBADF);
      }
      if (!FS.isFile(e.node.mode) && !FS.isDir(node.mode)) {
        throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
      }
      if (!e.stream_ops.allocate) {
        throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);
      }
      e.stream_ops.allocate(e, r, i);
    },
    mmap: function(e, r, i, t, n, o, a) {
      if ((e.flags & 2097155) === 1) {
        throw new FS.ErrnoError(ERRNO_CODES.EACCES);
      }
      if (!e.stream_ops.mmap) {
        throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
      }
      return e.stream_ops.mmap(e, r, i, t, n, o, a);
    },
    msync: function(e, r, i, t, n) {
      if (!e || !e.stream_ops.msync) {
        return 0;
      }
      return e.stream_ops.msync(e, r, i, t, n);
    },
    munmap: function(e) {
      return 0;
    },
    ioctl: function(e, r, i) {
      if (!e.stream_ops.ioctl) {
        throw new FS.ErrnoError(ERRNO_CODES.ENOTTY);
      }
      return e.stream_ops.ioctl(e, r, i);
    },
    readFile: function(t, e) {
      e = e || {};
      e.flags = e.flags || "r";
      e.encoding = e.encoding || "binary";
      if (e.encoding !== "utf8" && e.encoding !== "binary") {
        throw new Error('Invalid encoding type "' + e.encoding + '"');
      }
      var r;
      var n = FS.open(t, e.flags);
      var a = FS.stat(t);
      var o = a.size;
      var i = new Uint8Array(o);
      FS.read(n, i, 0, o, 0);
      if (e.encoding === "utf8") {
        r = UTF8ArrayToString(i, 0);
      } else if (e.encoding === "binary") {
        r = i;
      }
      FS.close(n);
      return r;
    },
    writeFile: function(n, r, e) {
      e = e || {};
      e.flags = e.flags || "w";
      e.encoding = e.encoding || "utf8";
      if (e.encoding !== "utf8" && e.encoding !== "binary") {
        throw new Error('Invalid encoding type "' + e.encoding + '"');
      }
      var i = FS.open(n, e.flags, e.mode);
      if (e.encoding === "utf8") {
        var t = new Uint8Array(lengthBytesUTF8(r) + 1);
        var o = stringToUTF8Array(r, t, 0, t.length);
        FS.write(i, t, 0, o, 0, e.canOwn);
      } else if (e.encoding === "binary") {
        FS.write(i, r, 0, r.length, 0, e.canOwn);
      }
      FS.close(i);
    },
    cwd: function() {
      return FS.currentPath;
    },
    chdir: function(i) {
      var e = FS.lookupPath(i, { follow: true });
      if (!FS.isDir(e.node.mode)) {
        throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);
      }
      var r = FS.nodePermissions(e.node, "x");
      if (r) {
        throw new FS.ErrnoError(r);
      }
      FS.currentPath = e.path;
    },
    createDefaultDirectories: function() {
      FS.mkdir("/tmp");
      FS.mkdir("/home");
      FS.mkdir("/home/web_user");
    },
    createDefaultDevices: function() {
      FS.mkdir("/dev");
      FS.registerDevice(FS.makedev(1, 3), {
        read: function() {
          return 0;
        },
        write: function(r, i, t, e, n) {
          return e;
        }
      });
      FS.mkdev("/dev/null", FS.makedev(1, 3));
      TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);
      TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);
      FS.mkdev("/dev/tty", FS.makedev(5, 0));
      FS.mkdev("/dev/tty1", FS.makedev(6, 0));
      var e;
      if (typeof crypto !== "undefined") {
        var r = new Uint8Array(1);
        e = function() {
          crypto.getRandomValues(r);
          return r[0];
        };
      } else if (ENVIRONMENT_IS_NODE) {
        e = function() {
          return require("crypto").randomBytes(1)[0];
        };
      } else {
        e = function() {
          return (Math.random() * 256) | 0;
        };
      }
      FS.createDevice("/dev", "random", e);
      FS.createDevice("/dev", "urandom", e);
      FS.mkdir("/dev/shm");
      FS.mkdir("/dev/shm/tmp");
    },
    createStandardStreams: function() {
      if (Module["stdin"]) {
        FS.createDevice("/dev", "stdin", Module["stdin"]);
      } else {
        FS.symlink("/dev/tty", "/dev/stdin");
      }
      if (Module["stdout"]) {
        FS.createDevice("/dev", "stdout", null, Module["stdout"]);
      } else {
        FS.symlink("/dev/tty", "/dev/stdout");
      }
      if (Module["stderr"]) {
        FS.createDevice("/dev", "stderr", null, Module["stderr"]);
      } else {
        FS.symlink("/dev/tty1", "/dev/stderr");
      }
      var e = FS.open("/dev/stdin", "r");
      HEAP32[_stdin >> 2] = FS.getPtrForStream(e);
      assert(e.fd === 0, "invalid handle for stdin (" + e.fd + ")");
      var r = FS.open("/dev/stdout", "w");
      HEAP32[_stdout >> 2] = FS.getPtrForStream(r);
      assert(r.fd === 1, "invalid handle for stdout (" + r.fd + ")");
      var i = FS.open("/dev/stderr", "w");
      HEAP32[_stderr >> 2] = FS.getPtrForStream(i);
      assert(i.fd === 2, "invalid handle for stderr (" + i.fd + ")");
    },
    ensureErrnoError: function() {
      if (FS.ErrnoError) return;
      FS.ErrnoError = function e(e, r) {
        this.node = r;
        this.setErrno = function(e) {
          this.errno = e;
          for (var r in ERRNO_CODES) {
            if (ERRNO_CODES[r] === e) {
              this.code = r;
              break;
            }
          }
        };
        this.setErrno(e);
        this.message = ERRNO_MESSAGES[e];
      };
      FS.ErrnoError.prototype = new Error();
      FS.ErrnoError.prototype.constructor = FS.ErrnoError;
      [ERRNO_CODES.ENOENT].forEach(function(e) {
        FS.genericErrors[e] = new FS.ErrnoError(e);
        FS.genericErrors[e].stack = "<generic error, no stack>";
      });
    },
    staticInit: function() {
      FS.ensureErrnoError();
      FS.nameTable = new Array(4096);
      FS.mount(MEMFS, {}, "/");
      FS.createDefaultDirectories();
      FS.createDefaultDevices();
    },
    init: function(e, r, i) {
      assert(
        !FS.init.initialized,
        "FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"
      );
      FS.init.initialized = true;
      FS.ensureErrnoError();
      Module["stdin"] = e || Module["stdin"];
      Module["stdout"] = r || Module["stdout"];
      Module["stderr"] = i || Module["stderr"];
      FS.createStandardStreams();
    },
    quit: function() {
      FS.init.initialized = false;
      for (var e = 0; e < FS.streams.length; e++) {
        var r = FS.streams[e];
        if (!r) {
          continue;
        }
        FS.close(r);
      }
    },
    getMode: function(r, i) {
      var e = 0;
      if (r) e |= 292 | 73;
      if (i) e |= 146;
      return e;
    },
    joinPath: function(r, i) {
      var e = PATH.join.apply(null, r);
      if (i && e[0] == "/") e = e.substr(1);
      return e;
    },
    absolutePath: function(e, r) {
      return PATH.resolve(r, e);
    },
    standardizePath: function(e) {
      return PATH.normalize(e);
    },
    findObject: function(r, i) {
      var e = FS.analyzePath(r, i);
      if (e.exists) {
        return e.object;
      } else {
        ___setErrNo(e.error);
        return null;
      }
    },
    analyzePath: function(i, t) {
      try {
        var r = FS.lookupPath(i, { follow: !t });
        i = r.path;
      } catch (n) {}
      var e = {
        isRoot: false,
        exists: false,
        error: 0,
        name: null,
        path: null,
        object: null,
        parentExists: false,
        parentPath: null,
        parentObject: null
      };
      try {
        var r = FS.lookupPath(i, { parent: true });
        e.parentExists = true;
        e.parentPath = r.path;
        e.parentObject = r.node;
        e.name = PATH.basename(i);
        r = FS.lookupPath(i, { follow: !t });
        e.exists = true;
        e.path = r.path;
        e.object = r.node;
        e.name = r.node.name;
        e.isRoot = r.path === "/";
      } catch (n) {
        e.error = n.errno;
      }
      return e;
    },
    createFolder: function(e, r, i, t) {
      var n = PATH.join2(typeof e === "string" ? e : FS.getPath(e), r);
      var o = FS.getMode(i, t);
      return FS.mkdir(n, o);
    },
    createPath: function(e, n, o, a) {
      e = typeof e === "string" ? e : FS.getPath(e);
      var i = n.split("/").reverse();
      while (i.length) {
        var t = i.pop();
        if (!t) continue;
        var r = PATH.join2(e, t);
        try {
          FS.mkdir(r);
        } catch (s) {}
        e = r;
      }
      return r;
    },
    createFile: function(e, r, a, i, t) {
      var n = PATH.join2(typeof e === "string" ? e : FS.getPath(e), r);
      var o = FS.getMode(i, t);
      return FS.create(n, o);
    },
    createDataFile: function(r, a, e, u, l, f) {
      var d = a ? PATH.join2(typeof r === "string" ? r : FS.getPath(r), a) : r;
      var n = FS.getMode(u, l);
      var t = FS.create(d, n);
      if (e) {
        if (typeof e === "string") {
          var s = new Array(e.length);
          for (var i = 0, c = e.length; i < c; ++i) s[i] = e.charCodeAt(i);
          e = s;
        }
        FS.chmod(t, n | 146);
        var o = FS.open(t, "w");
        FS.write(o, e, 0, e.length, 0, f);
        FS.close(o);
        FS.chmod(t, n);
      }
      return t;
    },
    createDevice: function(r, n, i, e) {
      var o = PATH.join2(typeof r === "string" ? r : FS.getPath(r), n);
      var a = FS.getMode(!!i, !!e);
      if (!FS.createDevice.major) FS.createDevice.major = 64;
      var t = FS.makedev(FS.createDevice.major++, 0);
      FS.registerDevice(t, {
        open: function(e) {
          e.seekable = false;
        },
        close: function(r) {
          if (e && e.buffer && e.buffer.length) {
            e(10);
          }
        },
        read: function(n, o, a, s, f) {
          var r = 0;
          for (var t = 0; t < s; t++) {
            var e;
            try {
              e = i();
            } catch (l) {
              throw new FS.ErrnoError(ERRNO_CODES.EIO);
            }
            if (e === undefined && r === 0) {
              throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
            }
            if (e === null || e === undefined) break;
            r++;
            o[a + t] = e;
          }
          if (r) {
            n.node.timestamp = Date.now();
          }
          return r;
        },
        write: function(t, n, o, i, a) {
          for (var r = 0; r < i; r++) {
            try {
              e(n[o + r]);
            } catch (s) {
              throw new FS.ErrnoError(ERRNO_CODES.EIO);
            }
          }
          if (i) {
            t.node.timestamp = Date.now();
          }
          return r;
        }
      });
      return FS.mkdev(o, a, t);
    },
    createLink: function(e, r, i, n, o) {
      var t = PATH.join2(typeof e === "string" ? e : FS.getPath(e), r);
      return FS.symlink(i, t);
    },
    forceLoadFile: function(e) {
      if (e.isDevice || e.isFolder || e.link || e.contents) return true;
      var r = true;
      if (typeof XMLHttpRequest !== "undefined") {
        throw new Error(
          "Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."
        );
      } else if (Module["read"]) {
        try {
          e.contents = intArrayFromString(Module["read"](e.url), true);
          e.usedBytes = e.contents.length;
        } catch (i) {
          r = false;
        }
      } else {
        throw new Error("Cannot load without read() or XMLHttpRequest.");
      }
      if (!r) ___setErrNo(ERRNO_CODES.EIO);
      return r;
    },
    createLazyFile: function(a, l, r, s, f) {
      function t() {
        this.lengthKnown = false;
        this.chunks = [];
      }
      t.prototype.get = function c(e) {
        if (e > this.length - 1 || e < 0) {
          return undefined;
        }
        var r = e % this.chunkSize;
        var i = (e / this.chunkSize) | 0;
        return this.getter(i)[r];
      };
      t.prototype.setDataGetter = function d(e) {
        this.getter = e;
      };
      t.prototype.cacheLength = function h() {
        var e = new XMLHttpRequest();
        e.open("HEAD", r, false);
        e.send(null);
        if (!((e.status >= 200 && e.status < 300) || e.status === 304))
          throw new Error("Couldn't load " + r + ". Status: " + e.status);
        var i = Number(e.getResponseHeader("Content-length"));
        var o;
        var a = (o = e.getResponseHeader("Accept-Ranges")) && o === "bytes";
        var t = 1024 * 1024;
        if (!a) t = i;
        var s = function(o, n) {
          if (o > n) throw new Error("invalid range (" + o + ", " + n + ") or no bytes requested!");
          if (n > i - 1) throw new Error("only " + i + " bytes available! programmer error!");
          var e = new XMLHttpRequest();
          e.open("GET", r, false);
          if (i !== t) e.setRequestHeader("Range", "bytes=" + o + "-" + n);
          if (typeof Uint8Array != "undefined") e.responseType = "arraybuffer";
          if (e.overrideMimeType) {
            e.overrideMimeType("text/plain; charset=x-user-defined");
          }
          e.send(null);
          if (!((e.status >= 200 && e.status < 300) || e.status === 304))
            throw new Error("Couldn't load " + r + ". Status: " + e.status);
          if (e.response !== undefined) {
            return new Uint8Array(e.response || []);
          } else {
            return intArrayFromString(e.responseText || "", true);
          }
        };
        var n = this;
        n.setDataGetter(function(e) {
          var o = e * t;
          var r = (e + 1) * t - 1;
          r = Math.min(r, i - 1);
          if (typeof n.chunks[e] === "undefined") {
            n.chunks[e] = s(o, r);
          }
          if (typeof n.chunks[e] === "undefined") throw new Error("doXHR failed!");
          return n.chunks[e];
        });
        this._length = i;
        this._chunkSize = t;
        this.lengthKnown = true;
      };
      if (typeof XMLHttpRequest !== "undefined") {
        if (!ENVIRONMENT_IS_WORKER)
          throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";
        var n = new t();
        Object.defineProperty(n, "length", {
          get: function() {
            if (!this.lengthKnown) {
              this.cacheLength();
            }
            return this._length;
          }
        });
        Object.defineProperty(n, "chunkSize", {
          get: function() {
            if (!this.lengthKnown) {
              this.cacheLength();
            }
            return this._chunkSize;
          }
        });
        var i = { isDevice: false, contents: n };
      } else {
        var i = { isDevice: false, url: r };
      }
      var e = FS.createFile(a, l, i, s, f);
      if (i.contents) {
        e.contents = i.contents;
      } else if (i.url) {
        e.contents = null;
        e.url = i.url;
      }
      Object.defineProperty(e, "usedBytes", {
        get: function() {
          return this.contents.length;
        }
      });
      var o = {};
      var u = Object.keys(e.stream_ops);
      u.forEach(function(r) {
        var i = e.stream_ops[r];
        o[r] = function t() {
          if (!FS.forceLoadFile(e)) {
            throw new FS.ErrnoError(ERRNO_CODES.EIO);
          }
          return i.apply(null, arguments);
        };
      });
      o.read = function m(s, o, a, f, t) {
        if (!FS.forceLoadFile(e)) {
          throw new FS.ErrnoError(ERRNO_CODES.EIO);
        }
        var i = s.node.contents;
        if (t >= i.length) return 0;
        var n = Math.min(i.length - t, f);
        assert(n >= 0);
        if (i.slice) {
          for (var r = 0; r < n; r++) {
            o[a + r] = i[t + r];
          }
        } else {
          for (var r = 0; r < n; r++) {
            o[a + r] = i.get(t + r);
          }
        }
        return n;
      };
      e.stream_ops = o;
      return e;
    },
    createPreloadedFile: function(r, o, i, d, c, a, e, l, u, s) {
      Browser.init();
      var n = o ? PATH.resolve(PATH.join2(r, o)) : r;
      var t = getUniqueRunDependency("cp " + n);
      function f(f) {
        function h(e) {
          if (s) s();
          if (!l) {
            FS.createDataFile(r, o, e, d, c, u);
          }
          if (a) a();
          removeRunDependency(t);
        }
        var i = false;
        Module["preloadPlugins"].forEach(function(r) {
          if (i) return;
          if (r["canHandle"](n)) {
            r["handle"](f, n, h, function() {
              if (e) e();
              removeRunDependency(t);
            });
            i = true;
          }
        });
        if (!i) h(f);
      }
      addRunDependency(t);
      if (typeof i == "string") {
        Browser.asyncLoad(
          i,
          function(e) {
            f(e);
          },
          e
        );
      } else {
        f(i);
      }
    },
    indexedDB: function() {
      return (
        window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB
      );
    },
    DB_NAME: function() {
      return "EM_FS_" + window.location.pathname;
    },
    DB_VERSION: 20,
    DB_STORE_NAME: "FILE_DATA",
    saveFilesToDB: function(t, i, e) {
      i = i || function() {};
      e = e || function() {};
      var n = FS.indexedDB();
      try {
        var r = n.open(FS.DB_NAME(), FS.DB_VERSION);
      } catch (o) {
        return e(o);
      }
      r.onupgradeneeded = function a() {
        console.log("creating db");
        var e = r.result;
        e.createObjectStore(FS.DB_STORE_NAME);
      };
      r.onsuccess = function s() {
        var l = r.result;
        var a = l.transaction([FS.DB_STORE_NAME], "readwrite");
        var u = a.objectStore(FS.DB_STORE_NAME);
        var o = 0,
          n = 0,
          s = t.length;
        function f() {
          if (n == 0) i();
          else e();
        }
        t.forEach(function(e) {
          var r = u.put(FS.analyzePath(e).object.contents, e);
          r.onsuccess = function i() {
            o++;
            if (o + n == s) f();
          };
          r.onerror = function t() {
            n++;
            if (o + n == s) f();
          };
        });
        a.onerror = e;
      };
      r.onerror = e;
    },
    loadFilesFromDB: function(t, i, e) {
      i = i || function() {};
      e = e || function() {};
      var n = FS.indexedDB();
      try {
        var r = n.open(FS.DB_NAME(), FS.DB_VERSION);
      } catch (o) {
        return e(o);
      }
      r.onupgradeneeded = e;
      r.onsuccess = function a() {
        var l = r.result;
        try {
          var a = l.transaction([FS.DB_STORE_NAME], "readonly");
        } catch (u) {
          e(u);
          return;
        }
        var c = a.objectStore(FS.DB_STORE_NAME);
        var o = 0,
          n = 0,
          s = t.length;
        function f() {
          if (n == 0) i();
          else e();
        }
        t.forEach(function(e) {
          var r = c.get(e);
          r.onsuccess = function i() {
            if (FS.analyzePath(e).exists) {
              FS.unlink(e);
            }
            FS.createDataFile(PATH.dirname(e), PATH.basename(e), r.result, true, true, true);
            o++;
            if (o + n == s) f();
          };
          r.onerror = function t() {
            n++;
            if (o + n == s) f();
          };
        });
        a.onerror = e;
      };
      r.onerror = e;
    }
  };
  function _fflush(e) {}
  Module["_strlen"] = _strlen;
  function _GetTitleGain() {
    Module["printErr"]("missing function: GetTitleGain");
    abort(-1);
  }
  Module["_i64Add"] = _i64Add;
  var _fabs = Math_abs;
  var _floor = Math_floor;
  var _sqrt = Math_sqrt;
  function _hip_set_errorf() {
    Module["printErr"]("missing function: hip_set_errorf");
    abort(-1);
  }
  var _llvm_pow_f32 = Math_pow;
  function _emscripten_set_main_loop_timing(e, r) {
    Browser.mainLoop.timingMode = e;
    Browser.mainLoop.timingValue = r;
    if (!Browser.mainLoop.func) {
      return 1;
    }
    if (e == 0) {
      Browser.mainLoop.scheduler = function i() {
        setTimeout(Browser.mainLoop.runner, r);
      };
      Browser.mainLoop.method = "timeout";
    } else if (e == 1) {
      Browser.mainLoop.scheduler = function t() {
        Browser.requestAnimationFrame(Browser.mainLoop.runner);
      };
      Browser.mainLoop.method = "rAF";
    }
    return 0;
  }
  function _emscripten_set_main_loop(e, r, n, i, o) {
    Module["noExitRuntime"] = true;
    assert(
      !Browser.mainLoop.func,
      "emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."
    );
    Browser.mainLoop.func = e;
    Browser.mainLoop.arg = i;
    var t = Browser.mainLoop.currentlyRunningMainloop;
    Browser.mainLoop.runner = function a() {
      if (ABORT) return;
      if (Browser.mainLoop.queue.length > 0) {
        var a = Date.now();
        var r = Browser.mainLoop.queue.shift();
        r.func(r.arg);
        if (Browser.mainLoop.remainingBlockers) {
          var n = Browser.mainLoop.remainingBlockers;
          var o = n % 1 == 0 ? n - 1 : Math.floor(n);
          if (r.counted) {
            Browser.mainLoop.remainingBlockers = o;
          } else {
            o = o + 0.5;
            Browser.mainLoop.remainingBlockers = (8 * n + o) / 9;
          }
        }
        console.log('main loop blocker "' + r.name + '" took ' + (Date.now() - a) + " ms");
        Browser.mainLoop.updateStatus();
        setTimeout(Browser.mainLoop.runner, 0);
        return;
      }
      if (t < Browser.mainLoop.currentlyRunningMainloop) return;
      Browser.mainLoop.currentFrameNumber = (Browser.mainLoop.currentFrameNumber + 1) | 0;
      if (
        Browser.mainLoop.timingMode == 1 &&
        Browser.mainLoop.timingValue > 1 &&
        Browser.mainLoop.currentFrameNumber % Browser.mainLoop.timingValue != 0
      ) {
        Browser.mainLoop.scheduler();
        return;
      }
      if (Browser.mainLoop.method === "timeout" && Module.ctx) {
        Module.printErr(
          "Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"
        );
        Browser.mainLoop.method = "";
      }
      Browser.mainLoop.runIter(function() {
        if (typeof i !== "undefined") {
          Runtime.dynCall("vi", e, [i]);
        } else {
          Runtime.dynCall("v", e);
        }
      });
      if (t < Browser.mainLoop.currentlyRunningMainloop) return;
      if (typeof SDL === "object" && SDL.audio && SDL.audio.queueNewAudioData)
        SDL.audio.queueNewAudioData();
      Browser.mainLoop.scheduler();
    };
    if (!o) {
      if (r && r > 0) _emscripten_set_main_loop_timing(0, 1e3 / r);
      else _emscripten_set_main_loop_timing(1, 1);
      Browser.mainLoop.scheduler();
    }
    if (n) {
      throw "SimulateInfiniteLoop";
    }
  }
  var Browser = {
    mainLoop: {
      scheduler: null,
      method: "",
      currentlyRunningMainloop: 0,
      func: null,
      arg: 0,
      timingMode: 0,
      timingValue: 0,
      currentFrameNumber: 0,
      queue: [],
      pause: function() {
        Browser.mainLoop.scheduler = null;
        Browser.mainLoop.currentlyRunningMainloop++;
      },
      resume: function() {
        Browser.mainLoop.currentlyRunningMainloop++;
        var e = Browser.mainLoop.timingMode;
        var r = Browser.mainLoop.timingValue;
        var i = Browser.mainLoop.func;
        Browser.mainLoop.func = null;
        _emscripten_set_main_loop(i, 0, false, Browser.mainLoop.arg, true);
        _emscripten_set_main_loop_timing(e, r);
        Browser.mainLoop.scheduler();
      },
      updateStatus: function() {
        if (Module["setStatus"]) {
          var i = Module["statusMessage"] || "Please wait...";
          var e = Browser.mainLoop.remainingBlockers;
          var r = Browser.mainLoop.expectedBlockers;
          if (e) {
            if (e < r) {
              Module["setStatus"](i + " (" + (r - e) + "/" + r + ")");
            } else {
              Module["setStatus"](i);
            }
          } else {
            Module["setStatus"]("");
          }
        }
      },
      runIter: function(r) {
        if (ABORT) return;
        if (Module["preMainLoop"]) {
          var i = Module["preMainLoop"]();
          if (i === false) {
            return;
          }
        }
        try {
          r();
        } catch (e) {
          if (e instanceof ExitStatus) {
            return;
          } else {
            if (e && typeof e === "object" && e.stack)
              Module.printErr("exception thrown: " + [e, e.stack]);
            throw e;
          }
        }
        if (Module["postMainLoop"]) Module["postMainLoop"]();
      }
    },
    isFullScreen: false,
    pointerLock: false,
    moduleContextCreatedCallbacks: [],
    workers: [],
    init: function() {
      if (!Module["preloadPlugins"]) Module["preloadPlugins"] = [];
      if (Browser.initted) return;
      Browser.initted = true;
      try {
        new Blob();
        Browser.hasBlobConstructor = true;
      } catch (n) {
        Browser.hasBlobConstructor = false;
        console.log("warning: no blob constructor, cannot create blobs with mimetypes");
      }
      Browser.BlobBuilder =
        typeof MozBlobBuilder != "undefined"
          ? MozBlobBuilder
          : typeof WebKitBlobBuilder != "undefined"
          ? WebKitBlobBuilder
          : !Browser.hasBlobConstructor
          ? console.log("warning: no BlobBuilder")
          : null;
      Browser.URLObject =
        typeof window != "undefined" ? (window.URL ? window.URL : window.webkitURL) : undefined;
      if (!Module.noImageDecoding && typeof Browser.URLObject === "undefined") {
        console.log(
          "warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."
        );
        Module.noImageDecoding = true;
      }
      var i = {};
      i["canHandle"] = function o(e) {
        return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(e);
      };
      i["handle"] = function a(i, t, o, a) {
        var r = null;
        if (Browser.hasBlobConstructor) {
          try {
            r = new Blob([i], { type: Browser.getMimetype(t) });
            if (r.size !== i.length) {
              r = new Blob([new Uint8Array(i).buffer], { type: Browser.getMimetype(t) });
            }
          } catch (f) {
            Runtime.warnOnce(
              "Blob constructor present but fails: " + f + "; falling back to blob builder"
            );
          }
        }
        if (!r) {
          var s = new Browser.BlobBuilder();
          s.append(new Uint8Array(i).buffer);
          r = s.getBlob();
        }
        var n = Browser.URLObject.createObjectURL(r);
        var e = new Image();
        e.onload = function l() {
          assert(e.complete, "Image " + t + " could not be decoded");
          var r = document.createElement("canvas");
          r.width = e.width;
          r.height = e.height;
          var a = r.getContext("2d");
          a.drawImage(e, 0, 0);
          Module["preloadedImages"][t] = r;
          Browser.URLObject.revokeObjectURL(n);
          if (o) o(i);
        };
        e.onerror = function u(e) {
          console.log("Image " + n + " could not be decoded");
          if (a) a();
        };
        e.src = n;
      };
      Module["preloadPlugins"].push(i);
      var t = {};
      t["canHandle"] = function s(e) {
        return !Module.noAudioDecoding && e.substr(-4) in { ".ogg": 1, ".wav": 1, ".mp3": 1 };
      };
      t["handle"] = function f(t, r, a, o) {
        var i = false;
        function n(e) {
          if (i) return;
          i = true;
          Module["preloadedAudios"][r] = e;
          if (a) a(t);
        }
        function s() {
          if (i) return;
          i = true;
          Module["preloadedAudios"][r] = new Audio();
          if (o) o();
        }
        if (Browser.hasBlobConstructor) {
          try {
            var f = new Blob([t], { type: Browser.getMimetype(r) });
          } catch (u) {
            return s();
          }
          var l = Browser.URLObject.createObjectURL(f);
          var e = new Audio();
          e.addEventListener(
            "canplaythrough",
            function() {
              n(e);
            },
            false
          );
          e.onerror = function c(a) {
            if (i) return;
            console.log(
              "warning: browser could not fully decode audio " +
                r +
                ", trying slower base64 approach"
            );
            function o(a) {
              var t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
              var n = "=";
              var e = "";
              var i = 0;
              var r = 0;
              for (var o = 0; o < a.length; o++) {
                i = (i << 8) | a[o];
                r += 8;
                while (r >= 6) {
                  var s = (i >> (r - 6)) & 63;
                  r -= 6;
                  e += t[s];
                }
              }
              if (r == 2) {
                e += t[(i & 3) << 4];
                e += n + n;
              } else if (r == 4) {
                e += t[(i & 15) << 2];
                e += n;
              }
              return e;
            }
            e.src = "data:audio/x-" + r.substr(-3) + ";base64," + o(t);
            n(e);
          };
          e.src = l;
          Browser.safeSetTimeout(function() {
            n(e);
          }, 1e4);
        } else {
          return s();
        }
      };
      Module["preloadPlugins"].push(t);
      var e = Module["canvas"];
      function r() {
        Browser.pointerLock =
          document["pointerLockElement"] === e ||
          document["mozPointerLockElement"] === e ||
          document["webkitPointerLockElement"] === e ||
          document["msPointerLockElement"] === e;
      }
      if (e) {
        e.requestPointerLock =
          e["requestPointerLock"] ||
          e["mozRequestPointerLock"] ||
          e["webkitRequestPointerLock"] ||
          e["msRequestPointerLock"] ||
          function() {};
        e.exitPointerLock =
          document["exitPointerLock"] ||
          document["mozExitPointerLock"] ||
          document["webkitExitPointerLock"] ||
          document["msExitPointerLock"] ||
          function() {};
        e.exitPointerLock = e.exitPointerLock.bind(document);
        document.addEventListener("pointerlockchange", r, false);
        document.addEventListener("mozpointerlockchange", r, false);
        document.addEventListener("webkitpointerlockchange", r, false);
        document.addEventListener("mspointerlockchange", r, false);
        if (Module["elementPointerLock"]) {
          e.addEventListener(
            "click",
            function(r) {
              if (!Browser.pointerLock && e.requestPointerLock) {
                e.requestPointerLock();
                r.preventDefault();
              }
            },
            false
          );
        }
      }
    },
    createContext: function(i, e, s, n) {
      if (e && Module.ctx && i == Module.canvas) return Module.ctx;
      var r;
      var t;
      if (e) {
        var o = { antialias: false, alpha: false };
        if (n) {
          for (var a in n) {
            o[a] = n[a];
          }
        }
        t = GL.createContext(i, o);
        if (t) {
          r = GL.getContext(t).GLctx;
        }
        i.style.backgroundColor = "black";
      } else {
        r = i.getContext("2d");
      }
      if (!r) return null;
      if (s) {
        if (!e)
          assert(
            typeof GLctx === "undefined",
            "cannot set in module if GLctx is used, but we are a non-GL context that would replace it"
          );
        Module.ctx = r;
        if (e) GL.makeContextCurrent(t);
        Module.useWebGL = e;
        Browser.moduleContextCreatedCallbacks.forEach(function(e) {
          e();
        });
        Browser.init();
      }
      return r;
    },
    destroyContext: function(e, r, i) {},
    fullScreenHandlersInstalled: false,
    lockPointer: undefined,
    resizeCanvas: undefined,
    requestFullScreen: function(n, o, t) {
      Browser.lockPointer = n;
      Browser.resizeCanvas = o;
      Browser.vrDevice = t;
      if (typeof Browser.lockPointer === "undefined") Browser.lockPointer = true;
      if (typeof Browser.resizeCanvas === "undefined") Browser.resizeCanvas = false;
      if (typeof Browser.vrDevice === "undefined") Browser.vrDevice = null;
      var e = Module["canvas"];
      function i() {
        Browser.isFullScreen = false;
        var r = e.parentNode;
        if (
          (document["webkitFullScreenElement"] ||
            document["webkitFullscreenElement"] ||
            document["mozFullScreenElement"] ||
            document["mozFullscreenElement"] ||
            document["fullScreenElement"] ||
            document["fullscreenElement"] ||
            document["msFullScreenElement"] ||
            document["msFullscreenElement"] ||
            document["webkitCurrentFullScreenElement"]) === r
        ) {
          e.cancelFullScreen =
            document["cancelFullScreen"] ||
            document["mozCancelFullScreen"] ||
            document["webkitCancelFullScreen"] ||
            document["msExitFullscreen"] ||
            document["exitFullscreen"] ||
            function() {};
          e.cancelFullScreen = e.cancelFullScreen.bind(document);
          if (Browser.lockPointer) e.requestPointerLock();
          Browser.isFullScreen = true;
          if (Browser.resizeCanvas) Browser.setFullScreenCanvasSize();
        } else {
          r.parentNode.insertBefore(e, r);
          r.parentNode.removeChild(r);
          if (Browser.resizeCanvas) Browser.setWindowedCanvasSize();
        }
        if (Module["onFullScreen"]) Module["onFullScreen"](Browser.isFullScreen);
        Browser.updateCanvasDimensions(e);
      }
      if (!Browser.fullScreenHandlersInstalled) {
        Browser.fullScreenHandlersInstalled = true;
        document.addEventListener("fullscreenchange", i, false);
        document.addEventListener("mozfullscreenchange", i, false);
        document.addEventListener("webkitfullscreenchange", i, false);
        document.addEventListener("MSFullscreenChange", i, false);
      }
      var r = document.createElement("div");
      e.parentNode.insertBefore(r, e);
      r.appendChild(e);
      r.requestFullScreen =
        r["requestFullScreen"] ||
        r["mozRequestFullScreen"] ||
        r["msRequestFullscreen"] ||
        (r["webkitRequestFullScreen"]
          ? function() {
              r["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]);
            }
          : null);
      if (t) {
        r.requestFullScreen({ vrDisplay: t });
      } else {
        r.requestFullScreen();
      }
    },
    nextRAF: 0,
    fakeRequestAnimationFrame: function(r) {
      var e = Date.now();
      if (Browser.nextRAF === 0) {
        Browser.nextRAF = e + 1e3 / 60;
      } else {
        while (e + 2 >= Browser.nextRAF) {
          Browser.nextRAF += 1e3 / 60;
        }
      }
      var i = Math.max(Browser.nextRAF - e, 0);
      setTimeout(r, i);
    },
    requestAnimationFrame: function d(e) {
      if (typeof window === "undefined") {
        Browser.fakeRequestAnimationFrame(e);
      } else {
        if (!window.requestAnimationFrame) {
          window.requestAnimationFrame =
            window["requestAnimationFrame"] ||
            window["mozRequestAnimationFrame"] ||
            window["webkitRequestAnimationFrame"] ||
            window["msRequestAnimationFrame"] ||
            window["oRequestAnimationFrame"] ||
            Browser.fakeRequestAnimationFrame;
        }
        window.requestAnimationFrame(e);
      }
    },
    safeCallback: function(e) {
      return function() {
        if (!ABORT) return e.apply(null, arguments);
      };
    },
    allowAsyncCallbacks: true,
    queuedAsyncCallbacks: [],
    pauseAsyncCallbacks: function() {
      Browser.allowAsyncCallbacks = false;
    },
    resumeAsyncCallbacks: function() {
      Browser.allowAsyncCallbacks = true;
      if (Browser.queuedAsyncCallbacks.length > 0) {
        var e = Browser.queuedAsyncCallbacks;
        Browser.queuedAsyncCallbacks = [];
        e.forEach(function(e) {
          e();
        });
      }
    },
    safeRequestAnimationFrame: function(e) {
      return Browser.requestAnimationFrame(function() {
        if (ABORT) return;
        if (Browser.allowAsyncCallbacks) {
          e();
        } else {
          Browser.queuedAsyncCallbacks.push(e);
        }
      });
    },
    safeSetTimeout: function(e, r) {
      Module["noExitRuntime"] = true;
      return setTimeout(function() {
        if (ABORT) return;
        if (Browser.allowAsyncCallbacks) {
          e();
        } else {
          Browser.queuedAsyncCallbacks.push(e);
        }
      }, r);
    },
    safeSetInterval: function(e, r) {
      Module["noExitRuntime"] = true;
      return setInterval(function() {
        if (ABORT) return;
        if (Browser.allowAsyncCallbacks) {
          e();
        }
      }, r);
    },
    getMimetype: function(e) {
      return {
        jpg: "image/jpeg",
        jpeg: "image/jpeg",
        png: "image/png",
        bmp: "image/bmp",
        ogg: "audio/ogg",
        wav: "audio/wav",
        mp3: "audio/mpeg"
      }[e.substr(e.lastIndexOf(".") + 1)];
    },
    getUserMedia: function(e) {
      if (!window.getUserMedia) {
        window.getUserMedia = navigator["getUserMedia"] || navigator["mozGetUserMedia"];
      }
      window.getUserMedia(e);
    },
    getMovementX: function(e) {
      return e["movementX"] || e["mozMovementX"] || e["webkitMovementX"] || 0;
    },
    getMovementY: function(e) {
      return e["movementY"] || e["mozMovementY"] || e["webkitMovementY"] || 0;
    },
    getMouseWheelDelta: function(e) {
      var r = 0;
      switch (e.type) {
        case "DOMMouseScroll":
          r = e.detail;
          break;
        case "mousewheel":
          r = e.wheelDelta;
          break;
        case "wheel":
          r = e["deltaY"];
          break;
        default:
          throw "unrecognized mouse wheel event: " + e.type;
      }
      return r;
    },
    mouseX: 0,
    mouseY: 0,
    mouseMovementX: 0,
    mouseMovementY: 0,
    touches: {},
    lastTouches: {},
    calculateMouseEvent: function(e) {
      if (Browser.pointerLock) {
        if (e.type != "mousemove" && "mozMovementX" in e) {
          Browser.mouseMovementX = Browser.mouseMovementY = 0;
        } else {
          Browser.mouseMovementX = Browser.getMovementX(e);
          Browser.mouseMovementY = Browser.getMovementY(e);
        }
        if (typeof SDL != "undefined") {
          Browser.mouseX = SDL.mouseX + Browser.mouseMovementX;
          Browser.mouseY = SDL.mouseY + Browser.mouseMovementY;
        } else {
          Browser.mouseX += Browser.mouseMovementX;
          Browser.mouseY += Browser.mouseMovementY;
        }
      } else {
        var i = Module["canvas"].getBoundingClientRect();
        var d = Module["canvas"].width;
        var l = Module["canvas"].height;
        var u = typeof window.scrollX !== "undefined" ? window.scrollX : window.pageXOffset;
        var c = typeof window.scrollY !== "undefined" ? window.scrollY : window.pageYOffset;
        if (e.type === "touchstart" || e.type === "touchend" || e.type === "touchmove") {
          var r = e.touch;
          if (r === undefined) {
            return;
          }
          var a = r.pageX - (u + i.left);
          var s = r.pageY - (c + i.top);
          a = a * (d / i.width);
          s = s * (l / i.height);
          var t = { x: a, y: s };
          if (e.type === "touchstart") {
            Browser.lastTouches[r.identifier] = t;
            Browser.touches[r.identifier] = t;
          } else if (e.type === "touchend" || e.type === "touchmove") {
            var f = Browser.touches[r.identifier];
            if (!f) f = t;
            Browser.lastTouches[r.identifier] = f;
            Browser.touches[r.identifier] = t;
          }
          return;
        }
        var n = e.pageX - (u + i.left);
        var o = e.pageY - (c + i.top);
        n = n * (d / i.width);
        o = o * (l / i.height);
        Browser.mouseMovementX = n - Browser.mouseX;
        Browser.mouseMovementY = o - Browser.mouseY;
        Browser.mouseX = n;
        Browser.mouseY = o;
      }
    },
    xhrLoad: function(i, t, r) {
      var e = new XMLHttpRequest();
      e.open("GET", i, true);
      e.responseType = "arraybuffer";
      e.onload = function n() {
        if (e.status == 200 || (e.status == 0 && e.response)) {
          t(e.response);
        } else {
          r();
        }
      };
      e.onerror = r;
      e.send(null);
    },
    asyncLoad: function(e, t, r, i) {
      Browser.xhrLoad(
        e,
        function(r) {
          assert(r, 'Loading data file "' + e + '" failed (no arrayBuffer).');
          t(new Uint8Array(r));
          if (!i) removeRunDependency("al " + e);
        },
        function(i) {
          if (r) {
            r();
          } else {
            throw 'Loading data file "' + e + '" failed.';
          }
        }
      );
      if (!i) addRunDependency("al " + e);
    },
    resizeListeners: [],
    updateResizeListeners: function() {
      var e = Module["canvas"];
      Browser.resizeListeners.forEach(function(r) {
        r(e.width, e.height);
      });
    },
    setCanvasSize: function(e, r, i) {
      var t = Module["canvas"];
      Browser.updateCanvasDimensions(t, e, r);
      if (!i) Browser.updateResizeListeners();
    },
    windowedWidth: 0,
    windowedHeight: 0,
    setFullScreenCanvasSize: function() {
      if (typeof SDL != "undefined") {
        var e = HEAPU32[(SDL.screen + Runtime.QUANTUM_SIZE * 0) >> 2];
        e = e | 8388608;
        HEAP32[(SDL.screen + Runtime.QUANTUM_SIZE * 0) >> 2] = e;
      }
      Browser.updateResizeListeners();
    },
    setWindowedCanvasSize: function() {
      if (typeof SDL != "undefined") {
        var e = HEAPU32[(SDL.screen + Runtime.QUANTUM_SIZE * 0) >> 2];
        e = e & ~8388608;
        HEAP32[(SDL.screen + Runtime.QUANTUM_SIZE * 0) >> 2] = e;
      }
      Browser.updateResizeListeners();
    },
    updateCanvasDimensions: function(e, t, n) {
      if (t && n) {
        e.widthNative = t;
        e.heightNative = n;
      } else {
        t = e.widthNative;
        n = e.heightNative;
      }
      var r = t;
      var i = n;
      if (Module["forcedAspectRatio"] && Module["forcedAspectRatio"] > 0) {
        if (r / i < Module["forcedAspectRatio"]) {
          r = Math.round(i * Module["forcedAspectRatio"]);
        } else {
          i = Math.round(r / Module["forcedAspectRatio"]);
        }
      }
      if (
        (document["webkitFullScreenElement"] ||
          document["webkitFullscreenElement"] ||
          document["mozFullScreenElement"] ||
          document["mozFullscreenElement"] ||
          document["fullScreenElement"] ||
          document["fullscreenElement"] ||
          document["msFullScreenElement"] ||
          document["msFullscreenElement"] ||
          document["webkitCurrentFullScreenElement"]) === e.parentNode &&
        typeof screen != "undefined"
      ) {
        var o = Math.min(screen.width / r, screen.height / i);
        r = Math.round(r * o);
        i = Math.round(i * o);
      }
      if (Browser.resizeCanvas) {
        if (e.width != r) e.width = r;
        if (e.height != i) e.height = i;
        if (typeof e.style != "undefined") {
          e.style.removeProperty("width");
          e.style.removeProperty("height");
        }
      } else {
        if (e.width != t) e.width = t;
        if (e.height != n) e.height = n;
        if (typeof e.style != "undefined") {
          if (r != t || i != n) {
            e.style.setProperty("width", r + "px", "important");
            e.style.setProperty("height", i + "px", "important");
          } else {
            e.style.removeProperty("width");
            e.style.removeProperty("height");
          }
        }
      }
    },
    wgetRequests: {},
    nextWgetRequestHandle: 0,
    getNextWgetRequestHandle: function() {
      var e = Browser.nextWgetRequestHandle;
      Browser.nextWgetRequestHandle++;
      return e;
    }
  };
  var _llvm_sqrt_f64 = Math_sqrt;
  function __exit(e) {
    Module["exit"](e);
  }
  function _exit(e) {
    __exit(e);
  }
  function _hip_decode_init() {
    Module["printErr"]("missing function: hip_decode_init");
    abort(-1);
  }
  function _hip_set_msgf() {
    Module["printErr"]("missing function: hip_set_msgf");
    abort(-1);
  }
  var _sin = Math_sin;
  function _sysconf(e) {
    switch (e) {
      case 30:
        return PAGE_SIZE;
      case 85:
        return totalMemory / PAGE_SIZE;
      case 132:
      case 133:
      case 12:
      case 137:
      case 138:
      case 15:
      case 235:
      case 16:
      case 17:
      case 18:
      case 19:
      case 20:
      case 149:
      case 13:
      case 10:
      case 236:
      case 153:
      case 9:
      case 21:
      case 22:
      case 159:
      case 154:
      case 14:
      case 77:
      case 78:
      case 139:
      case 80:
      case 81:
      case 82:
      case 68:
      case 67:
      case 164:
      case 11:
      case 29:
      case 47:
      case 48:
      case 95:
      case 52:
      case 51:
      case 46:
        return 200809;
      case 79:
        return 0;
      case 27:
      case 246:
      case 127:
      case 128:
      case 23:
      case 24:
      case 160:
      case 161:
      case 181:
      case 182:
      case 242:
      case 183:
      case 184:
      case 243:
      case 244:
      case 245:
      case 165:
      case 178:
      case 179:
      case 49:
      case 50:
      case 168:
      case 169:
      case 175:
      case 170:
      case 171:
      case 172:
      case 97:
      case 76:
      case 32:
      case 173:
      case 35:
        return -1;
      case 176:
      case 177:
      case 7:
      case 155:
      case 8:
      case 157:
      case 125:
      case 126:
      case 92:
      case 93:
      case 129:
      case 130:
      case 131:
      case 94:
      case 91:
        return 1;
      case 74:
      case 60:
      case 69:
      case 70:
      case 4:
        return 1024;
      case 31:
      case 42:
      case 72:
        return 32;
      case 87:
      case 26:
      case 33:
        return 2147483647;
      case 34:
      case 1:
        return 47839;
      case 38:
      case 36:
        return 99;
      case 43:
      case 37:
        return 2048;
      case 0:
        return 2097152;
      case 3:
        return 65536;
      case 28:
        return 32768;
      case 44:
        return 32767;
      case 75:
        return 16384;
      case 39:
        return 1e3;
      case 89:
        return 700;
      case 71:
        return 256;
      case 40:
        return 255;
      case 2:
        return 100;
      case 180:
        return 64;
      case 25:
        return 20;
      case 5:
        return 16;
      case 6:
        return 6;
      case 73:
        return 4;
      case 84: {
        if (typeof navigator === "object") return navigator["hardwareConcurrency"] || 1;
        return 1;
      }
    }
    ___setErrNo(ERRNO_CODES.EINVAL);
    return -1;
  }
  Module["_bitshift64Lshr"] = _bitshift64Lshr;
  function _hip_decode_exit() {
    Module["printErr"]("missing function: hip_decode_exit");
    abort(-1);
  }
  var _atan = Math_atan;
  var _BDtoIHigh = true;
  var _ceil = Math_ceil;
  function _mkport() {
    throw "TODO";
  }
  var SOCKFS = {
    mount: function(e) {
      Module["websocket"] =
        Module["websocket"] && "object" === typeof Module["websocket"] ? Module["websocket"] : {};
      Module["websocket"]._callbacks = {};
      Module["websocket"]["on"] = function(r, e) {
        if ("function" === typeof e) {
          this._callbacks[r] = e;
        }
        return this;
      };
      Module["websocket"].emit = function(e, r) {
        if ("function" === typeof this._callbacks[e]) {
          this._callbacks[e].call(this, r);
        }
      };
      return FS.createNode(null, "/", 16384 | 511, 0);
    },
    createSocket: function(o, i, e) {
      var a = i == 1;
      if (e) {
        assert(a == (e == 6));
      }
      var r = {
        family: o,
        type: i,
        protocol: e,
        server: null,
        error: null,
        peers: {},
        pending: [],
        recv_queue: [],
        sock_ops: SOCKFS.websocket_sock_ops
      };
      var t = SOCKFS.nextname();
      var n = FS.createNode(SOCKFS.root, t, 49152, 0);
      n.sock = r;
      var s = FS.createStream({
        path: t,
        node: n,
        flags: FS.modeStringToFlags("r+"),
        seekable: false,
        stream_ops: SOCKFS.stream_ops
      });
      r.stream = s;
      return r;
    },
    getSocket: function(r) {
      var e = FS.getStream(r);
      if (!e || !FS.isSocket(e.node.mode)) {
        return null;
      }
      return e.node.sock;
    },
    stream_ops: {
      poll: function(r) {
        var e = r.node.sock;
        return e.sock_ops.poll(e);
      },
      ioctl: function(r, i, t) {
        var e = r.node.sock;
        return e.sock_ops.ioctl(e, i, t);
      },
      read: function(i, t, n, o, a) {
        var r = i.node.sock;
        var e = r.sock_ops.recvmsg(r, o);
        if (!e) {
          return 0;
        }
        t.set(e.buffer, n);
        return e.buffer.length;
      },
      write: function(r, i, t, n, o) {
        var e = r.node.sock;
        return e.sock_ops.sendmsg(e, i, t, n);
      },
      close: function(r) {
        var e = r.node.sock;
        e.sock_ops.close(e);
      }
    },
    nextname: function() {
      if (!SOCKFS.nextname.current) {
        SOCKFS.nextname.current = 0;
      }
      return "socket[" + SOCKFS.nextname.current++ + "]";
    },
    websocket_sock_ops: {
      createPeer: function(t, r, n) {
        var e;
        if (typeof r === "object") {
          e = r;
          r = null;
          n = null;
        }
        if (e) {
          if (e._socket) {
            r = e._socket.remoteAddress;
            n = e._socket.remotePort;
          } else {
            var s = /ws[s]?:\/\/([^:]+):(\d+)/.exec(e.url);
            if (!s) {
              throw new Error("WebSocket URL must be in the format ws(s)://address:port");
            }
            r = s[1];
            n = parseInt(s[2], 10);
          }
        } else {
          try {
            var f = Module["websocket"] && "object" === typeof Module["websocket"];
            var i = "ws:#".replace("#", "//");
            if (f) {
              if ("string" === typeof Module["websocket"]["url"]) {
                i = Module["websocket"]["url"];
              }
            }
            if (i === "ws://" || i === "wss://") {
              var l = r.split("/");
              i = i + l[0] + ":" + n + "/" + l.slice(1).join("/");
            }
            var o = "binary";
            if (f) {
              if ("string" === typeof Module["websocket"]["subprotocol"]) {
                o = Module["websocket"]["subprotocol"];
              }
            }
            o = o.replace(/^ +| +$/g, "").split(/ *, */);
            var u = ENVIRONMENT_IS_NODE ? { protocol: o.toString() } : o;
            var c = ENVIRONMENT_IS_NODE ? require("ws") : window["WebSocket"];
            e = new c(i, u);
            e.binaryType = "arraybuffer";
          } catch (d) {
            throw new FS.ErrnoError(ERRNO_CODES.EHOSTUNREACH);
          }
        }
        var a = { addr: r, port: n, socket: e, dgram_send_queue: [] };
        SOCKFS.websocket_sock_ops.addPeer(t, a);
        SOCKFS.websocket_sock_ops.handlePeerEvents(t, a);
        if (t.type === 2 && typeof t.sport !== "undefined") {
          a.dgram_send_queue.push(
            new Uint8Array([
              255,
              255,
              255,
              255,
              "p".charCodeAt(0),
              "o".charCodeAt(0),
              "r".charCodeAt(0),
              "t".charCodeAt(0),
              (t.sport & 65280) >> 8,
              t.sport & 255
            ])
          );
        }
        return a;
      },
      getPeer: function(e, r, i) {
        return e.peers[r + ":" + i];
      },
      addPeer: function(r, e) {
        r.peers[e.addr + ":" + e.port] = e;
      },
      removePeer: function(r, e) {
        delete r.peers[e.addr + ":" + e.port];
      },
      handlePeerEvents: function(r, e) {
        var i = true;
        var t = function() {
          Module["websocket"].emit("open", r.stream.fd);
          try {
            var i = e.dgram_send_queue.shift();
            while (i) {
              e.socket.send(i);
              i = e.dgram_send_queue.shift();
            }
          } catch (t) {
            e.socket.close();
          }
        };
        function n(t) {
          assert(typeof t !== "string" && t.byteLength !== undefined);
          t = new Uint8Array(t);
          var n = i;
          i = false;
          if (
            n &&
            t.length === 10 &&
            t[0] === 255 &&
            t[1] === 255 &&
            t[2] === 255 &&
            t[3] === 255 &&
            t[4] === "p".charCodeAt(0) &&
            t[5] === "o".charCodeAt(0) &&
            t[6] === "r".charCodeAt(0) &&
            t[7] === "t".charCodeAt(0)
          ) {
            var o = (t[8] << 8) | t[9];
            SOCKFS.websocket_sock_ops.removePeer(r, e);
            e.port = o;
            SOCKFS.websocket_sock_ops.addPeer(r, e);
            return;
          }
          r.recv_queue.push({ addr: e.addr, port: e.port, data: t });
          Module["websocket"].emit("message", r.stream.fd);
        }
        if (ENVIRONMENT_IS_NODE) {
          e.socket.on("open", t);
          e.socket.on("message", function(e, r) {
            if (!r.binary) {
              return;
            }
            n(new Uint8Array(e).buffer);
          });
          e.socket.on("close", function() {
            Module["websocket"].emit("close", r.stream.fd);
          });
          e.socket.on("error", function(e) {
            r.error = ERRNO_CODES.ECONNREFUSED;
            Module["websocket"].emit("error", [
              r.stream.fd,
              r.error,
              "ECONNREFUSED: Connection refused"
            ]);
          });
        } else {
          e.socket.onopen = t;
          e.socket.onclose = function() {
            Module["websocket"].emit("close", r.stream.fd);
          };
          e.socket.onmessage = function o(e) {
            n(e.data);
          };
          e.socket.onerror = function(e) {
            r.error = ERRNO_CODES.ECONNREFUSED;
            Module["websocket"].emit("error", [
              r.stream.fd,
              r.error,
              "ECONNREFUSED: Connection refused"
            ]);
          };
        }
      },
      poll: function(r) {
        if (r.type === 1 && r.server) {
          return r.pending.length ? 64 | 1 : 0;
        }
        var i = 0;
        var e = r.type === 1 ? SOCKFS.websocket_sock_ops.getPeer(r, r.daddr, r.dport) : null;
        if (
          r.recv_queue.length ||
          !e ||
          (e && e.socket.readyState === e.socket.CLOSING) ||
          (e && e.socket.readyState === e.socket.CLOSED)
        ) {
          i |= 64 | 1;
        }
        if (!e || (e && e.socket.readyState === e.socket.OPEN)) {
          i |= 4;
        }
        if (
          (e && e.socket.readyState === e.socket.CLOSING) ||
          (e && e.socket.readyState === e.socket.CLOSED)
        ) {
          i |= 16;
        }
        return i;
      },
      ioctl: function(e, i, t) {
        switch (i) {
          case 21531:
            var r = 0;
            if (e.recv_queue.length) {
              r = e.recv_queue[0].data.length;
            }
            HEAP32[t >> 2] = r;
            return 0;
          default:
            return ERRNO_CODES.EINVAL;
        }
      },
      close: function(e) {
        if (e.server) {
          try {
            e.server.close();
          } catch (n) {}
          e.server = null;
        }
        var i = Object.keys(e.peers);
        for (var r = 0; r < i.length; r++) {
          var t = e.peers[i[r]];
          try {
            t.socket.close();
          } catch (n) {}
          SOCKFS.websocket_sock_ops.removePeer(e, t);
        }
        return 0;
      },
      bind: function(e, i, t) {
        if (typeof e.saddr !== "undefined" || typeof e.sport !== "undefined") {
          throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
        }
        e.saddr = i;
        e.sport = t || _mkport();
        if (e.type === 2) {
          if (e.server) {
            e.server.close();
            e.server = null;
          }
          try {
            e.sock_ops.listen(e, 0);
          } catch (r) {
            if (!(r instanceof FS.ErrnoError)) throw r;
            if (r.errno !== ERRNO_CODES.EOPNOTSUPP) throw r;
          }
        }
      },
      connect: function(e, t, n) {
        if (e.server) {
          throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);
        }
        if (typeof e.daddr !== "undefined" && typeof e.dport !== "undefined") {
          var r = SOCKFS.websocket_sock_ops.getPeer(e, e.daddr, e.dport);
          if (r) {
            if (r.socket.readyState === r.socket.CONNECTING) {
              throw new FS.ErrnoError(ERRNO_CODES.EALREADY);
            } else {
              throw new FS.ErrnoError(ERRNO_CODES.EISCONN);
            }
          }
        }
        var i = SOCKFS.websocket_sock_ops.createPeer(e, t, n);
        e.daddr = i.addr;
        e.dport = i.port;
        throw new FS.ErrnoError(ERRNO_CODES.EINPROGRESS);
      },
      listen: function(e, t) {
        if (!ENVIRONMENT_IS_NODE) {
          throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);
        }
        if (e.server) {
          throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
        }
        var r = require("ws").Server;
        var i = e.saddr;
        e.server = new r({ host: i, port: e.sport });
        Module["websocket"].emit("listen", e.stream.fd);
        e.server.on("connection", function(i) {
          if (e.type === 1) {
            var r = SOCKFS.createSocket(e.family, e.type, e.protocol);
            var t = SOCKFS.websocket_sock_ops.createPeer(r, i);
            r.daddr = t.addr;
            r.dport = t.port;
            e.pending.push(r);
            Module["websocket"].emit("connection", r.stream.fd);
          } else {
            SOCKFS.websocket_sock_ops.createPeer(e, i);
            Module["websocket"].emit("connection", e.stream.fd);
          }
        });
        e.server.on("closed", function() {
          Module["websocket"].emit("close", e.stream.fd);
          e.server = null;
        });
        e.server.on("error", function(r) {
          e.error = ERRNO_CODES.EHOSTUNREACH;
          Module["websocket"].emit("error", [
            e.stream.fd,
            e.error,
            "EHOSTUNREACH: Host is unreachable"
          ]);
        });
      },
      accept: function(e) {
        if (!e.server) {
          throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
        }
        var r = e.pending.shift();
        r.stream.flags = e.stream.flags;
        return r;
      },
      getname: function(e, t) {
        var r, i;
        if (t) {
          if (e.daddr === undefined || e.dport === undefined) {
            throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
          }
          r = e.daddr;
          i = e.dport;
        } else {
          r = e.saddr || 0;
          i = e.sport || 0;
        }
        return { addr: r, port: i };
      },
      sendmsg: function(r, i, o, a, t, n) {
        if (r.type === 2) {
          if (t === undefined || n === undefined) {
            t = r.daddr;
            n = r.dport;
          }
          if (t === undefined || n === undefined) {
            throw new FS.ErrnoError(ERRNO_CODES.EDESTADDRREQ);
          }
        } else {
          t = r.daddr;
          n = r.dport;
        }
        var e = SOCKFS.websocket_sock_ops.getPeer(r, t, n);
        if (r.type === 1) {
          if (
            !e ||
            e.socket.readyState === e.socket.CLOSING ||
            e.socket.readyState === e.socket.CLOSED
          ) {
            throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
          } else if (e.socket.readyState === e.socket.CONNECTING) {
            throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
          }
        }
        var s;
        if (i instanceof Array || i instanceof ArrayBuffer) {
          s = i.slice(o, o + a);
        } else {
          s = i.buffer.slice(i.byteOffset + o, i.byteOffset + o + a);
        }
        if (r.type === 2) {
          if (!e || e.socket.readyState !== e.socket.OPEN) {
            if (
              !e ||
              e.socket.readyState === e.socket.CLOSING ||
              e.socket.readyState === e.socket.CLOSED
            ) {
              e = SOCKFS.websocket_sock_ops.createPeer(r, t, n);
            }
            e.dgram_send_queue.push(s);
            return a;
          }
        }
        try {
          e.socket.send(s);
          return a;
        } catch (f) {
          throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
        }
      },
      recvmsg: function(r, s) {
        if (r.type === 1 && r.server) {
          throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
        }
        var e = r.recv_queue.shift();
        if (!e) {
          if (r.type === 1) {
            var i = SOCKFS.websocket_sock_ops.getPeer(r, r.daddr, r.dport);
            if (!i) {
              throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
            } else if (
              i.socket.readyState === i.socket.CLOSING ||
              i.socket.readyState === i.socket.CLOSED
            ) {
              return null;
            } else {
              throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
            }
          } else {
            throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
          }
        }
        var n = e.data.byteLength || e.data.length;
        var o = e.data.byteOffset || 0;
        var a = e.data.buffer || e.data;
        var t = Math.min(s, n);
        var f = { buffer: new Uint8Array(a, o, t), addr: e.addr, port: e.port };
        if (r.type === 1 && t < n) {
          var l = n - t;
          e.data = new Uint8Array(a, o + t, l);
          r.recv_queue.unshift(e);
        }
        return f;
      }
    }
  };
  function _send(e, r, i, n) {
    var t = SOCKFS.getSocket(e);
    if (!t) {
      ___setErrNo(ERRNO_CODES.EBADF);
      return -1;
    }
    return _write(e, r, i);
  }
  function _pwrite(r, i, t, n) {
    var e = FS.getStream(r);
    if (!e) {
      ___setErrNo(ERRNO_CODES.EBADF);
      return -1;
    }
    try {
      var o = HEAP8;
      return FS.write(e, o, i, t, n);
    } catch (a) {
      FS.handleFSError(a);
      return -1;
    }
  }
  function _write(r, i, t) {
    var e = FS.getStream(r);
    if (!e) {
      ___setErrNo(ERRNO_CODES.EBADF);
      return -1;
    }
    try {
      var n = HEAP8;
      return FS.write(e, n, i, t);
    } catch (o) {
      FS.handleFSError(o);
      return -1;
    }
  }
  function _fileno(e) {
    e = FS.getStreamFromPtr(e);
    if (!e) return -1;
    return e.fd;
  }
  function _fwrite(o, e, a, r) {
    var i = a * e;
    if (i == 0) return 0;
    var s = _fileno(r);
    var t = _write(s, o, i);
    if (t == -1) {
      var n = FS.getStreamFromPtr(r);
      if (n) n.error = true;
      return 0;
    } else {
      return (t / e) | 0;
    }
  }
  function __reallyNegative(e) {
    return e < 0 || (e === 0 && 1 / e === -Infinity);
  }
  function __formatString(C, p) {
    assert((p & 3) === 0);
    var t = C;
    var l = 0;
    function c(e) {
      var r;
      l = Runtime.prepVararg(l, e);
      if (e === "double") {
        r =
          ((HEAP32[tempDoublePtr >> 2] = HEAP32[(p + l) >> 2]),
          (HEAP32[(tempDoublePtr + 4) >> 2] = HEAP32[(p + (l + 4)) >> 2]),
          +HEAPF64[tempDoublePtr >> 3]);
        l += 8;
      } else if (e == "i64") {
        r = [HEAP32[(p + l) >> 2], HEAP32[(p + (l + 4)) >> 2]];
        l += 8;
      } else {
        assert((l & 3) === 0);
        e = "i32";
        r = HEAP32[(p + l) >> 2];
        l += 4;
      }
      return r;
    }
    var a = [];
    var S, r, i;
    while (1) {
      var L = t;
      S = HEAP8[t >> 0];
      if (S === 0) break;
      r = HEAP8[(t + 1) >> 0];
      if (S == 37) {
        var M = false;
        var w = false;
        var v = false;
        var m = false;
        var F = false;
        e: while (1) {
          switch (r) {
            case 43:
              M = true;
              break;
            case 45:
              w = true;
              break;
            case 35:
              v = true;
              break;
            case 48:
              if (m) {
                break e;
              } else {
                m = true;
                break;
              }
            case 32:
              F = true;
              break;
            default:
              break e;
          }
          t++;
          r = HEAP8[(t + 1) >> 0];
        }
        var d = 0;
        if (r == 42) {
          d = c("i32");
          t++;
          r = HEAP8[(t + 1) >> 0];
        } else {
          while (r >= 48 && r <= 57) {
            d = d * 10 + (r - 48);
            t++;
            r = HEAP8[(t + 1) >> 0];
          }
        }
        var y = false,
          o = -1;
        if (r == 46) {
          o = 0;
          y = true;
          t++;
          r = HEAP8[(t + 1) >> 0];
          if (r == 42) {
            o = c("i32");
            t++;
          } else {
            while (1) {
              var O = HEAP8[(t + 1) >> 0];
              if (O < 48 || O > 57) break;
              o = o * 10 + (O - 48);
              t++;
            }
          }
          r = HEAP8[(t + 1) >> 0];
        }
        if (o < 0) {
          o = 6;
          y = false;
        }
        var n;
        switch (String.fromCharCode(r)) {
          case "h":
            var N = HEAP8[(t + 2) >> 0];
            if (N == 104) {
              t++;
              n = 1;
            } else {
              n = 2;
            }
            break;
          case "l":
            var N = HEAP8[(t + 2) >> 0];
            if (N == 108) {
              t++;
              n = 8;
            } else {
              n = 4;
            }
            break;
          case "L":
          case "q":
          case "j":
            n = 8;
            break;
          case "z":
          case "t":
          case "I":
            n = 4;
            break;
          default:
            n = null;
        }
        if (n) t++;
        r = HEAP8[(t + 1) >> 0];
        switch (String.fromCharCode(r)) {
          case "d":
          case "i":
          case "u":
          case "o":
          case "x":
          case "X":
          case "p": {
            var P = r == 100 || r == 105;
            n = n || 4;
            var i = c("i" + n * 8);
            var h = i;
            var e;
            if (n == 8) {
              i = Runtime.makeBigInt(i[0], i[1], r == 117);
            }
            if (n <= 4) {
              var D = Math.pow(256, n) - 1;
              i = (P ? reSign : unSign)(i & D, n * 8);
            }
            var E = Math.abs(i);
            var s = "";
            if (r == 100 || r == 105) {
              if (n == 8 && i64Math) e = i64Math.stringify(h[0], h[1], null);
              else e = reSign(i, 8 * n, 1).toString(10);
            } else if (r == 117) {
              if (n == 8 && i64Math) e = i64Math.stringify(h[0], h[1], true);
              else e = unSign(i, 8 * n, 1).toString(10);
              i = Math.abs(i);
            } else if (r == 111) {
              e = (v ? "0" : "") + E.toString(8);
            } else if (r == 120 || r == 88) {
              s = v && i != 0 ? "0x" : "";
              if (n == 8 && i64Math) {
                if (h[1]) {
                  e = (h[1] >>> 0).toString(16);
                  var k = (h[0] >>> 0).toString(16);
                  while (k.length < 8) k = "0" + k;
                  e += k;
                } else {
                  e = (h[0] >>> 0).toString(16);
                }
              } else if (i < 0) {
                i = -i;
                e = (E - 1).toString(16);
                var T = [];
                for (var u = 0; u < e.length; u++) {
                  T.push((15 - parseInt(e[u], 16)).toString(16));
                }
                e = T.join("");
                while (e.length < n * 2) e = "f" + e;
              } else {
                e = E.toString(16);
              }
              if (r == 88) {
                s = s.toUpperCase();
                e = e.toUpperCase();
              }
            } else if (r == 112) {
              if (E === 0) {
                e = "(nil)";
              } else {
                s = "0x";
                e = E.toString(16);
              }
            }
            if (y) {
              while (e.length < o) {
                e = "0" + e;
              }
            }
            if (i >= 0) {
              if (M) {
                s = "+" + s;
              } else if (F) {
                s = " " + s;
              }
            }
            if (e.charAt(0) == "-") {
              s = "-" + s;
              e = e.substr(1);
            }
            while (s.length + e.length < d) {
              if (w) {
                e += " ";
              } else {
                if (m) {
                  e = "0" + e;
                } else {
                  s = " " + s;
                }
              }
            }
            e = s + e;
            e.split("").forEach(function(e) {
              a.push(e.charCodeAt(0));
            });
            break;
          }
          case "f":
          case "F":
          case "e":
          case "E":
          case "g":
          case "G": {
            var i = c("double");
            var e;
            if (isNaN(i)) {
              e = "nan";
              m = false;
            } else if (!isFinite(i)) {
              e = (i < 0 ? "-" : "") + "inf";
              m = false;
            } else {
              var A = false;
              var b = Math.min(o, 20);
              if (r == 103 || r == 71) {
                A = true;
                o = o || 1;
                var R = parseInt(i.toExponential(b).split("e")[1], 10);
                if (o > R && R >= -4) {
                  r = (r == 103 ? "f" : "F").charCodeAt(0);
                  o -= R + 1;
                } else {
                  r = (r == 103 ? "e" : "E").charCodeAt(0);
                  o--;
                }
                b = Math.min(o, 20);
              }
              if (r == 101 || r == 69) {
                e = i.toExponential(b);
                if (/[eE][-+]\d$/.test(e)) {
                  e = e.slice(0, -1) + "0" + e.slice(-1);
                }
              } else if (r == 102 || r == 70) {
                e = i.toFixed(b);
                if (i === 0 && __reallyNegative(i)) {
                  e = "-" + e;
                }
              }
              var f = e.split("e");
              if (A && !v) {
                while (
                  f[0].length > 1 &&
                  f[0].indexOf(".") != -1 &&
                  (f[0].slice(-1) == "0" || f[0].slice(-1) == ".")
                ) {
                  f[0] = f[0].slice(0, -1);
                }
              } else {
                if (v && e.indexOf(".") == -1) f[0] += ".";
                while (o > b++) f[0] += "0";
              }
              e = f[0] + (f.length > 1 ? "e" + f[1] : "");
              if (r == 69) e = e.toUpperCase();
              if (i >= 0) {
                if (M) {
                  e = "+" + e;
                } else if (F) {
                  e = " " + e;
                }
              }
            }
            while (e.length < d) {
              if (w) {
                e += " ";
              } else {
                if (m && (e[0] == "-" || e[0] == "+")) {
                  e = e[0] + "0" + e.slice(1);
                } else {
                  e = (m ? "0" : " ") + e;
                }
              }
            }
            if (r < 97) e = e.toUpperCase();
            e.split("").forEach(function(e) {
              a.push(e.charCodeAt(0));
            });
            break;
          }
          case "s": {
            var g = c("i8*");
            var _ = g ? _strlen(g) : "(null)".length;
            if (y) _ = Math.min(_, o);
            if (!w) {
              while (_ < d--) {
                a.push(32);
              }
            }
            if (g) {
              for (var u = 0; u < _; u++) {
                a.push(HEAPU8[g++ >> 0]);
              }
            } else {
              a = a.concat(intArrayFromString("(null)".substr(0, _), true));
            }
            if (w) {
              while (_ < d--) {
                a.push(32);
              }
            }
            break;
          }
          case "c": {
            if (w) a.push(c("i8"));
            while (--d > 0) {
              a.push(32);
            }
            if (!w) a.push(c("i8"));
            break;
          }
          case "n": {
            var B = c("i32*");
            HEAP32[B >> 2] = a.length;
            break;
          }
          case "%": {
            a.push(S);
            break;
          }
          default: {
            for (var u = L; u < t + 2; u++) {
              a.push(HEAP8[u >> 0]);
            }
          }
        }
        t += 2;
      } else {
        a.push(S);
        t += 1;
      }
    }
    return a;
  }
  function _fprintf(r, i, t) {
    var e = __formatString(i, t);
    var n = Runtime.stackSave();
    var o = _fwrite(allocate(e, "i8", ALLOC_STACK), 1, e.length, r);
    Runtime.stackRestore(n);
    return o;
  }
  function _vfprintf(e, r, i) {
    return _fprintf(e, r, HEAP32[i >> 2]);
  }
  function _emscripten_memcpy_big(e, r, i) {
    HEAPU8.set(HEAPU8.subarray(r, r + i), e);
    return e;
  }
  Module["_memcpy"] = _memcpy;
  var _log = Math_log;
  var _cos = Math_cos;
  var _llvm_pow_f64 = Math_pow;
  function _sbrk(r) {
    var e = _sbrk;
    if (!e.called) {
      DYNAMICTOP = alignMemoryPage(DYNAMICTOP);
      e.called = true;
      assert(Runtime.dynamicAlloc);
      e.alloc = Runtime.dynamicAlloc;
      Runtime.dynamicAlloc = function() {
        abort("cannot dynamically allocate, sbrk now has control");
      };
    }
    var i = DYNAMICTOP;
    if (r != 0) {
      var t = e.alloc(r);
      if (!t) return -1 >>> 0;
    }
    return i;
  }
  Module["_bitshift64Shl"] = _bitshift64Shl;
  function ___errno_location() {
    return ___errno_state;
  }
  var _BItoD = true;
  function _hip_set_debugf() {
    Module["printErr"]("missing function: hip_set_debugf");
    abort(-1);
  }
  var _exp = Math_exp;
  function _time(e) {
    var r = (Date.now() / 1e3) | 0;
    if (e) {
      HEAP32[e >> 2] = r;
    }
    return r;
  }
  function _hip_decode1_unclipped() {
    Module["printErr"]("missing function: hip_decode1_unclipped");
    abort(-1);
  }
  ___errno_state = Runtime.staticAlloc(4);
  HEAP32[___errno_state >> 2] = 0;
  FS.staticInit();
  __ATINIT__.unshift(function() {
    if (!Module["noFSInit"] && !FS.init.initialized) FS.init();
  });
  __ATMAIN__.push(function() {
    FS.ignorePermissions = false;
  });
  __ATEXIT__.push(function() {
    FS.quit();
  });
  Module["FS_createFolder"] = FS.createFolder;
  Module["FS_createPath"] = FS.createPath;
  Module["FS_createDataFile"] = FS.createDataFile;
  Module["FS_createPreloadedFile"] = FS.createPreloadedFile;
  Module["FS_createLazyFile"] = FS.createLazyFile;
  Module["FS_createLink"] = FS.createLink;
  Module["FS_createDevice"] = FS.createDevice;
  __ATINIT__.unshift(function() {
    TTY.init();
  });
  __ATEXIT__.push(function() {
    TTY.shutdown();
  });
  if (ENVIRONMENT_IS_NODE) {
    var fs = require("fs");
    var NODEJS_PATH = require("path");
    NODEFS.staticInit();
  }
  Module["requestFullScreen"] = function h(e, r, i) {
    Browser.requestFullScreen(e, r, i);
  };
  Module["requestAnimationFrame"] = function m(e) {
    Browser.requestAnimationFrame(e);
  };
  Module["setCanvasSize"] = function w(e, r, i) {
    Browser.setCanvasSize(e, r, i);
  };
  Module["pauseMainLoop"] = function p() {
    Browser.mainLoop.pause();
  };
  Module["resumeMainLoop"] = function _() {
    Browser.mainLoop.resume();
  };
  Module["getUserMedia"] = function E() {
    Browser.getUserMedia();
  };
  Module["createContext"] = function v(e, r, i, t) {
    return Browser.createContext(e, r, i, t);
  };
  __ATINIT__.push(function() {
    SOCKFS.root = FS.mount(SOCKFS, {}, null);
  });
  STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP);
  staticSealed = true;
  STACK_MAX = STACK_BASE + TOTAL_STACK;
  DYNAMIC_BASE = DYNAMICTOP = Runtime.alignMemory(STACK_MAX);
  assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack");
  var cttz_i8 = allocate(
    [
      8,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      3,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      4,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      3,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      5,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      3,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      4,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      3,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      6,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      3,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      4,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      3,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      5,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      3,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      4,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      3,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      7,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      3,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      4,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      3,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      5,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      3,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      4,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      3,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      6,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      3,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      4,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      3,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      5,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      3,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      4,
      0,
      1,
      0,
      2,
      0,
      1,
      0,
      3,
      0,
      1,
      0,
      2,
      0,
      1,
      0
    ],
    "i8",
    ALLOC_DYNAMIC
  );
  function invoke_iiii(r, i, t, n) {
    try {
      return Module["dynCall_iiii"](r, i, t, n);
    } catch (e) {
      if (typeof e !== "number" && e !== "longjmp") throw e;
      asm["setThrew"](1, 0);
    }
  }
  function invoke_iiiii(r, i, t, n, o) {
    try {
      return Module["dynCall_iiiii"](r, i, t, n, o);
    } catch (e) {
      if (typeof e !== "number" && e !== "longjmp") throw e;
      asm["setThrew"](1, 0);
    }
  }
  function invoke_vii(r, i, t) {
    try {
      Module["dynCall_vii"](r, i, t);
    } catch (e) {
      if (typeof e !== "number" && e !== "longjmp") throw e;
      asm["setThrew"](1, 0);
    }
  }
  function invoke_iii(r, i, t) {
    try {
      return Module["dynCall_iii"](r, i, t);
    } catch (e) {
      if (typeof e !== "number" && e !== "longjmp") throw e;
      asm["setThrew"](1, 0);
    }
  }
  function invoke_viiii(r, i, t, n, o) {
    try {
      Module["dynCall_viiii"](r, i, t, n, o);
    } catch (e) {
      if (typeof e !== "number" && e !== "longjmp") throw e;
      asm["setThrew"](1, 0);
    }
  }
  Module.asmGlobalArg = {
    Math: Math,
    Int8Array: Int8Array,
    Int16Array: Int16Array,
    Int32Array: Int32Array,
    Uint8Array: Uint8Array,
    Uint16Array: Uint16Array,
    Uint32Array: Uint32Array,
    Float32Array: Float32Array,
    Float64Array: Float64Array,
    NaN: NaN,
    Infinity: Infinity
  };
  Module.asmLibraryArg = {
    abort: abort,
    assert: assert,
    invoke_iiii: invoke_iiii,
    invoke_iiiii: invoke_iiiii,
    invoke_vii: invoke_vii,
    invoke_iii: invoke_iii,
    invoke_viiii: invoke_viiii,
    _fabs: _fabs,
    _sin: _sin,
    _exp: _exp,
    _llvm_pow_f64: _llvm_pow_f64,
    _send: _send,
    _VBR_encode_frame: _VBR_encode_frame,
    _abort: _abort,
    ___setErrNo: ___setErrNo,
    _vfprintf: _vfprintf,
    _hip_set_debugf: _hip_set_debugf,
    _floor: _floor,
    _fflush: _fflush,
    _pwrite: _pwrite,
    _strerror_r: _strerror_r,
    __exit: __exit,
    _GetTitleGain: _GetTitleGain,
    _emscripten_set_main_loop_timing: _emscripten_set_main_loop_timing,
    _fabsf: _fabsf,
    _sbrk: _sbrk,
    _atan: _atan,
    _llvm_pow_f32: _llvm_pow_f32,
    _InitGainAnalysis: _InitGainAnalysis,
    _emscripten_memcpy_big: _emscripten_memcpy_big,
    _fileno: _fileno,
    _hip_decode_exit: _hip_decode_exit,
    _sysconf: _sysconf,
    _cos: _cos,
    _mkport: _mkport,
    _floorf: _floorf,
    _hip_set_errorf: _hip_set_errorf,
    __reallyNegative: __reallyNegative,
    _write: _write,
    _emscripten_set_main_loop: _emscripten_set_main_loop,
    _AnalyzeSamples: _AnalyzeSamples,
    ___errno_location: ___errno_location,
    _log: _log,
    _init_xrpow_core_sse: _init_xrpow_core_sse,
    _hip_decode1_unclipped: _hip_decode1_unclipped,
    _fwrite: _fwrite,
    _time: _time,
    _fprintf: _fprintf,
    _strerror: _strerror,
    _ceil: _ceil,
    __formatString: __formatString,
    _sqrt: _sqrt,
    _hip_set_msgf: _hip_set_msgf,
    _exit: _exit,
    _hip_decode_init: _hip_decode_init,
    _llvm_sqrt_f64: _llvm_sqrt_f64,
    STACKTOP: STACKTOP,
    STACK_MAX: STACK_MAX,
    tempDoublePtr: tempDoublePtr,
    ABORT: ABORT,
    cttz_i8: cttz_i8,
    _stderr: _stderr
  };
  var asm = (function(E, u, C) {
    "use asm";
    var i = new E.Int8Array(C);
    var S = new E.Int16Array(C);
    var e = new E.Int32Array(C);
    var o = new E.Uint8Array(C);
    var Nr = new E.Uint16Array(C);
    var Yn = new E.Uint32Array(C);
    var r = new E.Float32Array(C);
    var f = new E.Float64Array(C);
    var t = u.STACKTOP | 0;
    var Ei = u.STACK_MAX | 0;
    var n = u.tempDoublePtr | 0;
    var bn = u.ABORT | 0;
    var ke = u.cttz_i8 | 0;
    var vi = u._stderr | 0;
    var Er = 0;
    var bi = 0;
    var sn = 0;
    var Jt = 0;
    var Gt = E.NaN,
      er = E.Infinity;
    var xt = 0,
      Zt = 0,
      tn = 0,
      ln = 0,
      un = 0,
      Lt = 0,
      Vn = 0,
      Wn = 0,
      Kn = 0;
    var m = 0;
    var qt = 0;
    var Ut = 0;
    var Kt = 0;
    var Mn = 0;
    var Dn = 0;
    var Ln = 0;
    var Gn = 0;
    var Xn = 0;
    var Zn = 0;
    var x = E.Math.floor;
    var p = E.Math.abs;
    var ae = E.Math.sqrt;
    var d = E.Math.pow;
    var N = E.Math.cos;
    var Lr = E.Math.sin;
    var jn = E.Math.tan;
    var qn = E.Math.acos;
    var zn = E.Math.asin;
    var cr = E.Math.atan;
    var Un = E.Math.atan2;
    var v = E.Math.exp;
    var Ve = E.Math.log;
    var hi = E.Math.ceil;
    var s = E.Math.imul;
    var On = E.Math.min;
    var U = E.Math.clz32;
    var j = u.abort;
    var gn = u.assert;
    var kn = u.invoke_iiii;
    var Sn = u.invoke_iiiii;
    var _n = u.invoke_vii;
    var wn = u.invoke_iii;
    var hn = u.invoke_viiii;
    var fn = u._fabs;
    var nn = u._sin;
    var rn = u._exp;
    var $t = u._llvm_pow_f64;
    var Qt = u._send;
    var ot = u._VBR_encode_frame;
    var a = u._abort;
    var Yt = u.___setErrNo;
    var at = u._vfprintf;
    var ht = u._hip_set_debugf;
    var Vt = u._floor;
    var _t = u._fflush;
    var pn = u._pwrite;
    var Ct = u._strerror_r;
    var Bt = u.__exit;
    var yt = u._GetTitleGain;
    var It = u._emscripten_set_main_loop_timing;
    var Ht = u._fabsf;
    var B = u._sbrk;
    var zt = u._atan;
    var jt = u._llvm_pow_f32;
    var zi = u._InitGainAnalysis;
    var Hi = u._emscripten_memcpy_big;
    var on = u._fileno;
    var vr = u._hip_decode_exit;
    var Bi = u._sysconf;
    var an = u._cos;
    var cn = u._mkport;
    var dn = u._floorf;
    var gi = u._hip_set_errorf;
    var mn = u.__reallyNegative;
    var En = u._write;
    var vn = u._emscripten_set_main_loop;
    var Ye = u._AnalyzeSamples;
    var V = u.___errno_location;
    var yn = u._log;
    var _i = u._init_xrpow_core_sse;
    var pi = u._hip_decode1_unclipped;
    var Rn = u._fwrite;
    var mi = u._time;
    var Pn = u._fprintf;
    var ci = u._strerror;
    var Cn = u._ceil;
    var Bn = u.__formatString;
    var In = u._sqrt;
    var ai = u._hip_set_msgf;
    var oi = u._exit;
    var ni = u._hip_decode_init;
    var xn = u._llvm_sqrt_f64;
    var Hn = 0;
    function ei(E, se, V, te, fe, Be, Ce, Y, ae) {
      E = E | 0;
      se = se | 0;
      V = V | 0;
      te = te | 0;
      fe = fe | 0;
      Be = Be | 0;
      Ce = Ce | 0;
      Y = Y | 0;
      ae = ae | 0;
      var N = 0,
        y = 0,
        C = 0,
        A = 0,
        v = 0,
        s = 0,
        _ = 0,
        m = 0,
        h = 0,
        w = 0,
        u = 0,
        n = 0,
        T = 0,
        B = 0,
        a = 0,
        j = 0,
        W = 0,
        Se = 0,
        Te = 0,
        Fe = 0,
        ge = 0,
        ke = 0,
        Pe = 0,
        ce = 0,
        Re = 0,
        _e = 0,
        pe = 0,
        he = 0,
        de = 0,
        Me = 0,
        Oe = 0,
        le = 0,
        me = 0,
        we = 0,
        R = 0,
        X = 0,
        M = 0,
        D = 0,
        Q = 0,
        H = 0,
        g = 0,
        qe = 0,
        ze = 0,
        Ve = 0,
        Ue = 0,
        $ = 0,
        F = 0,
        He = 0,
        xe = 0,
        Ie = 0,
        k = 0,
        re = 0,
        J = 0,
        oe = 0,
        ee = 0,
        ve = 0,
        Z = 0,
        be = 0,
        Le = 0,
        P = 0,
        U = 0,
        ye = 0,
        O = 0,
        S = 0,
        K = 0,
        ne = 0,
        x = 0,
        Ne = 0,
        De = 0,
        ie = 0,
        ue = 0,
        z = 0,
        q = 0,
        G = 0,
        Ee = 0,
        I = 0,
        L = 0;
      I = t;
      t = (t + 26240) | 0;
      O = (I + 21624) | 0;
      S = (I + 21368) | 0;
      P = (I + 21112) | 0;
      H = (I + 21096) | 0;
      De = (I + 20120) | 0;
      J = (I + 18068) | 0;
      ye = (I + 16520) | 0;
      re = (I + 8328) | 0;
      ne = (I + 2184) | 0;
      U = (I + 1160) | 0;
      K = (I + 136) | 0;
      ue = (I + 88) | 0;
      z = (I + 24) | 0;
      q = (I + 16) | 0;
      ie = I;
      Z = (E + 85800) | 0;
      k = e[Z >> 2] | 0;
      oe = (E + 140) | 0;
      w = (e[oe >> 2] | 0) == 0;
      if (w) Ee = 0;
      else Ee = e[(E + 85804) >> 2] | 0;
      be = (E + 192) | 0;
      if (+r[be >> 2] > 0) N = +r[((e[(E + 85796) >> 2] | 0) + 8) >> 2] * +r[(E + 200) >> 2];
      else N = 1;
      n = z;
      u = (n + 64) | 0;
      do {
        e[n >> 2] = 0;
        n = (n + 4) | 0;
      } while ((n | 0) < (u | 0));
      ve = (E + 180) | 0;
      n = (e[ve >> 2] | 0) == 1;
      if (n) G = 4;
      else G = e[(E + 72) >> 2] | 0;
      l(De | 0, (E + 25660) | 0, 976) | 0;
      if (w) Q = 0;
      else Q = e[(E + 85804) >> 2] | 0;
      Ne = (E + 72) | 0;
      _ = e[Ne >> 2] | 0;
      D = n ? 4 : _;
      c(O | 0, 0, 4608) | 0;
      if ((_ | 0) > 0)
        if ((D | 0) > 2) {
          u = 0;
          do {
            n = e[(se + (u << 2)) >> 2] | 0;
            w = 0;
            do {
              r[(O + ((u * 2304) | 0) + (w << 2)) >> 2] =
                +r[(n + ((w + 407) << 2)) >> 2] -
                (+r[(n + ((w + 418) << 2)) >> 2] + +r[(n + ((w + 397) << 2)) >> 2]) *
                  1.7303260184043527e-17 -
                (+r[(n + ((w + 417) << 2)) >> 2] + +r[(n + ((w + 398) << 2)) >> 2]) *
                  0.017031719908118248 -
                (+r[(n + ((w + 416) << 2)) >> 2] + +r[(n + ((w + 399) << 2)) >> 2]) *
                  1.3495279640235235e-17 +
                (+r[(n + ((w + 415) << 2)) >> 2] + +r[(n + ((w + 400) << 2)) >> 2]) *
                  0.04180720075964928 -
                (+r[(n + ((w + 414) << 2)) >> 2] + +r[(n + ((w + 401) << 2)) >> 2]) *
                  6.732779685849225e-17 -
                (+r[(n + ((w + 413) << 2)) >> 2] + +r[(n + ((w + 402) << 2)) >> 2]) *
                  0.08763240277767181 -
                (+r[(n + ((w + 412) << 2)) >> 2] + +r[(n + ((w + 403) << 2)) >> 2]) *
                  3.0835000291318875e-17 +
                (+r[(n + ((w + 411) << 2)) >> 2] + +r[(n + ((w + 404) << 2)) >> 2]) *
                  0.1863476037979126 -
                (+r[(n + ((w + 410) << 2)) >> 2] + +r[(n + ((w + 405) << 2)) >> 2]) *
                  1.1044240253100168e-16 -
                (+r[(n + ((w + 409) << 2)) >> 2] + +r[(n + ((w + 406) << 2)) >> 2]) *
                  0.6276379823684692;
              w = (w + 1) | 0;
            } while ((w | 0) != 576);
            l(
              (te + ((V * 976) | 0) + ((u * 488) | 0) + 244) | 0,
              (E + 26636 + ((u * 244) | 0)) | 0,
              244
            ) | 0;
            l(
              (te + ((V * 976) | 0) + ((u * 488) | 0)) | 0,
              (E + 25660 + ((u * 244) | 0)) | 0,
              244
            ) | 0;
            F = (u + 2) | 0;
            l(
              (fe + ((V * 976) | 0) + ((u * 488) | 0) + 244) | 0,
              (E + 26636 + ((F * 244) | 0)) | 0,
              244
            ) | 0;
            l(
              (fe + ((V * 976) | 0) + ((u * 488) | 0)) | 0,
              (E + 25660 + ((F * 244) | 0)) | 0,
              244
            ) | 0;
            u = (u + 1) | 0;
          } while ((u | 0) != (_ | 0));
        } else {
          u = 0;
          do {
            n = e[(se + (u << 2)) >> 2] | 0;
            w = 0;
            do {
              r[(O + ((u * 2304) | 0) + (w << 2)) >> 2] =
                +r[(n + ((w + 407) << 2)) >> 2] -
                (+r[(n + ((w + 418) << 2)) >> 2] + +r[(n + ((w + 397) << 2)) >> 2]) *
                  1.7303260184043527e-17 -
                (+r[(n + ((w + 417) << 2)) >> 2] + +r[(n + ((w + 398) << 2)) >> 2]) *
                  0.017031719908118248 -
                (+r[(n + ((w + 416) << 2)) >> 2] + +r[(n + ((w + 399) << 2)) >> 2]) *
                  1.3495279640235235e-17 +
                (+r[(n + ((w + 415) << 2)) >> 2] + +r[(n + ((w + 400) << 2)) >> 2]) *
                  0.04180720075964928 -
                (+r[(n + ((w + 414) << 2)) >> 2] + +r[(n + ((w + 401) << 2)) >> 2]) *
                  6.732779685849225e-17 -
                (+r[(n + ((w + 413) << 2)) >> 2] + +r[(n + ((w + 402) << 2)) >> 2]) *
                  0.08763240277767181 -
                (+r[(n + ((w + 412) << 2)) >> 2] + +r[(n + ((w + 403) << 2)) >> 2]) *
                  3.0835000291318875e-17 +
                (+r[(n + ((w + 411) << 2)) >> 2] + +r[(n + ((w + 404) << 2)) >> 2]) *
                  0.1863476037979126 -
                (+r[(n + ((w + 410) << 2)) >> 2] + +r[(n + ((w + 405) << 2)) >> 2]) *
                  1.1044240253100168e-16 -
                (+r[(n + ((w + 409) << 2)) >> 2] + +r[(n + ((w + 406) << 2)) >> 2]) *
                  0.6276379823684692;
              w = (w + 1) | 0;
            } while ((w | 0) != 576);
            l(
              (te + ((V * 976) | 0) + ((u * 488) | 0) + 244) | 0,
              (E + 26636 + ((u * 244) | 0)) | 0,
              244
            ) | 0;
            l(
              (te + ((V * 976) | 0) + ((u * 488) | 0)) | 0,
              (E + 25660 + ((u * 244) | 0)) | 0,
              244
            ) | 0;
            u = (u + 1) | 0;
          } while ((u | 0) != (_ | 0));
        }
      if ((D | 0) > 0) {
        W = (Q | 0) == 0;
        j = (q + 4) | 0;
        y = (P + 4) | 0;
        T = (S + 4) | 0;
        C = (P + 8) | 0;
        B = (S + 8) | 0;
        A = (P + 12) | 0;
        v = (P + 16) | 0;
        Se = (P + 20) | 0;
        Te = (P + 24) | 0;
        Fe = (P + 28) | 0;
        ge = (P + 32) | 0;
        ke = (P + 36) | 0;
        Pe = (P + 40) | 0;
        ce = (P + 44) | 0;
        Re = (H + 4) | 0;
        _e = (H + 8) | 0;
        pe = (H + 12) | 0;
        he = (S + 12) | 0;
        de = (S + 16) | 0;
        Me = (S + 20) | 0;
        Oe = (S + 24) | 0;
        le = (S + 28) | 0;
        me = (S + 32) | 0;
        we = (S + 36) | 0;
        R = (S + 40) | 0;
        X = (S + 44) | 0;
        M = 0;
        do {
          e[H >> 2] = 0;
          e[(H + 4) >> 2] = 0;
          e[(H + 8) >> 2] = 0;
          e[(H + 12) >> 2] = 0;
          u = (O + (((M & 1) * 2304) | 0)) | 0;
          if ((M | 0) == 2) {
            n = 0;
            do {
              $ = (O + (n << 2)) | 0;
              m = +r[$ >> 2];
              F = (O + 2304 + (n << 2)) | 0;
              s = +r[F >> 2];
              r[$ >> 2] = s + m;
              r[F >> 2] = m - s;
              n = (n + 1) | 0;
            } while ((n | 0) != 576);
          }
          m = +r[(E + 27636 + ((M * 36) | 0) + 24) >> 2];
          r[P >> 2] = m;
          r[S >> 2] = m / +r[(E + 27636 + ((M * 36) | 0) + 16) >> 2];
          h = +r[(E + 27636 + ((M * 36) | 0) + 28) >> 2];
          r[y >> 2] = h;
          r[T >> 2] = h / +r[(E + 27636 + ((M * 36) | 0) + 20) >> 2];
          s = +r[(E + 27636 + ((M * 36) | 0) + 32) >> 2];
          r[C >> 2] = s;
          r[B >> 2] = s / m;
          r[H >> 2] = h + m + s;
          w = 0;
          do {
            a = 1;
            n = u;
            u = (u + 256) | 0;
            do {
              s = +p(+(+r[n >> 2]));
              a = a < s ? s : a;
              n = (n + 4) | 0;
            } while (n >>> 0 < u >>> 0);
            n = (w + 3) | 0;
            r[(P + (n << 2)) >> 2] = a;
            r[(E + 27636 + ((M * 36) | 0) + (w << 2)) >> 2] = a;
            F = (H + (((((w | 0) / 3) | 0) + 1) << 2)) | 0;
            r[F >> 2] = +r[F >> 2] + a;
            w = (w + 1) | 0;
            h = +r[(P + (w << 2)) >> 2];
            if (!(a > h)) {
              a = a * 10;
              if (h > a) a = h / a;
              else a = 0;
            } else a = a / h;
            r[(S + (n << 2)) >> 2] = a;
          } while ((w | 0) != 9);
          a = +r[v >> 2];
          s = +r[Se >> 2];
          h = a + +r[A >> 2] + s;
          if (s * 6 < h)
            if (a * 6 < h) a = 0.25;
            else a = 0.5;
          else a = 1;
          r[(ue + ((M * 12) | 0)) >> 2] = a;
          a = +r[Fe >> 2];
          s = +r[ge >> 2];
          h = a + +r[Te >> 2] + s;
          if (s * 6 < h)
            if (a * 6 < h) a = 0.25;
            else a = 0.5;
          else a = 1;
          r[(ue + ((M * 12) | 0) + 4) >> 2] = a;
          a = +r[Pe >> 2];
          s = +r[ce >> 2];
          h = a + +r[ke >> 2] + s;
          if (s * 6 < h)
            if (a * 6 < h) a = 0.25;
            else a = 0.5;
          else a = 1;
          r[(ue + ((M * 12) | 0) + 8) >> 2] = a;
          if (!W) {
            s = +r[S >> 2];
            m = +r[T >> 2];
            s = s < m ? m : s;
            m = +r[B >> 2];
            s = s < m ? m : s;
            m = +r[he >> 2];
            s = s < m ? m : s;
            m = +r[de >> 2];
            s = s < m ? m : s;
            m = +r[Me >> 2];
            s = s < m ? m : s;
            m = +r[Oe >> 2];
            s = s < m ? m : s;
            m = +r[le >> 2];
            s = s < m ? m : s;
            m = +r[me >> 2];
            s = s < m ? m : s;
            m = +r[we >> 2];
            s = s < m ? m : s;
            m = +r[R >> 2];
            s = s < m ? m : s;
            m = +r[X >> 2];
            F = (Q + 197112 + (M << 3)) | 0;
            f[(Q + 197144 + (V << 5) + (M << 3)) >> 3] = +f[F >> 3];
            f[F >> 3] = s < m ? m : s;
          }
          a = +r[((e[Z >> 2] | 0) + 6480 + (M << 2)) >> 2];
          u = 0;
          do {
            n = (z + (M << 4) + ((((u | 0) / 3) | 0) << 2)) | 0;
            if ((e[n >> 2] | 0) == 0 ? +r[(S + (u << 2)) >> 2] > a : 0)
              e[n >> 2] = ((u | 0) % 3 | 0) + 1;
            u = (u + 1) | 0;
          } while ((u | 0) != 12);
          u = (z + (M << 4)) | 0;
          h = +r[H >> 2];
          m = +r[Re >> 2];
          s = m * 1.7000000476837158;
          if ((m < h * 1.7000000476837158) & (h < s ? (h > m ? h : m) < 4e4 : 0)) {
            n = (z + (M << 4) + 4) | 0;
            if ((e[u >> 2] | 0) <= (e[n >> 2] | 0)) e[u >> 2] = 0;
            e[n >> 2] = 0;
          }
          a = +r[_e >> 2];
          h = a * 1.7000000476837158;
          if ((a < s) & (m < h ? (m > a ? m : a) < 4e4 : 0)) e[(z + (M << 4) + 8) >> 2] = 0;
          s = +r[pe >> 2];
          if ((s < h) & (a < s * 1.7000000476837158 ? (a > s ? a : s) < 4e4 : 0))
            e[(z + (M << 4) + 12) >> 2] = 0;
          n = e[u >> 2] | 0;
          _ = e[(E + 27780 + (M << 2)) >> 2] | 0;
          if ((n | 0) <= (_ | 0)) {
            e[u >> 2] = 0;
            n = 0;
          }
          w = (z + (M << 4) + 4) | 0;
          u = e[w >> 2] | 0;
          if (
            (_ | 0) != 3
              ? ((u + n + (e[(z + (M << 4) + 8) >> 2] | 0)) | 0) ==
                ((0 - (e[(z + (M << 4) + 12) >> 2] | 0)) | 0)
              : 0
          )
            n = 1;
          else x = 47;
          do
            if ((x | 0) == 47) {
              x = 0;
              do
                if (!u) u = 0;
                else {
                  if (!n) break;
                  e[w >> 2] = 0;
                  u = 0;
                }
              while (0);
              n = (z + (M << 4) + 8) | 0;
              if (!(e[n >> 2] | 0)) {
                n = 0;
                break;
              }
              if (u) {
                e[n >> 2] = 0;
                n = 0;
                break;
              }
              n = (z + (M << 4) + 12) | 0;
              if (!(e[n >> 2] | 0)) {
                n = 0;
                break;
              }
              e[n >> 2] = 0;
              n = 0;
            }
          while (0);
          do
            if ((M | 0) < 2) e[(q + (M << 2)) >> 2] = n;
            else {
              if (n) break;
              e[j >> 2] = 0;
              e[q >> 2] = 0;
            }
          while (0);
          e[(Y + (M << 2)) >> 2] = e[(E + 27620 + (M << 2)) >> 2];
          M = (M + 1) | 0;
        } while ((M | 0) != (D | 0));
      }
      n = e[(E + 184) >> 2] | 0;
      if ((n | 0) == 1 ? ((g = (q + 4) | 0), ((e[q >> 2] | 0) == 0) | ((e[g >> 2] | 0) == 0)) : 0) {
        e[g >> 2] = 0;
        e[q >> 2] = 0;
      }
      u = e[Ne >> 2] | 0;
      do
        if ((u | 0) > 0)
          if ((n | 0) == 3) {
            n = 0;
            do {
              e[(q + (n << 2)) >> 2] = 0;
              n = (n + 1) | 0;
            } while ((n | 0) < (u | 0));
          } else if ((n | 0) == 2) {
            n = 0;
            do {
              e[(q + (n << 2)) >> 2] = 1;
              n = (n + 1) | 0;
            } while ((n | 0) < (u | 0));
          } else break;
      while (0);
      ee = (G | 0) > 0;
      if (ee) {
        Q = (E + 85796) | 0;
        D = (S + 4) | 0;
        M = (E + 84908) | 0;
        H = (P + 4) | 0;
        X = (E + 85804) | 0;
        R = 0;
        do {
          j = R & 1;
          u = (re + (j << 12)) | 0;
          if (!(e[oe >> 2] | 0)) v = 0;
          else v = e[X >> 2] | 0;
          _ = (R | 0) < 2;
          if (!_) {
            if ((R | 0) == 2) {
              n = (j + 1) | 0;
              w = 1023;
              while (1) {
                $ = (re + (j << 12) + (w << 2)) | 0;
                m = +r[$ >> 2];
                F = (re + (n << 12) + (w << 2)) | 0;
                s = +r[F >> 2];
                r[$ >> 2] = (s + m) * 0.7071067690849304;
                r[F >> 2] = (m - s) * 0.7071067690849304;
                if ((w | 0) > 0) w = (w + -1) | 0;
                else break;
              }
            }
          } else Ft(E, u, R, se);
          s = +r[u >> 2];
          r[J >> 2] = s * s;
          n = 511;
          while (1) {
            F = (512 - n) | 0;
            s = +r[(re + (j << 12) + (F << 2)) >> 2];
            m = +r[(re + (j << 12) + ((n + 512) << 2)) >> 2];
            r[(J + (F << 2)) >> 2] = (m * m + s * s) * 0.5;
            if ((n | 0) > 0) n = (n + -1) | 0;
            else {
              n = 11;
              a = 0;
              break;
            }
          }
          do {
            a = +r[(J + (n << 2)) >> 2] + a;
            n = (n + 1) | 0;
          } while ((n | 0) != 513);
          r[(E + 27620 + (R << 2)) >> 2] = a;
          if (v) {
            n = 0;
            do {
              F = (v + 90936 + (R << 13) + (n << 3)) | 0;
              f[(v + 123704 + (V << 15) + (R << 13) + (n << 3)) >> 3] = +f[F >> 3];
              f[F >> 3] = +r[(J + (n << 2)) >> 2];
              n = (n + 1) | 0;
            } while ((n | 0) != 513);
          }
          if (_) {
            w = (E + 27612 + (R << 2)) | 0;
            e[(E + 27804 + (V << 3) + (R << 2)) >> 2] = e[w >> 2];
            n = e[Q >> 2] | 0;
            u = 0;
            a = 0;
            do {
              a = +r[(n + 724 + (u << 2)) >> 2] * +r[(J + (u << 2)) >> 2] + a;
              u = (u + 1) | 0;
            } while ((u | 0) != 512);
            r[w >> 2] = a * 8.974871343596633e-12;
          }
          g = e[Z >> 2] | 0;
          Y = (g + 2148) | 0;
          A = e[Y >> 2] | 0;
          B = (A | 0) > 0;
          if (B) {
            v = 0;
            n = 0;
            do {
              _ = e[(g + 1716 + (v << 2)) >> 2] | 0;
              if ((_ | 0) > 0) {
                h = 0;
                u = 0;
                w = n;
                a = 0;
                while (1) {
                  s = +r[(J + (w << 2)) >> 2];
                  h = s + h;
                  a = a < s ? s : a;
                  u = (u + 1) | 0;
                  if ((u | 0) == (_ | 0)) break;
                  else w = (w + 1) | 0;
                }
                n = (((_ | 0) > 1 ? _ : 1) + n) | 0;
              } else {
                h = 0;
                a = 0;
              }
              r[(U + (R << 8) + (v << 2)) >> 2] = h;
              r[(S + (v << 2)) >> 2] = a;
              r[(P + (v << 2)) >> 2] = +r[(g + 512 + (v << 2)) >> 2] * h;
              v = (v + 1) | 0;
            } while ((v | 0) != (A | 0));
            a = +r[H >> 2];
            h = +r[P >> 2];
          } else {
            a = 0;
            h = 0;
          }
          a = h + a;
          if (a > 0) {
            s = +r[S >> 2];
            m = +r[D >> 2];
            n = ~~(
              (((s < m ? m : s) * 2 - a) * 20) /
              (+(((e[(g + 1716) >> 2] | 0) + -1 + (e[(g + 1720) >> 2] | 0)) | 0) * a)
            );
            n = (n | 0) > 8 ? 8 : n & 255;
          } else n = 0;
          i[O >> 0] = n;
          v = (A + -1) | 0;
          m = +r[H >> 2];
          a = m + h;
          if ((v | 0) > 1) {
            _ = (v | 0) > 2;
            n = 0;
            w = 1;
            while (1) {
              u = (w + 1) | 0;
              h = m;
              m = +r[(P + (u << 2)) >> 2];
              a = m + a;
              if (a > 0) {
                s = +r[(S + (n << 2)) >> 2];
                L = +r[(S + (w << 2)) >> 2];
                s = s < L ? L : s;
                L = +r[(S + (u << 2)) >> 2];
                n = ~~(
                  (((s < L ? L : s) * 3 - a) * 20) /
                  (+(
                    ((e[(g + 1716 + (n << 2)) >> 2] | 0) +
                      -1 +
                      (e[(g + 1716 + (w << 2)) >> 2] | 0) +
                      (e[(g + 1716 + (u << 2)) >> 2] | 0)) |
                    0
                  ) *
                    a)
                );
                n = (n | 0) > 8 ? 8 : n & 255;
              } else n = 0;
              i[(O + w) >> 0] = n;
              a = m + h;
              if ((u | 0) == (v | 0)) break;
              else {
                n = w;
                w = u;
              }
            }
            u = _ ? v : 2;
            n = (u + -1) | 0;
          } else {
            n = 0;
            u = 1;
          }
          if (a > 0) {
            s = +r[(S + (n << 2)) >> 2];
            m = +r[(S + (u << 2)) >> 2];
            n = ~~(
              (((s < m ? m : s) * 2 - a) * 20) /
              (+(
                ((e[(g + 1716 + (n << 2)) >> 2] | 0) + -1 + (e[(g + 1716 + (u << 2)) >> 2] | 0)) |
                0
              ) *
                a)
            );
            n = (n | 0) > 8 ? 8 : n & 255;
          } else n = 0;
          i[(O + u) >> 0] = n;
          if (B) {
            W = (g + 2156) | 0;
            j = (E + 27796 + (j << 2)) | 0;
            n = 0;
            w = 0;
            do {
              s = +r[M >> 2] * +r[(g + (n << 2)) >> 2];
              T = e[(g + 1204 + (n << 3)) >> 2] | 0;
              y = e[(g + 1204 + (n << 3) + 4) >> 2] | 0;
              C = e[(11448 + ((o[(O + n) >> 0] | 0) << 2)) >> 2] | 0;
              u = o[(O + T) >> 0] | 0;
              _ = e[W >> 2] | 0;
              a =
                +r[(U + (R << 8) + (T << 2)) >> 2] *
                +r[(_ + (w << 2)) >> 2] *
                +r[(11488 + (u << 2)) >> 2];
              w = (w + 1) | 0;
              if ((T | 0) < (y | 0)) {
                B = w;
                v = T;
                while (1) {
                  v = (v + 1) | 0;
                  A = o[(O + v) >> 0] | 0;
                  u = (A + u) | 0;
                  h =
                    +r[(U + (R << 8) + (v << 2)) >> 2] *
                    +r[(_ + (B << 2)) >> 2] *
                    +r[(11488 + (A << 2)) >> 2];
                  A = (v - n) | 0;
                  a = a < 0 ? 0 : a;
                  h = h < 0 ? 0 : h;
                  do
                    if (!(a <= 0)) {
                      if (h <= 0) break;
                      _ = h > a;
                      m = _ ? h / a : a / h;
                      if ((((A | 0) > -1 ? A : (0 - A) | 0) | 0) > (C | 0))
                        if (m < +r[2894]) {
                          a = h + a;
                          break;
                        } else {
                          a = _ ? h : a;
                          break;
                        }
                      else if (!(m >= +r[2882])) {
                        a = +r[(11536 + (~~(+b(m) * 4.816479930623698) << 2)) >> 2] * (h + a);
                        break;
                      } else {
                        a = h + a;
                        break;
                      }
                    } else a = h;
                  while (0);
                  if ((v | 0) == (y | 0)) break;
                  _ = e[W >> 2] | 0;
                  B = (B + 1) | 0;
                }
                _ = (1 - T + y) | 0;
                w = (w - T + y) | 0;
              } else _ = 1;
              m = +r[(11488 + (((((u << 1) | 1 | 0) / ((_ << 1) | 0)) | 0) << 2)) >> 2] * 0.5;
              h = m * a;
              u = e[j >> 2] | 0;
              do
                if ((u | 0) == 2) {
                  u = (E + 21564 + (R << 8) + (n << 2)) | 0;
                  a = +r[u >> 2] * 2;
                  if (a > 0) {
                    a = h < a ? h : a;
                    _ = (K + (R << 8) + (n << 2)) | 0;
                    r[_ >> 2] = a;
                    break;
                  } else {
                    L = h;
                    a = +r[(U + (R << 8) + (n << 2)) >> 2] * 0.3;
                    a = L < a ? L : a;
                    _ = (K + (R << 8) + (n << 2)) | 0;
                    r[_ >> 2] = a;
                    break;
                  }
                } else {
                  L = +r[(E + 22588 + (R << 8) + (n << 2)) >> 2] * 16;
                  F = (E + 21564 + (R << 8) + (n << 2)) | 0;
                  a = +r[F >> 2] * 2;
                  L = !(L <= 0) ? L : h;
                  a = !(a <= 0) ? a : h;
                  a = (u | 0) == 0 ? (a < L ? a : L) : a;
                  a = h < a ? h : a;
                  _ = (K + (R << 8) + (n << 2)) | 0;
                  r[_ >> 2] = a;
                  u = F;
                }
              while (0);
              e[(E + 22588 + (R << 8) + (n << 2)) >> 2] = e[u >> 2];
              r[u >> 2] = h;
              h = +r[(S + (n << 2)) >> 2] * m * +r[(g + 256 + (n << 2)) >> 2];
              if (a > h) {
                r[_ >> 2] = h;
                a = h;
              }
              if (s > 1) {
                a = a * s;
                r[_ >> 2] = a;
              }
              h = +r[(U + (R << 8) + (n << 2)) >> 2];
              if (a > h) {
                r[_ >> 2] = h;
                a = h;
              }
              if (s < 1) r[_ >> 2] = a * s;
              n = (n + 1) | 0;
            } while ((n | 0) < (e[Y >> 2] | 0));
            if ((n | 0) < 64) x = 114;
          } else {
            n = 0;
            x = 114;
          }
          if ((x | 0) == 114) {
            x = 0;
            F = (256 - (n << 2)) | 0;
            c((U + (R << 8) + (n << 2)) | 0, 0, F | 0) | 0;
            c((K + (R << 8) + (n << 2)) | 0, 0, F | 0) | 0;
          }
          R = (R + 1) | 0;
        } while ((R | 0) != (G | 0));
      }
      if ((e[ve >> 2] | 0) == 1 ? (((e[(q + 4) >> 2] | 0) + (e[q >> 2] | 0)) | 0) == 2 : 0)
        ur(
          U,
          K,
          (k + 768) | 0,
          ((e[(E + 85796) >> 2] | 0) + 212) | 0,
          N,
          +r[be >> 2],
          e[(k + 2148) >> 2] | 0
        );
      if (ee) {
        _ = 0;
        do {
          F = (U + (_ << 8)) | 0;
          v = (K + (_ << 8)) | 0;
          Ae(
            e[Z >> 2] | 0,
            F,
            v,
            (E + 26636 + ((_ * 244) | 0)) | 0,
            (E + 25660 + ((_ * 244) | 0)) | 0
          );
          Ae(((e[Z >> 2] | 0) + 4320) | 0, F, v, O, S);
          v = 0;
          do {
            F = e[(O + (v << 2)) >> 2] | 0;
            s = +r[(S + (v << 2)) >> 2] * 0.015625;
            e[(E + 26636 + ((_ * 244) | 0) + 88 + ((v * 12) | 0)) >> 2] = F;
            r[(E + 25660 + ((_ * 244) | 0) + 88 + ((v * 12) | 0)) >> 2] = s;
            e[(E + 26636 + ((_ * 244) | 0) + 88 + ((v * 12) | 0) + 4) >> 2] = F;
            r[(E + 25660 + ((_ * 244) | 0) + 88 + ((v * 12) | 0) + 4) >> 2] = s;
            e[(E + 26636 + ((_ * 244) | 0) + 88 + ((v * 12) | 0) + 8) >> 2] = F;
            r[(E + 25660 + ((_ * 244) | 0) + 88 + ((v * 12) | 0) + 8) >> 2] = s;
            v = (v + 1) | 0;
          } while ((v | 0) != 13);
          _ = (_ + 1) | 0;
        } while ((_ | 0) != (G | 0));
      }
      re = (k + 2928) | 0;
      J = (E + 85796) | 0;
      me = (k + 4308) | 0;
      le = (e[((e[Z >> 2] | 0) + 6500) >> 2] | 0) != 0;
      Oe = (O + 4) | 0;
      Me = (S + 4) | 0;
      de = (O + 8) | 0;
      he = (S + 8) | 0;
      pe = (O + 12) | 0;
      B = (S + 12) | 0;
      C = (O + 16) | 0;
      _e = (S + 16) | 0;
      Re = (O + 20) | 0;
      Se = (S + 20) | 0;
      Te = (O + 24) | 0;
      Fe = (S + 24) | 0;
      ge = (O + 28) | 0;
      ke = (S + 28) | 0;
      Pe = (O + 32) | 0;
      ce = (S + 32) | 0;
      qe = (O + 36) | 0;
      ze = (S + 36) | 0;
      Ve = (O + 40) | 0;
      Ue = (S + 40) | 0;
      $ = (O + 44) | 0;
      F = (S + 44) | 0;
      He = (O + 48) | 0;
      xe = (S + 48) | 0;
      Ie = (S + 4) | 0;
      oe = (E + 84908) | 0;
      we = (P + 4) | 0;
      R = (e[q >> 2] | 0) != ((0 - (e[(q + 4) >> 2] | 0)) | 0);
      k = 0;
      do {
        if (ee) {
          H = (k | 0) == 0;
          Q = (ye + ((k * 516) | 0)) | 0;
          D = 0;
          do {
            w = D & 1;
            if (le | ((e[(q + (w << 2)) >> 2] | 0) == 0)) {
              if (H & ((D | 0) < 2)) Mt(E, (ne + ((w * 3072) | 0)) | 0, D, se);
              if ((D | 0) == 2) {
                n = (w + 1) | 0;
                u = 255;
                while (1) {
                  Y = (ne + ((w * 3072) | 0) + (k << 10) + (u << 2)) | 0;
                  m = +r[Y >> 2];
                  g = (ne + ((n * 3072) | 0) + (k << 10) + (u << 2)) | 0;
                  s = +r[g >> 2];
                  r[Y >> 2] = (s + m) * 0.7071067690849304;
                  r[g >> 2] = (m - s) * 0.7071067690849304;
                  if ((u | 0) > 0) u = (u + -1) | 0;
                  else break;
                }
              }
              s = +r[(ne + ((w * 3072) | 0) + (k << 10)) >> 2];
              r[Q >> 2] = s * s;
              n = 127;
              while (1) {
                g = (128 - n) | 0;
                s = +r[(ne + ((w * 3072) | 0) + (k << 10) + (g << 2)) >> 2];
                m = +r[(ne + ((w * 3072) | 0) + (k << 10) + ((n + 128) << 2)) >> 2];
                r[(ye + ((k * 516) | 0) + (g << 2)) >> 2] = (m * m + s * s) * 0.5;
                if ((n | 0) > 0) n = (n + -1) | 0;
                else break;
              }
              g = e[Z >> 2] | 0;
              c(S | 0, 0, 256) | 0;
              c(P | 0, 0, 256) | 0;
              Y = (g + 4308) | 0;
              W = e[Y >> 2] | 0;
              X = (W | 0) > 0;
              if (X) {
                v = 0;
                n = 0;
                do {
                  _ = e[(g + 3876 + (v << 2)) >> 2] | 0;
                  if ((_ | 0) > 0) {
                    h = 0;
                    u = 0;
                    w = n;
                    a = 0;
                    while (1) {
                      s = +r[(ye + ((k * 516) | 0) + (w << 2)) >> 2];
                      h = s + h;
                      a = a < s ? s : a;
                      u = (u + 1) | 0;
                      if ((u | 0) == (_ | 0)) break;
                      else w = (w + 1) | 0;
                    }
                    n = (_ + n) | 0;
                  } else {
                    h = 0;
                    a = 0;
                  }
                  r[(U + (D << 8) + (v << 2)) >> 2] = h;
                  r[(S + (v << 2)) >> 2] = a;
                  r[(P + (v << 2)) >> 2] = +r[(g + 2672 + (v << 2)) >> 2] * h;
                  v = (v + 1) | 0;
                } while ((v | 0) != (W | 0));
                m = +r[we >> 2];
                h = +r[P >> 2];
              } else {
                m = 0;
                h = 0;
              }
              a = h + m;
              if (a > 0) {
                s = +r[S >> 2];
                L = +r[Ie >> 2];
                n = ~~(
                  (((s < L ? L : s) * 2 - a) * 20) /
                  (+(((e[(g + 3876) >> 2] | 0) + -1 + (e[(g + 3880) >> 2] | 0)) | 0) * a)
                );
                n = (n | 0) > 8 ? 8 : n & 255;
              } else n = 0;
              i[O >> 0] = n;
              v = (W + -1) | 0;
              a = m + h;
              if ((v | 0) > 1) {
                _ = (v | 0) > 2;
                n = 0;
                w = 1;
                while (1) {
                  u = (w + 1) | 0;
                  h = m;
                  m = +r[(P + (u << 2)) >> 2];
                  a = m + a;
                  if (a > 0) {
                    s = +r[(S + (n << 2)) >> 2];
                    L = +r[(S + (w << 2)) >> 2];
                    s = s < L ? L : s;
                    L = +r[(S + (u << 2)) >> 2];
                    n = ~~(
                      (((s < L ? L : s) * 3 - a) * 20) /
                      (+(
                        ((e[(g + 3876 + (n << 2)) >> 2] | 0) +
                          -1 +
                          (e[(g + 3876 + (w << 2)) >> 2] | 0) +
                          (e[(g + 3876 + (u << 2)) >> 2] | 0)) |
                        0
                      ) *
                        a)
                    );
                    n = (n | 0) > 8 ? 8 : n & 255;
                  } else n = 0;
                  i[(O + w) >> 0] = n;
                  a = m + h;
                  if ((u | 0) == (v | 0)) break;
                  else {
                    n = w;
                    w = u;
                  }
                }
                u = _ ? v : 2;
                n = (u + -1) | 0;
              } else {
                n = 0;
                u = 1;
              }
              if (a > 0) {
                s = +r[(S + (n << 2)) >> 2];
                m = +r[(S + (u << 2)) >> 2];
                n = ~~(
                  (((s < m ? m : s) * 2 - a) * 20) /
                  (+(
                    ((e[(g + 3876 + (n << 2)) >> 2] | 0) +
                      -1 +
                      (e[(g + 3876 + (u << 2)) >> 2] | 0)) |
                    0
                  ) *
                    a)
                );
                n = (n | 0) > 8 ? 8 : n & 255;
              } else n = 0;
              i[(O + u) >> 0] = n;
              if (X) {
                M = (g + 4316) | 0;
                n = 0;
                w = 0;
                do {
                  y = e[(g + 3364 + (n << 3)) >> 2] | 0;
                  T = e[(g + 3364 + (n << 3) + 4) >> 2] | 0;
                  j = e[(11448 + ((o[(O + n) >> 0] | 0) << 2)) >> 2] | 0;
                  s = +r[oe >> 2] * +r[(g + 2160 + (n << 2)) >> 2];
                  u = o[(O + y) >> 0] | 0;
                  _ = e[M >> 2] | 0;
                  a =
                    +r[(U + (D << 8) + (y << 2)) >> 2] *
                    +r[(_ + (w << 2)) >> 2] *
                    +r[(11488 + (u << 2)) >> 2];
                  w = (w + 1) | 0;
                  if ((y | 0) < (T | 0)) {
                    W = w;
                    v = y;
                    while (1) {
                      v = (v + 1) | 0;
                      A = o[(O + v) >> 0] | 0;
                      u = (A + u) | 0;
                      h =
                        +r[(U + (D << 8) + (v << 2)) >> 2] *
                        +r[(_ + (W << 2)) >> 2] *
                        +r[(11488 + (A << 2)) >> 2];
                      A = (v - n) | 0;
                      a = a < 0 ? 0 : a;
                      h = h < 0 ? 0 : h;
                      do
                        if (!(a <= 0)) {
                          if (h <= 0) break;
                          _ = h > a;
                          m = _ ? h / a : a / h;
                          if ((((A | 0) > -1 ? A : (0 - A) | 0) | 0) > (j | 0))
                            if (m < +r[2894]) {
                              a = h + a;
                              break;
                            } else {
                              a = _ ? h : a;
                              break;
                            }
                          else if (!(m >= +r[2882])) {
                            a = +r[(11536 + (~~(+b(m) * 4.816479930623698) << 2)) >> 2] * (h + a);
                            break;
                          } else {
                            a = h + a;
                            break;
                          }
                        } else a = h;
                      while (0);
                      if ((v | 0) == (T | 0)) break;
                      _ = e[M >> 2] | 0;
                      W = (W + 1) | 0;
                    }
                    _ = (1 - y + T) | 0;
                    w = (w - y + T) | 0;
                  } else _ = 1;
                  h = +r[(11488 + (((((u << 1) | 1 | 0) / ((_ << 1) | 0)) | 0) << 2)) >> 2] * 0.5;
                  a = h * a;
                  u = (K + (D << 8) + (n << 2)) | 0;
                  r[u >> 2] = a;
                  X = (E + 23612 + (D << 8) + (n << 2)) | 0;
                  e[(E + 24636 + (D << 8) + (n << 2)) >> 2] = e[X >> 2];
                  r[X >> 2] = a;
                  h = +r[(S + (n << 2)) >> 2] * h * +r[(g + 2416 + (n << 2)) >> 2];
                  if (a > h) {
                    r[u >> 2] = h;
                    a = h;
                  }
                  if (s > 1) {
                    a = a * s;
                    r[u >> 2] = a;
                  }
                  h = +r[(U + (D << 8) + (n << 2)) >> 2];
                  if (a > h) {
                    r[u >> 2] = h;
                    a = h;
                  }
                  if (s < 1) r[u >> 2] = a * s;
                  n = (n + 1) | 0;
                } while ((n | 0) < (e[Y >> 2] | 0));
                if ((n | 0) < 64) x = 185;
              } else {
                n = 0;
                x = 185;
              }
              if ((x | 0) == 185) {
                x = 0;
                g = (256 - (n << 2)) | 0;
                c((U + (D << 8) + (n << 2)) | 0, 0, g | 0) | 0;
                c((K + (D << 8) + (n << 2)) | 0, 0, g | 0) | 0;
              }
            } else if (H ? ((Le = e[((e[Z >> 2] | 0) + 4308) >> 2] | 0), (Le | 0) > 0) : 0) {
              n = 0;
              do {
                e[(E + 24636 + (D << 8) + (n << 2)) >> 2] =
                  e[(E + 23612 + (D << 8) + (n << 2)) >> 2];
                n = (n + 1) | 0;
              } while ((n | 0) != (Le | 0));
            }
            D = (D + 1) | 0;
          } while ((D | 0) != (G | 0));
        }
        if (!(((e[ve >> 2] | 0) != 1) | R))
          ur(U, K, re, ((e[J >> 2] | 0) + 468) | 0, N, +r[be >> 2], e[me >> 2] | 0);
        if (ee) {
          n = 0;
          do {
            if (le | ((e[(q + ((n & 1) << 2)) >> 2] | 0) == 0)) {
              Ae(((e[Z >> 2] | 0) + 2160) | 0, (U + (n << 8)) | 0, (K + (n << 8)) | 0, O, S);
              e[(E + 26636 + ((n * 244) | 0) + 88 + (k << 2)) >> 2] = e[O >> 2];
              e[(E + 25660 + ((n * 244) | 0) + 88 + (k << 2)) >> 2] = e[S >> 2];
              e[(E + 26636 + ((n * 244) | 0) + 100 + (k << 2)) >> 2] = e[Oe >> 2];
              e[(E + 25660 + ((n * 244) | 0) + 100 + (k << 2)) >> 2] = e[Me >> 2];
              e[(E + 26636 + ((n * 244) | 0) + 112 + (k << 2)) >> 2] = e[de >> 2];
              e[(E + 25660 + ((n * 244) | 0) + 112 + (k << 2)) >> 2] = e[he >> 2];
              e[(E + 26636 + ((n * 244) | 0) + 124 + (k << 2)) >> 2] = e[pe >> 2];
              e[(E + 25660 + ((n * 244) | 0) + 124 + (k << 2)) >> 2] = e[B >> 2];
              e[(E + 26636 + ((n * 244) | 0) + 136 + (k << 2)) >> 2] = e[C >> 2];
              e[(E + 25660 + ((n * 244) | 0) + 136 + (k << 2)) >> 2] = e[_e >> 2];
              e[(E + 26636 + ((n * 244) | 0) + 148 + (k << 2)) >> 2] = e[Re >> 2];
              e[(E + 25660 + ((n * 244) | 0) + 148 + (k << 2)) >> 2] = e[Se >> 2];
              e[(E + 26636 + ((n * 244) | 0) + 160 + (k << 2)) >> 2] = e[Te >> 2];
              e[(E + 25660 + ((n * 244) | 0) + 160 + (k << 2)) >> 2] = e[Fe >> 2];
              e[(E + 26636 + ((n * 244) | 0) + 172 + (k << 2)) >> 2] = e[ge >> 2];
              e[(E + 25660 + ((n * 244) | 0) + 172 + (k << 2)) >> 2] = e[ke >> 2];
              e[(E + 26636 + ((n * 244) | 0) + 184 + (k << 2)) >> 2] = e[Pe >> 2];
              e[(E + 25660 + ((n * 244) | 0) + 184 + (k << 2)) >> 2] = e[ce >> 2];
              e[(E + 26636 + ((n * 244) | 0) + 196 + (k << 2)) >> 2] = e[qe >> 2];
              e[(E + 25660 + ((n * 244) | 0) + 196 + (k << 2)) >> 2] = e[ze >> 2];
              e[(E + 26636 + ((n * 244) | 0) + 208 + (k << 2)) >> 2] = e[Ve >> 2];
              e[(E + 25660 + ((n * 244) | 0) + 208 + (k << 2)) >> 2] = e[Ue >> 2];
              e[(E + 26636 + ((n * 244) | 0) + 220 + (k << 2)) >> 2] = e[$ >> 2];
              e[(E + 25660 + ((n * 244) | 0) + 220 + (k << 2)) >> 2] = e[F >> 2];
              e[(E + 26636 + ((n * 244) | 0) + 232 + (k << 2)) >> 2] = e[He >> 2];
              e[(E + 25660 + ((n * 244) | 0) + 232 + (k << 2)) >> 2] = e[xe >> 2];
            }
            n = (n + 1) | 0;
          } while ((n | 0) != (G | 0));
        }
        k = (k + 1) | 0;
      } while ((k | 0) != 3);
      if (ee) {
        u = 0;
        do {
          C = (E + 27780 + (u << 2)) | 0;
          n = 0;
          do {
            B = (E + 25660 + ((u * 244) | 0) + 88 + ((n * 12) | 0)) | 0;
            y = (De + ((u * 244) | 0) + 88 + ((n * 12) | 0) + 8) | 0;
            w = (De + ((u * 244) | 0) + 88 + ((n * 12) | 0) + 4) | 0;
            T = 0;
            do {
              h = +r[(E + 25660 + ((u * 244) | 0) + 88 + ((n * 12) | 0) + (T << 2)) >> 2] * 0.8;
              v = (T | 0) > 0;
              A = (T + -1) | 0;
              s = +r[(v ? (ie + (A << 2)) | 0 : y) >> 2];
              _ = e[(z + (u << 4) + (T << 2)) >> 2] | 0;
              if ((_ | 0) <= 1 ? (e[(z + (u << 4) + ((T + 1) << 2)) >> 2] | 0) != 1 : 0) m = h;
              else if (h > 0) m = +d(+(s / h), 0.36000001430511475) * h;
              else m = 0;
              m = m < h ? m : h;
              e: do
                if ((_ | 0) == 1)
                  if (m > 0) h = +d(+(s / m), 0.18000000715255737) * m;
                  else h = 0;
                else {
                  if ((T | 0) == 0 ? (e[C >> 2] | 0) == 3 : 0) x = 233;
                  else x = 230;
                  do
                    if ((x | 0) == 230) {
                      x = 0;
                      if (!v) break e;
                      if ((e[(z + (u << 4) + (A << 2)) >> 2] | 0) != 3) break e;
                      if (!T) {
                        x = 233;
                        break;
                      } else if ((T | 0) == 1) {
                        h = +r[y >> 2];
                        break;
                      } else if ((T | 0) == 2) {
                        h = +r[ie >> 2];
                        break;
                      } else {
                        h = s;
                        break;
                      }
                    }
                  while (0);
                  if ((x | 0) == 233) h = +r[w >> 2];
                  if (!(m > 0)) {
                    h = 0;
                    break;
                  }
                  h = +d(+(h / m), 0.18000000715255737) * m;
                }
              while (0);
              r[(ie + (T << 2)) >> 2] = (h < m ? h : m) * +r[(ue + ((u * 12) | 0) + (T << 2)) >> 2];
              T = (T + 1) | 0;
            } while ((T | 0) != 3);
            e[B >> 2] = e[ie >> 2];
            e[(B + 4) >> 2] = e[(ie + 4) >> 2];
            e[(B + 8) >> 2] = e[(ie + 8) >> 2];
            n = (n + 1) | 0;
          } while ((n | 0) != 13);
          u = (u + 1) | 0;
        } while ((u | 0) != (G | 0));
        if (ee) {
          y = 0;
          do {
            e[(E + 27780 + (y << 2)) >> 2] = e[(z + (y << 4) + 8) >> 2];
            y = (y + 1) | 0;
          } while ((y | 0) != (G | 0));
        }
      }
      C = e[Ne >> 2] | 0;
      if ((C | 0) > 0) {
        _ = 0;
        do {
          A = (E + 27796 + (_ << 2)) | 0;
          y = e[A >> 2] | 0;
          do
            if (!(e[(q + (_ << 2)) >> 2] | 0))
              if (!y) {
                e[A >> 2] = 1;
                v = 1;
                y = 2;
                break;
              } else if ((y | 0) == 3) {
                e[A >> 2] = 2;
                v = 2;
                y = 2;
                break;
              } else {
                v = y;
                y = 2;
                break;
              }
            else {
              v = y;
              y = (y | 0) == 2 ? 3 : 0;
            }
          while (0);
          e[(ae + (_ << 2)) >> 2] = v;
          e[A >> 2] = y;
          _ = (_ + 1) | 0;
        } while ((_ | 0) != (C | 0));
      }
      if (!ee) {
        t = I;
        return 0;
      }
      w = (Ce + -8) | 0;
      A = (ae + 4) | 0;
      B = (Ee | 0) == 0;
      C = 0;
      do {
        if ((C | 0) > 1) {
          if ((e[ae >> 2] | 0) != 2 ? (e[A >> 2] | 0) != 2 : 0) y = 0;
          else y = 2;
          n = (fe + ((V * 976) | 0) + ((((C + -2) | 0) * 488) | 0)) | 0;
          u = w;
        } else {
          n = (te + ((V * 976) | 0) + ((C * 488) | 0)) | 0;
          u = Be;
          y = e[(ae + (C << 2)) >> 2] | 0;
        }
        a = +r[oe >> 2];
        if ((y | 0) == 2) {
          N = 309.07000732421875;
          v = 0;
          do {
            _ = (11584 + (v << 2)) | 0;
            s = +r[(n + 88 + ((v * 12) | 0)) >> 2];
            do
              if (s > 0) {
                h = s * a;
                m = +r[(n + 332 + ((v * 12) | 0)) >> 2];
                if (!(m > h)) break;
                s = +r[_ >> 2];
                if (m > h * 1e10) {
                  N = s * 23.02585092994046 + N;
                  break;
                } else {
                  N = s * 0.30102999566398114 * +b(m / h) + N;
                  break;
                }
              }
            while (0);
            s = +r[(n + 88 + ((v * 12) | 0) + 4) >> 2];
            do
              if (s > 0) {
                h = s * a;
                m = +r[(n + 332 + ((v * 12) | 0) + 4) >> 2];
                if (!(m > h)) break;
                s = +r[_ >> 2];
                if (m > h * 1e10) {
                  N = s * 23.02585092994046 + N;
                  break;
                } else {
                  N = s * 0.30102999566398114 * +b(m / h) + N;
                  break;
                }
              }
            while (0);
            s = +r[(n + 88 + ((v * 12) | 0) + 8) >> 2];
            do
              if (s > 0) {
                h = s * a;
                m = +r[(n + 332 + ((v * 12) | 0) + 8) >> 2];
                if (!(m > h)) break;
                s = +r[_ >> 2];
                if (m > h * 1e10) {
                  N = s * 23.02585092994046 + N;
                  break;
                } else {
                  N = s * 0.30102999566398114 * +b(m / h) + N;
                  break;
                }
              }
            while (0);
            v = (v + 1) | 0;
          } while ((v | 0) != 12);
          r[(u + (C << 2)) >> 2] = N;
        } else {
          N = 281.0574951171875;
          _ = 0;
          do {
            s = +r[(n + (_ << 2)) >> 2];
            do
              if (s > 0) {
                s = s * a;
                m = +r[(n + 244 + (_ << 2)) >> 2];
                if (!(m > s)) break;
                h = +r[(11632 + (_ << 2)) >> 2];
                if (m > s * 1e10) {
                  N = h * 23.02585092994046 + N;
                  break;
                } else {
                  N = h * 0.30102999566398114 * +b(m / s) + N;
                  break;
                }
              }
            while (0);
            _ = (_ + 1) | 0;
          } while ((_ | 0) != 21);
          r[(u + (C << 2)) >> 2] = N;
        }
        if (!B) f[(Ee + 189240 + (V << 5) + (C << 3)) >> 3] = N;
        C = (C + 1) | 0;
      } while ((C | 0) != (G | 0));
      t = I;
      return 0;
    }
    function $r(M) {
      M = M | 0;
      var i = 0,
        o = 0,
        m = 0,
        a = 0,
        u = 0,
        s = 0,
        f = 0,
        T = 0,
        _ = 0,
        B = 0,
        E = 0,
        C = 0,
        I = 0,
        A = 0,
        P = 0,
        O = 0,
        N = 0,
        S = 0,
        n = 0,
        D = 0,
        R = 0,
        p = 0,
        y = 0,
        h = 0,
        b = 0,
        g = 0,
        w = 0;
      g = t;
      t = (t + 768) | 0;
      O = (g + 512) | 0;
      N = (g + 256) | 0;
      S = g;
      n = e[(M + 288) >> 2] | 0;
      R = (n + 16) | 0;
      D = (n + 64) | 0;
      b = +(e[D >> 2] | 0);
      m = -+r[(n + 280) >> 2];
      a = (n + 85800) | 0;
      if (e[a >> 2] | 0) {
        p = 0;
        t = g;
        return p | 0;
      }
      c(S | 0, 0, 256) | 0;
      h = k(1, 6504) | 0;
      e[a >> 2] = h;
      e[(h + 6500) >> 2] = e[(M + 144) >> 2];
      e[(n + 27800) >> 2] = 0;
      e[(n + 27796) >> 2] = 0;
      i = 0;
      do {
        a = 0;
        do {
          r[(n + 21564 + (i << 8) + (a << 2)) >> 2] = 0x56bc7600000000000;
          r[(n + 22588 + (i << 8) + (a << 2)) >> 2] = 0x56bc7600000000000;
          r[(n + 24636 + (i << 8) + (a << 2)) >> 2] = 1;
          r[(n + 23612 + (i << 8) + (a << 2)) >> 2] = 1;
          a = (a + 1) | 0;
        } while ((a | 0) != 64);
        r[(n + 26636 + ((i * 244) | 0)) >> 2] = 0x56bc7600000000000;
        r[(n + 25660 + ((i * 244) | 0)) >> 2] = 0x56bc7600000000000;
        r[(n + 26636 + ((i * 244) | 0) + 4) >> 2] = 0x56bc7600000000000;
        r[(n + 25660 + ((i * 244) | 0) + 4) >> 2] = 0x56bc7600000000000;
        r[(n + 26636 + ((i * 244) | 0) + 8) >> 2] = 0x56bc7600000000000;
        r[(n + 25660 + ((i * 244) | 0) + 8) >> 2] = 0x56bc7600000000000;
        r[(n + 26636 + ((i * 244) | 0) + 12) >> 2] = 0x56bc7600000000000;
        r[(n + 25660 + ((i * 244) | 0) + 12) >> 2] = 0x56bc7600000000000;
        r[(n + 26636 + ((i * 244) | 0) + 16) >> 2] = 0x56bc7600000000000;
        r[(n + 25660 + ((i * 244) | 0) + 16) >> 2] = 0x56bc7600000000000;
        r[(n + 26636 + ((i * 244) | 0) + 20) >> 2] = 0x56bc7600000000000;
        r[(n + 25660 + ((i * 244) | 0) + 20) >> 2] = 0x56bc7600000000000;
        r[(n + 26636 + ((i * 244) | 0) + 24) >> 2] = 0x56bc7600000000000;
        r[(n + 25660 + ((i * 244) | 0) + 24) >> 2] = 0x56bc7600000000000;
        r[(n + 26636 + ((i * 244) | 0) + 28) >> 2] = 0x56bc7600000000000;
        r[(n + 25660 + ((i * 244) | 0) + 28) >> 2] = 0x56bc7600000000000;
        r[(n + 26636 + ((i * 244) | 0) + 32) >> 2] = 0x56bc7600000000000;
        r[(n + 25660 + ((i * 244) | 0) + 32) >> 2] = 0x56bc7600000000000;
        r[(n + 26636 + ((i * 244) | 0) + 36) >> 2] = 0x56bc7600000000000;
        r[(n + 25660 + ((i * 244) | 0) + 36) >> 2] = 0x56bc7600000000000;
        r[(n + 26636 + ((i * 244) | 0) + 40) >> 2] = 0x56bc7600000000000;
        r[(n + 25660 + ((i * 244) | 0) + 40) >> 2] = 0x56bc7600000000000;
        r[(n + 26636 + ((i * 244) | 0) + 44) >> 2] = 0x56bc7600000000000;
        r[(n + 25660 + ((i * 244) | 0) + 44) >> 2] = 0x56bc7600000000000;
        r[(n + 26636 + ((i * 244) | 0) + 48) >> 2] = 0x56bc7600000000000;
        r[(n + 25660 + ((i * 244) | 0) + 48) >> 2] = 0x56bc7600000000000;
        r[(n + 26636 + ((i * 244) | 0) + 52) >> 2] = 0x56bc7600000000000;
        r[(n + 25660 + ((i * 244) | 0) + 52) >> 2] = 0x56bc7600000000000;
        r[(n + 26636 + ((i * 244) | 0) + 56) >> 2] = 0x56bc7600000000000;
        r[(n + 25660 + ((i * 244) | 0) + 56) >> 2] = 0x56bc7600000000000;
        r[(n + 26636 + ((i * 244) | 0) + 60) >> 2] = 0x56bc7600000000000;
        r[(n + 25660 + ((i * 244) | 0) + 60) >> 2] = 0x56bc7600000000000;
        r[(n + 26636 + ((i * 244) | 0) + 64) >> 2] = 0x56bc7600000000000;
        r[(n + 25660 + ((i * 244) | 0) + 64) >> 2] = 0x56bc7600000000000;
        r[(n + 26636 + ((i * 244) | 0) + 68) >> 2] = 0x56bc7600000000000;
        r[(n + 25660 + ((i * 244) | 0) + 68) >> 2] = 0x56bc7600000000000;
        r[(n + 26636 + ((i * 244) | 0) + 72) >> 2] = 0x56bc7600000000000;
        r[(n + 25660 + ((i * 244) | 0) + 72) >> 2] = 0x56bc7600000000000;
        r[(n + 26636 + ((i * 244) | 0) + 76) >> 2] = 0x56bc7600000000000;
        r[(n + 25660 + ((i * 244) | 0) + 76) >> 2] = 0x56bc7600000000000;
        r[(n + 26636 + ((i * 244) | 0) + 80) >> 2] = 0x56bc7600000000000;
        r[(n + 25660 + ((i * 244) | 0) + 80) >> 2] = 0x56bc7600000000000;
        r[(n + 26636 + ((i * 244) | 0) + 84) >> 2] = 0x56bc7600000000000;
        r[(n + 25660 + ((i * 244) | 0) + 84) >> 2] = 0x56bc7600000000000;
        a = (n + 27780 + (i << 2)) | 0;
        o = 0;
        do {
          r[(n + 26636 + ((i * 244) | 0) + 88 + (o << 2)) >> 2] = 0x56bc7600000000000;
          r[(n + 25660 + ((i * 244) | 0) + 88 + (o << 2)) >> 2] = 0x56bc7600000000000;
          r[(n + 26636 + ((i * 244) | 0) + 100 + (o << 2)) >> 2] = 0x56bc7600000000000;
          r[(n + 25660 + ((i * 244) | 0) + 100 + (o << 2)) >> 2] = 0x56bc7600000000000;
          r[(n + 26636 + ((i * 244) | 0) + 112 + (o << 2)) >> 2] = 0x56bc7600000000000;
          r[(n + 25660 + ((i * 244) | 0) + 112 + (o << 2)) >> 2] = 0x56bc7600000000000;
          r[(n + 26636 + ((i * 244) | 0) + 124 + (o << 2)) >> 2] = 0x56bc7600000000000;
          r[(n + 25660 + ((i * 244) | 0) + 124 + (o << 2)) >> 2] = 0x56bc7600000000000;
          r[(n + 26636 + ((i * 244) | 0) + 136 + (o << 2)) >> 2] = 0x56bc7600000000000;
          r[(n + 25660 + ((i * 244) | 0) + 136 + (o << 2)) >> 2] = 0x56bc7600000000000;
          r[(n + 26636 + ((i * 244) | 0) + 148 + (o << 2)) >> 2] = 0x56bc7600000000000;
          r[(n + 25660 + ((i * 244) | 0) + 148 + (o << 2)) >> 2] = 0x56bc7600000000000;
          r[(n + 26636 + ((i * 244) | 0) + 160 + (o << 2)) >> 2] = 0x56bc7600000000000;
          r[(n + 25660 + ((i * 244) | 0) + 160 + (o << 2)) >> 2] = 0x56bc7600000000000;
          r[(n + 26636 + ((i * 244) | 0) + 172 + (o << 2)) >> 2] = 0x56bc7600000000000;
          r[(n + 25660 + ((i * 244) | 0) + 172 + (o << 2)) >> 2] = 0x56bc7600000000000;
          r[(n + 26636 + ((i * 244) | 0) + 184 + (o << 2)) >> 2] = 0x56bc7600000000000;
          r[(n + 25660 + ((i * 244) | 0) + 184 + (o << 2)) >> 2] = 0x56bc7600000000000;
          r[(n + 26636 + ((i * 244) | 0) + 196 + (o << 2)) >> 2] = 0x56bc7600000000000;
          r[(n + 25660 + ((i * 244) | 0) + 196 + (o << 2)) >> 2] = 0x56bc7600000000000;
          r[(n + 26636 + ((i * 244) | 0) + 208 + (o << 2)) >> 2] = 0x56bc7600000000000;
          r[(n + 25660 + ((i * 244) | 0) + 208 + (o << 2)) >> 2] = 0x56bc7600000000000;
          r[(n + 26636 + ((i * 244) | 0) + 220 + (o << 2)) >> 2] = 0x56bc7600000000000;
          r[(n + 25660 + ((i * 244) | 0) + 220 + (o << 2)) >> 2] = 0x56bc7600000000000;
          r[(n + 26636 + ((i * 244) | 0) + 232 + (o << 2)) >> 2] = 0x56bc7600000000000;
          r[(n + 25660 + ((i * 244) | 0) + 232 + (o << 2)) >> 2] = 0x56bc7600000000000;
          e[a >> 2] = 0;
          o = (o + 1) | 0;
        } while ((o | 0) != 3);
        r[(n + 27636 + ((i * 36) | 0)) >> 2] = 10;
        r[(n + 27636 + ((i * 36) | 0) + 4) >> 2] = 10;
        r[(n + 27636 + ((i * 36) | 0) + 8) >> 2] = 10;
        r[(n + 27636 + ((i * 36) | 0) + 12) >> 2] = 10;
        r[(n + 27636 + ((i * 36) | 0) + 16) >> 2] = 10;
        r[(n + 27636 + ((i * 36) | 0) + 20) >> 2] = 10;
        r[(n + 27636 + ((i * 36) | 0) + 24) >> 2] = 10;
        r[(n + 27636 + ((i * 36) | 0) + 28) >> 2] = 10;
        r[(n + 27636 + ((i * 36) | 0) + 32) >> 2] = 10;
        i = (i + 1) | 0;
      } while ((i | 0) != 4);
      r[(n + 27616) >> 2] = 0;
      r[(n + 27612) >> 2] = 0;
      Te(h, b, 1024, 576, 22, (n + 21360) | 0);
      p = (h + 2148) | 0;
      a = e[p >> 2] | 0;
      s = b * 0.0009765625;
      if ((a | 0) > 0) {
        u = s;
        f = 0;
        o = 0;
        do {
          A = e[(h + 1716 + (o << 2)) >> 2] | 0;
          w = +F(+(f | 0) * s);
          P = f;
          f = (A + f) | 0;
          r[(O + (o << 2)) >> 2] = (+F(+((f + -1) | 0) * s) + w) * 0.5;
          w = +F((+(P | 0) + -0.5) * u);
          r[(N + (o << 2)) >> 2] = +F((+(f | 0) + -0.5) * u) - w;
          o = (o + 1) | 0;
        } while ((o | 0) != (a | 0));
        a = e[p >> 2] | 0;
        if ((a | 0) > 0) {
          o = 0;
          do {
            r[(S + (o << 2)) >> 2] = 1;
            o = (o + 1) | 0;
          } while ((o | 0) < (a | 0));
        }
      }
      I = (h + 1204) | 0;
      a = hr((h + 2156) | 0, I, a, O, N, S) | 0;
      if (a) {
        p = a;
        t = g;
        return p | 0;
      }
      if ((e[p >> 2] | 0) > 0) {
        T = (h + 1716) | 0;
        _ = (n + 85796) | 0;
        u = m;
        B = (h + 256) | 0;
        E = 0;
        a = 0;
        do {
          i = (T + (E << 2)) | 0;
          f = e[i >> 2] | 0;
          if ((f | 0) > 0) {
            o = 0;
            s = 1e37;
            do {
              w = +d(10, +((+L(R, +(a | 0) * b * 9.765625e-7 * 1e3) + -20) * 0.1));
              f = e[i >> 2] | 0;
              w = +(f | 0) * w;
              s = s > w ? w : s;
              o = (o + 1) | 0;
              a = (a + 1) | 0;
            } while ((o | 0) < (f | 0));
          } else s = 1e37;
          r[((e[_ >> 2] | 0) + 212 + (E << 2)) >> 2] = s;
          s = (+r[(O + (E << 2)) >> 2] * 0.10000000149011612 + -1) * 20;
          s = s > 6 ? 30 : s;
          r[(B + (E << 2)) >> 2] =
            +(f | 0) * +d(10, +((e[D >> 2] | 0) < 44e3 ? 2.2 : ((s < u ? u : s) + -8) * 0.1));
          E = (E + 1) | 0;
        } while ((E | 0) < (e[p >> 2] | 0));
      }
      A = (h + 2160) | 0;
      P = (n + 21452) | 0;
      Te(A, b, 256, 192, 13, P);
      C = (h + 4308) | 0;
      a = e[C >> 2] | 0;
      s = b * 0.00390625;
      if ((a | 0) > 0) {
        u = s;
        f = 0;
        o = 0;
        do {
          T = e[(A + 1716 + (o << 2)) >> 2] | 0;
          w = +F(+(f | 0) * s);
          i = f;
          f = (T + f) | 0;
          r[(O + (o << 2)) >> 2] = (+F(+((f + -1) | 0) * s) + w) * 0.5;
          w = +F((+(i | 0) + -0.5) * u);
          r[(N + (o << 2)) >> 2] = +F((+(f | 0) + -0.5) * u) - w;
          o = (o + 1) | 0;
        } while ((o | 0) != (a | 0));
        a = e[C >> 2] | 0;
        if ((a | 0) > 0) {
          T = (h + 3876) | 0;
          i = (n + 85796) | 0;
          E = (h + 2416) | 0;
          _ = 0;
          a = 0;
          while (1) {
            u = +r[(O + (_ << 2)) >> 2];
            if (!(u >= 13)) s = -8.25;
            else s = (24 - u) * -0.75 - (u + -13) * 0.40909090638160706;
            r[(S + (_ << 2)) >> 2] = +d(10, +(s * 0.1));
            B = (T + (_ << 2)) | 0;
            f = e[B >> 2] | 0;
            if ((f | 0) > 0) {
              o = 0;
              s = 1e37;
              do {
                w = +d(10, +((+L(R, +(a | 0) * b * 390625e-11 * 1e3) + -20) * 0.1));
                f = e[B >> 2] | 0;
                w = +(f | 0) * w;
                s = s > w ? w : s;
                o = (o + 1) | 0;
                a = (a + 1) | 0;
              } while ((o | 0) < (f | 0));
              o = a;
            } else {
              o = a;
              s = 1e37;
            }
            r[((e[i >> 2] | 0) + 468 + (_ << 2)) >> 2] = s;
            s = (u * 0.0833333358168602 + -1) * 7;
            if (u > 12) s = (+Ve(+(s + 1)) * 3.1 + 1) * s;
            if (u < 12) s = (+Ve(+(1 - s)) * 2.3 + 1) * s;
            u = s > 6 ? 30 : s;
            r[(E + (_ << 2)) >> 2] =
              +(f | 0) * +d(10, +((e[D >> 2] | 0) < 44e3 ? 2.2 : ((u < m ? m : u) + -8) * 0.1));
            _ = (_ + 1) | 0;
            a = e[C >> 2] | 0;
            if ((_ | 0) >= (a | 0)) break;
            else a = o;
          }
        }
      }
      a = hr((h + 4316) | 0, (h + 3364) | 0, a, O, N, S) | 0;
      if (a) {
        p = a;
        t = g;
        return p | 0;
      }
      r[2882] = 3.6517412662506104;
      r[2894] = 31.62277603149414;
      Ot(n);
      s = b;
      r[(h + 6496) >> 2] = +v(+(-44209.633785485676 / s));
      a = (n + 192) | 0;
      m = +r[a >> 2];
      r[a >> 2] = (m != m) | (0 != 0) | (m == 0) ? ((e[(n + 96) >> 2] | 0) != 0 ? 1 : 3.5) : m;
      a = e[p >> 2] | 0;
      if ((a | 0) > 0) {
        o = (a + -1) | 0;
        f = 0;
        do {
          i = (I + (f << 3) + 4) | 0;
          if ((e[i >> 2] | 0) > (o | 0)) e[i >> 2] = o;
          f = (f + 1) | 0;
        } while ((f | 0) < (a | 0));
      }
      m = +d(10, +(((+(e[(n + 76) >> 2] | 0) * 576) / s) * -1.2));
      f = (n + 85796) | 0;
      S = e[f >> 2] | 0;
      r[(S + 16) >> 2] = m;
      r[(S + 8) >> 2] = 0.009999999776482582;
      r[(S + 12) >> 2] = 1;
      if ((e[(n + 208) >> 2] | 0) != -1) {
        u = +(e[D >> 2] | 0) * 0.0009765625;
        m = 0;
        s = 0;
        a = 0;
        do {
          s = s + u;
          w = 1 / +d(10, +(+L(R, s) * 0.10000000149011612));
          o = e[f >> 2] | 0;
          r[(o + 724 + (a << 2)) >> 2] = w;
          m = w + m;
          a = (a + 1) | 0;
        } while ((a | 0) != 512);
        m = 1 / m;
        a = 511;
        while (1) {
          R = (o + 724 + (a << 2)) | 0;
          r[R >> 2] = +r[R >> 2] * m;
          if ((a | 0) > 0) a = (a + -1) | 0;
          else break;
        }
      }
      i = e[C >> 2] | 0;
      u = +r[(M + 264) >> 2];
      m = +r[(M + 268) >> 2];
      u = u < 0 ? 4.400000095367432 : u;
      r[(h + 6488) >> 2] = u;
      r[(h + 6484) >> 2] = u;
      r[(h + 6480) >> 2] = u;
      r[(h + 6492) >> 2] = m < 0 ? 25 : m;
      o = e[(M + 164) >> 2] | 0;
      if ((o | 0) < 4) s = -0.7400000095367432;
      else {
        s = +r[(11720 + (o << 2)) >> 2];
        s =
          ((s - +r[(11720 + ((o + 1) << 2)) >> 2]) * +r[(M + 160) >> 2] + s) * 0.10000000149011612;
      }
      if ((i | 0) > 0) {
        a = (i | 0) > 1;
        m = +(i | 0);
        o = 0;
        do {
          r[(A + (o << 2)) >> 2] = +d(10, +(s * (+((i - o) | 0) / m)));
          o = (o + 1) | 0;
        } while ((i | 0) > (o | 0));
        if (a) {
          if ((i | 0) < 64) y = 50;
        } else {
          i = 1;
          y = 50;
        }
      } else {
        i = 0;
        y = 50;
      }
      if ((y | 0) == 50)
        do {
          r[(A + (i << 2)) >> 2] = 1;
          i = (i + 1) | 0;
        } while ((i | 0) != 64);
      i = e[p >> 2] | 0;
      if ((i | 0) > 0) {
        o = (i | 0) > 1;
        m = +(i | 0);
        a = 0;
        do {
          r[(h + (a << 2)) >> 2] = +d(10, +(s * (+((i - a) | 0) / m)));
          a = (a + 1) | 0;
        } while ((i | 0) > (a | 0));
        if (o) {
          if ((i | 0) < 64) y = 57;
        } else {
          i = 1;
          y = 57;
        }
      } else {
        i = 0;
        y = 57;
      }
      if ((y | 0) == 57)
        do {
          r[(h + (i << 2)) >> 2] = 1;
          i = (i + 1) | 0;
        } while ((i | 0) != 64);
      p = (h + 4320) | 0;
      l(p | 0, h | 0, 2160) | 0;
      Te(p, b, 1024, 192, 13, P);
      p = 0;
      t = g;
      return p | 0;
    }
    function ur(c, u, w, E, _, t, h) {
      c = c | 0;
      u = u | 0;
      w = w | 0;
      E = E | 0;
      _ = +_;
      t = +t;
      h = h | 0;
      var n = 0,
        i = 0,
        l = 0,
        a = 0,
        d = 0,
        f = 0,
        m = 0,
        s = 0,
        e = 0,
        o = 0,
        p = 0,
        S = 0,
        v = 0;
      S = t * 2;
      if ((h | 0) <= 0) return;
      if (t > 0) a = 0;
      else {
        f = 0;
        do {
          i = +r[(c + 512 + (f << 2)) >> 2];
          l = +r[(c + 768 + (f << 2)) >> 2];
          e = +r[(u + (f << 2)) >> 2];
          o = +r[(u + 256 + (f << 2)) >> 2];
          a = (u + 512 + (f << 2)) | 0;
          t = +r[a >> 2];
          d = (u + 768 + (f << 2)) | 0;
          n = +r[d >> 2];
          if (!(!(o <= e * 1.5800000429153442) | !(e <= o * 1.5800000429153442))) {
            o = +r[(w + (f << 2)) >> 2];
            e = o * l;
            o = o * i;
            e = n < e ? n : e;
            o = t < o ? t : o;
            t = t > e ? t : e;
            n = n > o ? n : o;
          }
          r[a >> 2] = t > i ? i : t;
          r[d >> 2] = n > l ? l : n;
          f = (f + 1) | 0;
        } while ((f | 0) != (h | 0));
        return;
      }
      do {
        o = +r[(c + 512 + (a << 2)) >> 2];
        p = +r[(c + 768 + (a << 2)) >> 2];
        n = +r[(u + (a << 2)) >> 2];
        t = +r[(u + 256 + (a << 2)) >> 2];
        f = (u + 512 + (a << 2)) | 0;
        l = +r[f >> 2];
        d = (u + 768 + (a << 2)) | 0;
        i = +r[d >> 2];
        if (!(t <= n * 1.5800000429153442) | !(n <= t * 1.5800000429153442)) e = i;
        else {
          e = +r[(w + (a << 2)) >> 2];
          s = e * p;
          e = e * o;
          s = i < s ? i : s;
          e = l < e ? l : e;
          l = l > s ? l : s;
          e = i > e ? i : e;
        }
        i = +r[(E + (a << 2)) >> 2] * _;
        s = n > i ? n : i;
        t = t > i ? t : i;
        n = l > i ? l : i;
        i = e > i ? e : i;
        m = n + i;
        if (m > 0 ? ((v = S * (s < t ? s : t)), v < m) : 0) {
          s = v / m;
          n = s * n;
          i = s * i;
        }
        s = n < l ? n : l;
        e = i < e ? i : e;
        r[f >> 2] = s > o ? o : s;
        r[d >> 2] = e > p ? p : e;
        a = (a + 1) | 0;
      } while ((a | 0) != (h | 0));
      return;
    }
    function Ae(f, h, m, u, l) {
      f = f | 0;
      h = h | 0;
      m = m | 0;
      u = u | 0;
      l = l | 0;
      var i = 0,
        n = 0,
        a = 0,
        t = 0,
        o = 0,
        p = 0,
        _ = 0,
        c = 0,
        s = 0,
        d = 0,
        w = 0;
      d = e[(f + 2152) >> 2] | 0;
      e: do
        if ((d | 0) > 0) {
          s = e[(f + 2148) >> 2] | 0;
          c = 0;
          a = 0;
          i = 0;
          n = 0;
          while (1) {
            t = e[(f + 2060 + (i << 2)) >> 2] | 0;
            if ((c | 0) < (((t | 0) < (s | 0) ? t : s) | 0)) {
              o = (s | 0) > (t | 0) ? t : s;
              t = c;
              do {
                a = +r[(h + (t << 2)) >> 2] + a;
                n = +r[(m + (t << 2)) >> 2] + n;
                t = (t + 1) | 0;
              } while ((t | 0) != (o | 0));
            } else o = c;
            if ((o | 0) >= (s | 0)) break;
            w = +r[(f + 1112 + (i << 2)) >> 2];
            p = 1 - w;
            t = (h + (o << 2)) | 0;
            _ = (m + (o << 2)) | 0;
            n = +r[_ >> 2] * w + n;
            r[(u + (i << 2)) >> 2] = +r[t >> 2] * w + a;
            r[(l + (i << 2)) >> 2] = n;
            i = (i + 1) | 0;
            if ((i | 0) < (d | 0)) {
              c = (o + 1) | 0;
              a = +r[t >> 2] * p;
              n = +r[_ >> 2] * p;
            } else break e;
          }
          r[(u + (i << 2)) >> 2] = a;
          r[(l + (i << 2)) >> 2] = n;
          i = (i + 1) | 0;
        } else i = 0;
      while (0);
      if ((i | 0) >= (d | 0)) return;
      do {
        r[(u + (i << 2)) >> 2] = 0;
        r[(l + (i << 2)) >> 2] = 0;
        i = (i + 1) | 0;
      } while ((i | 0) != (d | 0));
      return;
    }
    function Te(s, o, n, i, w, v) {
      s = s | 0;
      o = +o;
      n = n | 0;
      i = i | 0;
      w = w | 0;
      v = v | 0;
      var h = 0,
        a = 0,
        f = 0,
        u = 0,
        l = 0,
        m = 0,
        S = 0,
        p = 0,
        _ = 0,
        E = 0,
        b = 0,
        k = 0;
      E = t;
      t = (t + 2320) | 0;
      p = (E + 2052) | 0;
      _ = E;
      h = +(i | 0) * 2;
      S = o / h;
      u = +(n | 0);
      h = u / h;
      c(_ | 0, 0, 2052) | 0;
      u = o / u;
      m = ((n | 0) / 2) | 0;
      a = 0;
      i = 0;
      while (1) {
        if ((i | 0) >= 64) {
          n = i;
          break;
        }
        b = +(a | 0) * u;
        o = +F(b);
        r[(p + (i << 2)) >> 2] = b;
        n = a;
        while (1)
          if (((n | 0) > (m | 0)) | !(+F(+(n | 0) * u) - o < 0.34)) break;
          else n = (n + 1) | 0;
        f = (n - a) | 0;
        e[(s + 1716 + (i << 2)) >> 2] = f;
        r[(s + 512 + (i << 2)) >> 2] = (f | 0) > 0 ? 1 / +(f | 0) : 0;
        f = (i + 1) | 0;
        if ((n | 0) > (a | 0)) {
          do {
            e[(_ + (a << 2)) >> 2] = i;
            a = (a + 1) | 0;
          } while ((a | 0) != (n | 0));
        } else n = a;
        if ((n | 0) > (m | 0)) {
          a = m;
          n = f;
          break;
        } else {
          a = n;
          i = f;
        }
      }
      r[(p + (n << 2)) >> 2] = +(a | 0) * u;
      e[(s + 2152) >> 2] = w;
      f = (s + 2148) | 0;
      e[f >> 2] = n;
      if ((n | 0) > 0) {
        i = 0;
        n = 0;
        while (1) {
          a = e[(s + 1716 + (i << 2)) >> 2] | 0;
          o = +F(+(((((a | 0) / 2) | 0) + n) | 0) * u);
          r[(s + 768 + (i << 2)) >> 2] = +d(
            10,
            +((1 - +N(+(o < 15.5 ? o * 0.2026833970057931 : 3.141592653589793))) * 1.25 + -2.5)
          );
          i = (i + 1) | 0;
          if ((i | 0) < (e[f >> 2] | 0)) n = (a + n) | 0;
          else break;
        }
        if ((i | 0) < 64) l = 13;
      } else {
        i = 0;
        l = 13;
      }
      if ((l | 0) == 13)
        while (1) {
          r[(s + 768 + (i << 2)) >> 2] = 1;
          i = (i + 1) | 0;
          if ((i | 0) == 64) break;
          else l = 13;
        }
      if ((w | 0) <= 0) {
        t = E;
        return;
      }
      i = 0;
      do {
        n = e[(v + (i << 2)) >> 2] | 0;
        a = i;
        i = (i + 1) | 0;
        f = e[(v + (i << 2)) >> 2] | 0;
        k = ~~+x(+((+(n | 0) + -0.5) * h + 0.5));
        l = ~~+x(+((+(f | 0) + -0.5) * h + 0.5));
        l = e[(_ + (((l | 0) > (m | 0) ? m : l) << 2)) >> 2] | 0;
        e[(s + 1972 + (a << 2)) >> 2] =
          ((((e[(_ + (((k | 0) < 0 ? 0 : k) << 2)) >> 2] | 0) + l) | 0) / 2) | 0;
        e[(s + 2060 + (a << 2)) >> 2] = l;
        o = +r[(p + (l << 2)) >> 2];
        o = (+(f | 0) * S - o) / (+r[(p + ((l + 1) << 2)) >> 2] - o);
        if (!(o < 0)) {
          if (o > 1) o = 1;
        } else o = 0;
        r[(s + 1112 + (a << 2)) >> 2] = o;
        o = +F(+(n | 0) * S);
        r[(s + 1024 + (a << 2)) >> 2] = +d(
          10,
          +((1 - +N(+(o < 15.5 ? o * 0.2026833970057931 : 3.141592653589793))) * 1.25 + -2.5)
        );
      } while ((i | 0) != (w | 0));
      t = E;
      return;
    }
    function hr(w, h, u, f, s, i) {
      w = w | 0;
      h = h | 0;
      u = u | 0;
      f = f | 0;
      s = s | 0;
      i = i | 0;
      var n = 0,
        a = 0,
        o = 0,
        d = 0,
        S = 0,
        E = 0,
        p = 0,
        m = 0,
        _ = 0;
      _ = t;
      t = (t + 16384) | 0;
      m = _;
      c(m | 0, 0, 16384) | 0;
      p = (u | 0) > 0;
      if (p) {
        a = 0;
        do {
          S = +r[(f + (a << 2)) >> 2];
          E = +r[(i + (a << 2)) >> 2];
          n = 0;
          do {
            o = S - +r[(f + (n << 2)) >> 2];
            o = o * (!(o >= 0) ? 1.5 : 3);
            if (!(o >= 0.5) | !(o <= 2.5)) d = 0;
            else {
              d = o + -0.5;
              d = (d * d - d * 2) * 8;
            }
            o = o + 0.474;
            o = o * 7.5 + 15.811389 - +ae(+(o * o + 1)) * 17.5;
            if (!(o <= -60)) o = +v(+((o + d) * 0.23025850929940458)) * 1.5130440282194817;
            else o = 0;
            r[(m + (a << 8) + (n << 2)) >> 2] = +r[(s + (n << 2)) >> 2] * o * E;
            n = (n + 1) | 0;
          } while ((n | 0) != (u | 0));
          a = (a + 1) | 0;
        } while ((a | 0) != (u | 0));
        if (p) {
          f = 0;
          i = 0;
          do {
            n = 0;
            do {
              if (+r[(m + (f << 8) + (n << 2)) >> 2] > 0) break;
              n = (n + 1) | 0;
            } while ((n | 0) < (u | 0));
            e[(h + (f << 3)) >> 2] = n;
            s = u;
            while (1) {
              a = (s + -1) | 0;
              if ((s | 0) <= 1) break;
              if (+r[(m + (f << 8) + (a << 2)) >> 2] > 0) break;
              else s = a;
            }
            e[(h + (f << 3) + 4) >> 2] = a;
            i = (i + s - n) | 0;
            f = (f + 1) | 0;
          } while ((f | 0) != (u | 0));
          i = i << 2;
        } else i = 0;
      } else i = 0;
      i = W(i) | 0;
      e[w >> 2] = i;
      i = (i | 0) == 0;
      if (i | (p ^ 1)) {
        u = (i << 31) >> 31;
        t = _;
        return u | 0;
      } else {
        s = 0;
        i = 0;
      }
      do {
        n = e[(h + (s << 3)) >> 2] | 0;
        a = e[(h + (s << 3) + 4) >> 2] | 0;
        if ((n | 0) <= (a | 0)) {
          l(
            ((e[w >> 2] | 0) + (i << 2)) | 0,
            (m + (s << 8) + (n << 2)) | 0,
            ((a + 1 - n) << 2) | 0
          ) | 0;
          i = (i + 1 + a - n) | 0;
        }
        s = (s + 1) | 0;
      } while ((s | 0) != (u | 0));
      i = 0;
      t = _;
      return i | 0;
    }
    function Jr(r) {
      r = r | 0;
      e[(r + 85824) >> 2] = ((e[(r + 85756) >> 2] & 4) | 0) == 0 ? 6 : 5;
      return;
    }
    function Xr(n, m, S, k) {
      n = n | 0;
      m = m | 0;
      S = S | 0;
      k = k | 0;
      var _ = 0,
        p = 0,
        h = 0,
        u = 0,
        o = 0,
        a = 0,
        M = 0,
        E = 0,
        g = 0,
        i = 0,
        f = 0,
        b = 0,
        w = 0,
        R = 0,
        G = 0,
        X = 0,
        K = 0,
        Y = 0,
        A = 0,
        F = 0,
        I = 0,
        D = 0,
        W = 0,
        q = 0,
        O = 0,
        B = 0,
        V = 0,
        z = 0,
        L = 0,
        U = 0,
        N = 0,
        C = 0,
        j = 0,
        y = 0,
        x = 0;
      y = t;
      t = (t + 10592) | 0;
      O = (y + 5336) | 0;
      B = (y + 3032) | 0;
      z = (y + 2408) | 0;
      N = (y + 104) | 0;
      V = (y + 40) | 0;
      U = (y + 24) | 0;
      L = (y + 8) | 0;
      j = y;
      I = (n + 116) | 0;
      D = (n + 84744) | 0;
      e[D >> 2] = e[I >> 2];
      q = T(n, B) | 0;
      C = (n + 76) | 0;
      e[B >> 2] = ((q | 0) / (e[C >> 2] | 0)) | 0;
      q = (n + 112) | 0;
      e[D >> 2] = e[q >> 2];
      e[D >> 2] = 1;
      e[O >> 2] = ee(n) | 0;
      if ((e[I >> 2] | 0) >= 1) {
        o = 1;
        while (1) {
          e[D >> 2] = o;
          e[(V + (o << 2)) >> 2] = T(n, O) | 0;
          if ((o | 0) < (e[I >> 2] | 0)) o = (o + 1) | 0;
          else break;
        }
      }
      p = e[C >> 2] | 0;
      e: do
        if ((p | 0) > 0) {
          b = (n + 84756) | 0;
          R = (n + 72) | 0;
          _ = (n + 84916) | 0;
          h = (n + 84908) | 0;
          u = (n + 84912) | 0;
          o = 1;
          g = 0;
          w = 0;
          do {
            M = (L + (w << 3)) | 0;
            a = ze(n, m, M, e[B >> 2] | 0, w, 0) | 0;
            if ((e[b >> 2] | 0) == 2) {
              f = 0;
              do {
                A = (n + 304 + ((w * 10504) | 0) + (f << 2)) | 0;
                x = +r[A >> 2];
                F = (n + 304 + ((w * 10504) | 0) + 5252 + (f << 2)) | 0;
                E = +r[F >> 2];
                r[A >> 2] = (E + x) * 0.7071067690849304;
                r[F >> 2] = (x - E) * 0.7071067690849304;
                f = (f + 1) | 0;
              } while ((f | 0) != 576);
              ge(M, +r[(S + (w << 2)) >> 2], e[B >> 2] | 0, a);
            }
            a = e[R >> 2] | 0;
            if ((a | 0) > 0) {
              i = 0;
              do {
                f = (n + 304 + ((w * 10504) | 0) + ((i * 5252) | 0)) | 0;
                E = +v(+(3.5 - +r[(m + (w << 3) + (i << 2)) >> 2] * 0.0033333333333333335)) + 1;
                if ((e[(n + 304 + ((w * 10504) | 0) + ((i * 5252) | 0) + 4788) >> 2] | 0) == 2)
                  E = +r[_ >> 2] - (2.56 / E + -0.14);
                else E = +r[u >> 2] - (1.28 / E + -0.05);
                r[h >> 2] = +d(10, +(E * 0.1));
                Se(n, f);
                a =
                  (J(
                    n,
                    (k + ((w * 976) | 0) + ((i * 488) | 0)) | 0,
                    f,
                    (z + ((w * 312) | 0) + ((i * 156) | 0)) | 0
                  ) |
                    0) ==
                  0;
                o = a ? o : 0;
                e[(U + (w << 3) + (i << 2)) >> 2] = 126;
                g = ((e[(L + (w << 3) + (i << 2)) >> 2] | 0) + g) | 0;
                i = (i + 1) | 0;
                a = e[R >> 2] | 0;
              } while ((i | 0) < (a | 0));
            }
            w = (w + 1) | 0;
            p = e[C >> 2] | 0;
          } while ((w | 0) < (p | 0));
          b = a;
          if ((p | 0) > 0) {
            if ((g | 0) <= 0) {
              h = b;
              u = b;
              i = 0;
              while (1) {
                if ((h | 0) > 0) {
                  a = 0;
                  do {
                    h = (U + (i << 3) + (a << 2)) | 0;
                    _ = e[(L + (i << 3) + (a << 2)) >> 2] | 0;
                    if ((e[h >> 2] | 0) > (_ | 0)) {
                      e[h >> 2] = _;
                      u = b;
                    }
                    a = (a + 1) | 0;
                  } while ((a | 0) < (u | 0));
                  _ = u;
                } else {
                  _ = u;
                  u = h;
                }
                i = (i + 1) | 0;
                if ((i | 0) >= (p | 0)) break e;
                else {
                  h = u;
                  u = _;
                }
              }
            }
            h = (b | 0) > 0;
            f = 0;
            do {
              if (h) {
                _ = e[(V + (e[I >> 2] << 2)) >> 2] | 0;
                M = (g | 0) > (_ | 0);
                i = 0;
                do {
                  a = (L + (f << 3) + (i << 2)) | 0;
                  u = e[a >> 2] | 0;
                  if (M) {
                    u = ((s(u, _) | 0) / (g | 0)) | 0;
                    e[a >> 2] = u;
                  }
                  a = (U + (f << 3) + (i << 2)) | 0;
                  if ((e[a >> 2] | 0) > (u | 0)) e[a >> 2] = u;
                  i = (i + 1) | 0;
                } while ((i | 0) < (b | 0));
              }
              f = (f + 1) | 0;
            } while ((f | 0) < (p | 0));
          }
        } else {
          R = (n + 72) | 0;
          o = 1;
        }
      while (0);
      G = (o | 0) == 0;
      X = (n + 124) | 0;
      K = (n + 85824) | 0;
      Y = (n + 85096) | 0;
      A = (n + 85092) | 0;
      F = (O + 2304) | 0;
      S = 0;
      a = 0;
      e: while (1) {
        if ((S | 0) >= (p | 0)) {
          if (!G ? (e[X >> 2] | 0) == 0 : 0) o = 1;
          else o = e[q >> 2] | 0;
          e[D >> 2] = o;
          u = e[I >> 2] | 0;
          r: do
            if ((o | 0) < (u | 0))
              do {
                if ((a | 0) <= (e[(V + (o << 2)) >> 2] | 0)) break r;
                o = (o + 1) | 0;
                e[D >> 2] = o;
              } while ((o | 0) < (u | 0));
          while (0);
          k = (a | 0) > (T(n, j) | 0);
          p = e[C >> 2] | 0;
          o = (p | 0) > 0;
          if (!k) break;
          if (!o) {
            S = 0;
            a = 0;
            continue;
          }
          h = e[R >> 2] | 0;
          _ = (h | 0) > 0;
          a = 0;
          b = z;
          while (1) {
            if (_) {
              o = 0;
              u = b;
              while (1) {
                f = (z + ((a * 312) | 0) + ((o * 156) | 0)) | 0;
                g = e[(n + 304 + ((a * 10504) | 0) + ((o * 5252) | 0) + 4856) >> 2] | 0;
                if ((g | 0) > 0) {
                  M = (g | 0) > 1;
                  i = 0;
                  while (1) {
                    E = +(i | 0);
                    r[f >> 2] = (E * E * 5991735537190083e-20 + 1) * +r[f >> 2];
                    i = (i + 1) | 0;
                    if ((i | 0) == (g | 0)) break;
                    else f = (f + 4) | 0;
                  }
                  f = (u + ((M ? g : 1) << 2)) | 0;
                }
                if (
                  (e[(n + 304 + ((a * 10504) | 0) + ((o * 5252) | 0) + 4788) >> 2] | 0) == 2
                    ? ((W = e[(n + 304 + ((a * 10504) | 0) + ((o * 5252) | 0) + 4852) >> 2] | 0),
                      (W | 0) < 13)
                    : 0
                ) {
                  i = W;
                  while (1) {
                    E = +(i | 0);
                    E = E * E * 0.0001715976331360947 + 1;
                    m = (f + 4) | 0;
                    r[f >> 2] = E * +r[f >> 2];
                    k = (f + 8) | 0;
                    r[m >> 2] = E * +r[m >> 2];
                    r[k >> 2] = +r[k >> 2] * E;
                    i = (i + 1) | 0;
                    if ((i | 0) == 13) break;
                    else f = (f + 12) | 0;
                  }
                }
                x = +(e[(U + (a << 3) + (o << 2)) >> 2] | 0);
                k = (L + (a << 3) + (o << 2)) | 0;
                E = +(e[k >> 2] | 0) * 0.9;
                e[k >> 2] = ~~(x > E ? x : E);
                o = (o + 1) | 0;
                if ((o | 0) >= (h | 0)) break;
                else u = (u + 156) | 0;
              }
            }
            a = (a + 1) | 0;
            if ((a | 0) < (p | 0)) b = (b + 312) | 0;
            else {
              S = 0;
              a = 0;
              continue e;
            }
          }
        }
        if ((e[R >> 2] | 0) > 0) {
          m = 0;
          do {
            k = (n + 304 + ((S * 10504) | 0) + ((m * 5252) | 0)) | 0;
            r[O >> 2] = 0;
            w = e[(n + 304 + ((S * 10504) | 0) + ((m * 5252) | 0) + 5208) >> 2] | 0;
            r[(n + 304 + ((S * 10504) | 0) + ((m * 5252) | 0) + 4764) >> 2] = 0;
            c((N + (w << 2)) | 0, 0, ((576 - w) << 2) | 0) | 0;
            H[e[K >> 2] & 7](k, N, w, O);
            if (+r[O >> 2] > 9.999999682655225e-21) {
              o = ((e[Y >> 2] | 0) >>> 1) & 1;
              u = (n + 304 + ((S * 10504) | 0) + ((m * 5252) | 0) + 4864) | 0;
              if ((e[u >> 2] | 0) > 0) {
                f = 0;
                do {
                  e[(n + 84936 + (f << 2)) >> 2] = o;
                  f = (f + 1) | 0;
                } while ((f | 0) < (e[u >> 2] | 0));
              }
              i = e[(L + (S << 3) + (m << 2)) >> 2] | 0;
              if (i) {
                w = (z + ((S * 312) | 0) + ((m * 156) | 0)) | 0;
                u = e[(U + (S << 3) + (m << 2)) >> 2] | 0;
                p = e[A >> 2] | 0;
                c(F | 0, 0, 2304) | 0;
                _ = (i + -42) | 0;
                h = (n + 304 + ((S * 10504) | 0) + ((m * 5252) | 0) + 4768) | 0;
                b = u;
                o = i;
                f = 0;
                i = (((u + i) | 0) / 2) | 0;
                while (1) {
                  e[A >> 2] = (i | 0) > (_ | 0) ? 0 : p;
                  if ((xe(n, k, w, N, m, i) | 0) >= 1) {
                    g = (i + 32) | 0;
                    M = (o - g) | 0;
                    i = (((o + g) | 0) / 2) | 0;
                    if (!f) f = 0;
                    else {
                      l(k | 0, O | 0, 5252) | 0;
                      l(N | 0, B | 0, 2304) | 0;
                      f = 2;
                    }
                  } else {
                    i = e[h >> 2] | 0;
                    l(O | 0, k | 0, 5252) | 0;
                    l(B | 0, N | 0, 2304) | 0;
                    i = (i + -32) | 0;
                    g = b;
                    o = i;
                    M = (i - b) | 0;
                    f = 1;
                    i = (((i + b) | 0) / 2) | 0;
                  }
                  if ((M | 0) > 12) b = g;
                  else break;
                }
                e[A >> 2] = p;
                if ((f | 0) == 2)
                  l((n + 304 + ((S * 10504) | 0) + ((m * 5252) | 0) + 2304) | 0, F | 0, 2304) | 0;
                if (e[Y >> 2] & 1) kr(n, k, w, N);
                a =
                  ((e[h >> 2] | 0) +
                    a +
                    (e[(n + 304 + ((S * 10504) | 0) + ((m * 5252) | 0) + 4844) >> 2] | 0)) |
                  0;
              }
            } else c((n + 304 + ((S * 10504) | 0) + ((m * 5252) | 0) + 2304) | 0, 0, 2304) | 0;
            m = (m + 1) | 0;
          } while ((m | 0) < (e[R >> 2] | 0));
          p = e[C >> 2] | 0;
        }
        S = (S + 1) | 0;
      }
      if (!o) {
        F = e[j >> 2] | 0;
        P(n, F);
        t = y;
        return;
      }
      u = (n + 304) | 0;
      o = (n + 36) | 0;
      _ = e[R >> 2] | 0;
      h = 0;
      do {
        if ((_ | 0) > 0) {
          p = 0;
          do {
            _ = (n + 304 + ((h * 10504) | 0) + ((p * 5252) | 0)) | 0;
            Oe(n, h, p, u);
            if ((e[o >> 2] | 0) == 1) oe(n, _);
            le(n, _);
            p = (p + 1) | 0;
            _ = e[R >> 2] | 0;
          } while ((p | 0) < (_ | 0));
          p = e[C >> 2] | 0;
        }
        h = (h + 1) | 0;
      } while ((h | 0) < (p | 0));
      F = e[j >> 2] | 0;
      P(n, F);
      t = y;
      return;
    }
    function Kr(i, D, n, L) {
      i = i | 0;
      D = D | 0;
      n = n | 0;
      L = L | 0;
      var o = 0,
        l = 0,
        f = 0,
        y = 0,
        a = 0,
        h = 0,
        _ = 0,
        u = 0,
        p = 0,
        x = 0,
        m = 0,
        A = 0,
        O = 0,
        v = 0,
        N = 0,
        k = 0,
        b = 0,
        F = 0,
        E = 0,
        S = 0,
        I = 0,
        g = 0,
        R = 0,
        w = 0,
        C = 0,
        B = 0;
      w = t;
      t = (t + 9936) | 0;
      I = w;
      b = (w + 9932) | 0;
      A = (w + 9928) | 0;
      N = (w + 9304) | 0;
      F = (w + 88) | 0;
      S = (w + 24) | 0;
      k = (w + 8) | 0;
      R = (w + 4) | 0;
      c(F | 0, 0, 9216) | 0;
      E = (i + 152) | 0;
      if (!(e[E >> 2] | 0)) {
        o = (i + 116) | 0;
        n = (i + 84744) | 0;
        e[n >> 2] = e[o >> 2];
        T(i, A) | 0;
        y = e[(i + 52144) >> 2] | 0;
        e[n >> 2] = e[(i + 112) >> 2];
        e[n >> 2] = 1;
        e[b >> 2] = ee(i) | 0;
        f = e[o >> 2] | 0;
        if ((f | 0) >= 1) {
          l = 1;
          while (1) {
            e[n >> 2] = l;
            e[(S + (l << 2)) >> 2] = T(i, b) | 0;
            f = e[o >> 2] | 0;
            if ((l | 0) < (f | 0)) l = (l + 1) | 0;
            else break;
          }
        }
        O = e[(S + (f << 2)) >> 2] | 0;
      } else {
        e[(i + 84744) >> 2] = 0;
        O = T(i, A) | 0;
        e[S >> 2] = O;
        y = e[(i + 52144) >> 2] | 0;
      }
      g = (i + 76) | 0;
      f = e[g >> 2] | 0;
      if ((f | 0) > 0) {
        u = (i + 84756) | 0;
        _ = (i + 72) | 0;
        o = (i + 84912) | 0;
        x = (i + 84908) | 0;
        l = 1;
        n = 0;
        m = 0;
        do {
          ze(i, D, (k + (m << 3)) | 0, e[A >> 2] | 0, m, 0) | 0;
          if ((e[u >> 2] | 0) == 2) {
            h = 0;
            do {
              a = (i + 304 + ((m * 10504) | 0) + (h << 2)) | 0;
              B = +r[a >> 2];
              f = (i + 304 + ((m * 10504) | 0) + 5252 + (h << 2)) | 0;
              C = +r[f >> 2];
              r[a >> 2] = (C + B) * 0.7071067690849304;
              r[f >> 2] = (B - C) * 0.7071067690849304;
              h = (h + 1) | 0;
            } while ((h | 0) != 576);
          }
          a = e[_ >> 2] | 0;
          if ((a | 0) > 0) {
            p = 0;
            do {
              a = (i + 304 + ((m * 10504) | 0) + ((p * 5252) | 0)) | 0;
              r[x >> 2] = +d(10, +(+r[o >> 2] * 0.1));
              Se(i, a);
              a =
                (J(
                  i,
                  (L + ((m * 976) | 0) + ((p * 488) | 0)) | 0,
                  a,
                  (N + ((m * 312) | 0) + ((p * 156) | 0)) | 0
                ) |
                  0) ==
                0;
              l = a ? l : 0;
              n = ((e[(k + (m << 3) + (p << 2)) >> 2] | 0) + n) | 0;
              p = (p + 1) | 0;
              a = e[_ >> 2] | 0;
            } while ((p | 0) < (a | 0));
          }
          m = (m + 1) | 0;
          f = e[g >> 2] | 0;
        } while ((m | 0) < (f | 0));
        u = a;
        if ((f | 0) > 0) {
          _ = ((n | 0) > (O | 0)) & ((n | 0) > 0);
          o = u;
          h = 0;
          do {
            if ((o | 0) > 0) {
              a = 0;
              do {
                if (_) {
                  o = (k + (h << 3) + (a << 2)) | 0;
                  e[o >> 2] = ((s(e[o >> 2] | 0, O) | 0) / (n | 0)) | 0;
                  o = u;
                }
                a = (a + 1) | 0;
              } while ((a | 0) < (o | 0));
            }
            h = (h + 1) | 0;
          } while ((h | 0) < (f | 0));
        }
        if (!l) l = 0;
        else v = 21;
      } else {
        l = 1;
        v = 21;
      }
      if ((v | 0) == 21) y = 0;
      if ((f | 0) > 0) {
        _ = (i + 72) | 0;
        h = (i + 85824) | 0;
        p = (i + 85096) | 0;
        o = e[_ >> 2] | 0;
        u = 0;
        do {
          if ((o | 0) > 0) {
            a = 0;
            do {
              r[b >> 2] = 0;
              v = e[(i + 304 + ((u * 10504) | 0) + ((a * 5252) | 0) + 5208) >> 2] | 0;
              r[(i + 304 + ((u * 10504) | 0) + ((a * 5252) | 0) + 4764) >> 2] = 0;
              c((F + ((u * 4608) | 0) + ((a * 2304) | 0) + (v << 2)) | 0, 0, ((576 - v) << 2) | 0) |
                0;
              H[e[h >> 2] & 7](
                (i + 304 + ((u * 10504) | 0) + ((a * 5252) | 0)) | 0,
                (F + ((u * 4608) | 0) + ((a * 2304) | 0)) | 0,
                v,
                b
              );
              if (+r[b >> 2] > 9.999999682655225e-21) {
                f = ((e[p >> 2] | 0) >>> 1) & 1;
                o = (i + 304 + ((u * 10504) | 0) + ((a * 5252) | 0) + 4864) | 0;
                if ((e[o >> 2] | 0) > 0) {
                  n = 0;
                  do {
                    e[(i + 84936 + (n << 2)) >> 2] = f;
                    n = (n + 1) | 0;
                  } while ((n | 0) < (e[o >> 2] | 0));
                }
              } else {
                c((i + 304 + ((u * 10504) | 0) + ((a * 5252) | 0) + 2304) | 0, 0, 2304) | 0;
                e[(k + (u << 3) + (a << 2)) >> 2] = 0;
              }
              a = (a + 1) | 0;
              o = e[_ >> 2] | 0;
            } while ((a | 0) < (o | 0));
            f = e[g >> 2] | 0;
          }
          u = (u + 1) | 0;
        } while ((u | 0) < (f | 0));
      }
      f = ot(i | 0, F | 0, N | 0, k | 0) | 0;
      do
        if (!(e[E >> 2] | 0)) {
          if ((l | 0) != 0 ? (e[(i + 124) >> 2] | 0) == 0 : 0) n = 1;
          else n = e[(i + 112) >> 2] | 0;
          o = e[(i + 116) >> 2] | 0;
          e: do
            if ((n | 0) < (o | 0))
              do {
                if ((f | 0) <= (e[(S + (n << 2)) >> 2] | 0)) break e;
                n = (n + 1) | 0;
              } while ((n | 0) < (o | 0));
          while (0);
          n = (n | 0) > (o | 0) ? o : n;
          if ((y | 0) <= 0) {
            e[(i + 84744) >> 2] = n;
            o = n;
            break;
          }
          e: do
            if ((o | 0) > (n | 0))
              do {
                if ((((e[(S + (o << 2)) >> 2] | 0) - f) | 0) <= (y | 0)) break e;
                o = (o + -1) | 0;
              } while ((o | 0) > (n | 0));
          while (0);
          e[(i + 84744) >> 2] = o;
        } else {
          e[(i + 84744) >> 2] = 0;
          o = 0;
        }
      while (0);
      if ((f | 0) > (e[(S + (o << 2)) >> 2] | 0)) {
        M(i, 11768, I);
        oi(-1);
      }
      T(i, R) | 0;
      n = e[g >> 2] | 0;
      if ((n | 0) <= 0) {
        E = e[R >> 2] | 0;
        P(i, E);
        t = w;
        return;
      }
      f = (i + 72) | 0;
      o = e[f >> 2] | 0;
      l = 0;
      do {
        if ((o | 0) > 0) {
          n = 0;
          do {
            le(i, (i + 304 + ((l * 10504) | 0) + ((n * 5252) | 0)) | 0);
            n = (n + 1) | 0;
            o = e[f >> 2] | 0;
          } while ((n | 0) < (o | 0));
          n = e[g >> 2] | 0;
        }
        l = (l + 1) | 0;
      } while ((l | 0) < (n | 0));
      E = e[R >> 2] | 0;
      P(i, E);
      t = w;
      return;
    }
    function Yr(n, F, m, B) {
      n = n | 0;
      F = F | 0;
      m = m | 0;
      B = B | 0;
      var h = 0,
        i = 0,
        w = 0,
        l = 0,
        f = 0,
        o = 0,
        u = 0,
        _ = 0,
        L = 0,
        v = 0,
        k = 0,
        a = 0,
        U = 0,
        p = 0,
        E = 0,
        z = 0,
        O = 0,
        R = 0,
        D = 0,
        b = 0,
        M = 0,
        A = 0,
        I = 0,
        N = 0,
        S = 0,
        g = 0,
        C = 0,
        y = 0,
        x = 0;
      y = t;
      t = (t + 2496) | 0;
      S = (y + 2484) | 0;
      I = (y + 2328) | 0;
      C = (y + 24) | 0;
      g = (y + 8) | 0;
      N = y;
      z = (n + 304) | 0;
      e[N >> 2] = 0;
      O = (n + 76) | 0;
      i = e[O >> 2] | 0;
      M = (n + 116) | 0;
      A = (n + 84744) | 0;
      e[A >> 2] = e[M >> 2];
      E = T(n, S) | 0;
      e[A >> 2] = 1;
      D = ee(n) | 0;
      l = e[(n + 24) >> 2] << 3;
      h = e[O >> 2] | 0;
      R = (n + 72) | 0;
      p = e[R >> 2] | 0;
      f = s(p, h) | 0;
      D = (((D - l) | 0) / (f | 0)) | 0;
      i = s((i * 576e3) | 0, e[(n + 108) >> 2] | 0) | 0;
      e[S >> 2] = i;
      b = (n + 85096) | 0;
      if (e[b >> 2] & 1) {
        i = ~~(+(i | 0) * 1.09);
        e[S >> 2] = i;
      }
      k = ((((((i | 0) / (e[(n + 64) >> 2] | 0)) | 0) - l) | 0) / (f | 0)) | 0;
      e[S >> 2] = k;
      w = (11 - +r[(n + 244) >> 2]) * 0.012727272727272728 + 0.93;
      w = w < 0.9 ? 0.8999999761581421 : w;
      U = (h | 0) > 0;
      if (U) {
        l = ~~((w > 1 ? 1 : w) * +(k | 0));
        f = ((k | 0) / 2) | 0;
        _ = (((k * 3) | 0) / 2) | 0;
        L = (p | 0) > 0;
        v = 0;
        do {
          if (L) {
            i = 0;
            u = 0;
            do {
              a = (g + (v << 3) + (i << 2)) | 0;
              e[a >> 2] = l;
              w = +r[(F + (v << 3) + (i << 2)) >> 2];
              if (w > 700) {
                o = ~~((w + -700) * 0.7142857142857143);
                o = ((o | 0) < (f | 0)
                ? (e[(n + 304 + ((v * 10504) | 0) + ((i * 5252) | 0) + 4788) >> 2] | 0) == 2
                : 0)
                  ? f
                  : o;
                o = (((o | 0) > (_ | 0) ? _ : (o | 0) < 0 ? 0 : o) + l) | 0;
                e[a >> 2] = o;
              } else o = l;
              if ((o | 0) > 4095) {
                e[a >> 2] = 4095;
                o = 4095;
              }
              u = (o + u) | 0;
              i = (i + 1) | 0;
            } while ((i | 0) < (p | 0));
            if ((u | 0) > 7680) {
              o = 0;
              do {
                a = (g + (v << 3) + (o << 2)) | 0;
                e[a >> 2] = ((((e[a >> 2] | 0) * 7680) | 0) / (u | 0)) | 0;
                o = (o + 1) | 0;
              } while ((o | 0) < (p | 0));
            }
          }
          v = (v + 1) | 0;
        } while ((v | 0) < (h | 0));
      }
      F = (n + 84756) | 0;
      if ((e[F >> 2] | 0) == 2)
        if (U) {
          ge(g, +r[m >> 2], s(k, p) | 0, 7680);
          h = e[O >> 2] | 0;
          if ((h | 0) > 1) {
            i = 1;
            do {
              ge(
                (g + (i << 3)) | 0,
                +r[(m + (i << 2)) >> 2],
                s(e[S >> 2] | 0, e[R >> 2] | 0) | 0,
                7680
              );
              i = (i + 1) | 0;
              h = e[O >> 2] | 0;
            } while ((i | 0) < (h | 0));
            m = 17;
          } else m = 17;
        } else m = 30;
      else m = 17;
      if ((m | 0) == 17)
        if ((h | 0) > 0) {
          a = e[R >> 2] | 0;
          o = (a | 0) > 0;
          _ = 0;
          i = 0;
          do {
            if (o) {
              u = 0;
              do {
                l = (g + (_ << 3) + (u << 2)) | 0;
                f = e[l >> 2] | 0;
                if ((f | 0) > 4095) {
                  e[l >> 2] = 4095;
                  f = 4095;
                }
                i = (f + i) | 0;
                u = (u + 1) | 0;
              } while ((u | 0) < (a | 0));
            }
            _ = (_ + 1) | 0;
          } while ((_ | 0) < (h | 0));
          if (((i | 0) > 0) & ((i | 0) > (E | 0))) {
            o = (a | 0) > 0;
            l = h;
            u = 0;
            do {
              if (o) {
                f = 0;
                do {
                  p = (g + (u << 3) + (f << 2)) | 0;
                  e[p >> 2] = ((s(e[p >> 2] | 0, E) | 0) / (i | 0)) | 0;
                  f = (f + 1) | 0;
                } while ((f | 0) < (a | 0));
                l = h;
              }
              u = (u + 1) | 0;
            } while ((u | 0) < (l | 0));
          }
          if ((h | 0) > 0) {
            _ = (n + 84912) | 0;
            h = (n + 84916) | 0;
            L = (n + 84908) | 0;
            v = (n + 85824) | 0;
            k = (n + 36) | 0;
            a = 0;
            do {
              if ((e[F >> 2] | 0) == 2) {
                f = 0;
                do {
                  p = (n + 304 + ((a * 10504) | 0) + (f << 2)) | 0;
                  x = +r[p >> 2];
                  E = (n + 304 + ((a * 10504) | 0) + 5252 + (f << 2)) | 0;
                  w = +r[E >> 2];
                  r[p >> 2] = (w + x) * 0.7071067690849304;
                  r[E >> 2] = (x - w) * 0.7071067690849304;
                  f = (f + 1) | 0;
                } while ((f | 0) != 576);
              }
              if ((e[R >> 2] | 0) > 0) {
                i = 0;
                do {
                  l = (n + 304 + ((a * 10504) | 0) + ((i * 5252) | 0)) | 0;
                  r[L >> 2] = +d(
                    10,
                    +(
                      +r[
                        ((e[(n + 304 + ((a * 10504) | 0) + ((i * 5252) | 0) + 4788) >> 2] | 0) == 2
                          ? h
                          : _) >> 2
                      ] * 0.1
                    )
                  );
                  Se(n, l);
                  r[S >> 2] = 0;
                  E = e[(n + 304 + ((a * 10504) | 0) + ((i * 5252) | 0) + 5208) >> 2] | 0;
                  r[(n + 304 + ((a * 10504) | 0) + ((i * 5252) | 0) + 4764) >> 2] = 0;
                  c((C + (E << 2)) | 0, 0, ((576 - E) << 2) | 0) | 0;
                  H[e[v >> 2] & 7](l, C, E, S);
                  if (+r[S >> 2] > 9.999999682655225e-21) {
                    u = ((e[b >> 2] | 0) >>> 1) & 1;
                    o = (n + 304 + ((a * 10504) | 0) + ((i * 5252) | 0) + 4864) | 0;
                    if ((e[o >> 2] | 0) > 0) {
                      f = 0;
                      do {
                        e[(n + 84936 + (f << 2)) >> 2] = u;
                        f = (f + 1) | 0;
                      } while ((f | 0) < (e[o >> 2] | 0));
                    }
                    o = (g + (a << 3) + (i << 2)) | 0;
                    if (!(J(n, (B + ((a * 976) | 0) + ((i * 488) | 0)) | 0, l, I) | 0)) {
                      e[o >> 2] = D;
                      o = D;
                    } else o = e[o >> 2] | 0;
                    xe(n, l, I, C, i, o) | 0;
                  } else
                    c((n + 304 + ((a * 10504) | 0) + ((i * 5252) | 0) + 2304) | 0, 0, 2304) | 0;
                  Oe(n, a, i, z);
                  if ((e[k >> 2] | 0) == 1) oe(n, l);
                  le(n, l);
                  i = (i + 1) | 0;
                } while ((i | 0) < (e[R >> 2] | 0));
              }
              a = (a + 1) | 0;
            } while ((a | 0) < (e[O >> 2] | 0));
          }
        } else m = 30;
      b = e[(n + 112) >> 2] | 0;
      e[A >> 2] = b;
      if ((b | 0) > (e[M >> 2] | 0)) {
        M = e[N >> 2] | 0;
        P(n, M);
        t = y;
        return;
      }
      while (1) {
        if ((T(n, N) | 0) > -1) {
          m = 51;
          break;
        }
        b = e[A >> 2] | 0;
        e[A >> 2] = b + 1;
        if ((b | 0) >= (e[M >> 2] | 0)) {
          m = 51;
          break;
        }
      }
      if ((m | 0) == 51) {
        M = e[N >> 2] | 0;
        P(n, M);
        t = y;
        return;
      }
    }
    function jr(i, v, g, l) {
      i = i | 0;
      v = v | 0;
      g = g | 0;
      l = l | 0;
      var s = 0,
        a = 0,
        u = 0,
        o = 0,
        m = 0,
        L = 0,
        S = 0,
        D = 0,
        N = 0,
        A = 0,
        y = 0,
        R = 0,
        O = 0,
        F = 0,
        M = 0,
        n = 0,
        k = 0,
        h = 0,
        _ = 0,
        p = 0,
        w = 0,
        f = 0,
        E = 0,
        b = 0;
      f = t;
      t = (t + 2480) | 0;
      _ = (f + 2476) | 0;
      k = (f + 2320) | 0;
      w = (f + 16) | 0;
      p = (f + 8) | 0;
      h = f;
      L = (i + 304) | 0;
      T(i, h) | 0;
      S = (i + 76) | 0;
      if ((e[S >> 2] | 0) <= 0) {
        l = e[h >> 2] | 0;
        P(i, l);
        t = f;
        return;
      }
      A = (i + 84756) | 0;
      y = (i + 72) | 0;
      R = (i + 84912) | 0;
      O = (i + 84916) | 0;
      F = (i + 84908) | 0;
      M = (i + 85824) | 0;
      D = (i + 85096) | 0;
      N = (i + 36) | 0;
      n = 0;
      do {
        s = ze(i, v, p, e[h >> 2] | 0, n, n) | 0;
        if ((e[A >> 2] | 0) == 2) {
          a = 0;
          do {
            o = (i + 304 + ((n * 10504) | 0) + (a << 2)) | 0;
            b = +r[o >> 2];
            u = (i + 304 + ((n * 10504) | 0) + 5252 + (a << 2)) | 0;
            E = +r[u >> 2];
            r[o >> 2] = (E + b) * 0.7071067690849304;
            r[u >> 2] = (b - E) * 0.7071067690849304;
            a = (a + 1) | 0;
          } while ((a | 0) != 576);
          ge(p, +r[(g + (n << 2)) >> 2], e[h >> 2] | 0, s);
        }
        if ((e[y >> 2] | 0) > 0) {
          o = 0;
          do {
            s = (i + 304 + ((n * 10504) | 0) + ((o * 5252) | 0)) | 0;
            r[F >> 2] = +d(
              10,
              +(
                +r[
                  ((e[(i + 304 + ((n * 10504) | 0) + ((o * 5252) | 0) + 4788) >> 2] | 0) == 2
                    ? O
                    : R) >> 2
                ] * 0.1
              )
            );
            Se(i, s);
            r[_ >> 2] = 0;
            a = e[(i + 304 + ((n * 10504) | 0) + ((o * 5252) | 0) + 5208) >> 2] | 0;
            r[(i + 304 + ((n * 10504) | 0) + ((o * 5252) | 0) + 4764) >> 2] = 0;
            c((w + (a << 2)) | 0, 0, ((576 - a) << 2) | 0) | 0;
            H[e[M >> 2] & 7](s, w, a, _);
            if (+r[_ >> 2] > 9.999999682655225e-21) {
              a = ((e[D >> 2] | 0) >>> 1) & 1;
              u = (i + 304 + ((n * 10504) | 0) + ((o * 5252) | 0) + 4864) | 0;
              if ((e[u >> 2] | 0) > 0) {
                m = 0;
                do {
                  e[(i + 84936 + (m << 2)) >> 2] = a;
                  m = (m + 1) | 0;
                } while ((m | 0) < (e[u >> 2] | 0));
              }
              J(i, (l + ((n * 976) | 0) + ((o * 488) | 0)) | 0, s, k) | 0;
              xe(i, s, k, w, o, e[(p + (o << 2)) >> 2] | 0) | 0;
            } else c((i + 304 + ((n * 10504) | 0) + ((o * 5252) | 0) + 2304) | 0, 0, 2304) | 0;
            Oe(i, n, o, L);
            if ((e[N >> 2] | 0) == 1) oe(i, s);
            le(i, s);
            o = (o + 1) | 0;
          } while ((o | 0) < (e[y >> 2] | 0));
        }
        n = (n + 1) | 0;
      } while ((n | 0) < (e[S >> 2] | 0));
      l = e[h >> 2] | 0;
      P(i, l);
      t = f;
      return;
    }
    function Vr(n, a, o, t) {
      n = n | 0;
      a = a | 0;
      o = o | 0;
      t = t | 0;
      var e = 0,
        s = 0,
        i = 0,
        f = 0;
      r[t >> 2] = 0;
      if ((o | 0) < 0) return;
      s = (n + 4764) | 0;
      e = 0;
      i = 0;
      while (1) {
        f = +p(+(+r[(n + (i << 2)) >> 2]));
        r[t >> 2] = e + f;
        e = f;
        e = +ae(+(+ae(+e) * e));
        r[(a + (i << 2)) >> 2] = e;
        if (e > +r[s >> 2]) r[s >> 2] = e;
        if ((i | 0) == (o | 0)) break;
        e = +r[t >> 2];
        i = (i + 1) | 0;
      }
      return;
    }
    function Se(h, n) {
      h = h | 0;
      n = n | 0;
      var d = 0,
        o = 0,
        s = 0,
        a = 0,
        f = 0,
        u = 0,
        w = 0,
        i = 0,
        m = 0,
        E = 0,
        _ = 0,
        k = 0,
        v = 0,
        b = 0,
        S = 0;
      b = t;
      t = (t + 2304) | 0;
      v = b;
      e[(n + 4768) >> 2] = 0;
      e[(n + 4772) >> 2] = 0;
      e[(n + 4776) >> 2] = 0;
      e[(n + 4780) >> 2] = 210;
      e[(n + 4784) >> 2] = 0;
      _ = (h + 64) | 0;
      o = (n + 4796) | 0;
      d = (o + 52) | 0;
      do {
        e[o >> 2] = 0;
        o = (o + 4) | 0;
      } while ((o | 0) < (d | 0));
      f = (n + 4848) | 0;
      if ((e[_ >> 2] | 0) < 8001) {
        e[f >> 2] = 17;
        s = 17;
        o = 9;
        d = 17;
      } else {
        e[f >> 2] = 21;
        s = (e[(h + 85092) >> 2] | 0) != 0 ? 22 : 21;
        o = 12;
        d = 21;
      }
      i = (n + 4852) | 0;
      e[i >> 2] = o;
      E = (n + 4856) | 0;
      e[E >> 2] = s;
      a = (n + 4864) | 0;
      e[a >> 2] = s;
      m = (n + 4860) | 0;
      e[m >> 2] = d;
      u = (n + 4868) | 0;
      e[u >> 2] = 11;
      s = 0;
      do {
        o = s;
        s = (s + 1) | 0;
        e[(n + 4872 + (o << 2)) >> 2] =
          (e[(h + 21360 + (s << 2)) >> 2] | 0) - (e[(h + 21360 + (o << 2)) >> 2] | 0);
        e[(n + 5028 + (o << 2)) >> 2] = 3;
      } while ((s | 0) != 22);
      k = (n + 4788) | 0;
      if ((e[k >> 2] | 0) == 2) {
        e[i >> 2] = 0;
        e[f >> 2] = 0;
        if (!(e[(n + 4792) >> 2] | 0)) {
          d = 0;
          o = 0;
        } else {
          e[i >> 2] = 3;
          o = ((e[(h + 76) >> 2] << 1) + 4) | 0;
          e[f >> 2] = o;
          d = 3;
        }
        if ((e[_ >> 2] | 0) < 8001) {
          s = (((((9 - d) | 0) * 3) | 0) + o) | 0;
          e[a >> 2] = s;
        } else {
          e[a >> 2] = ((((((e[(h + 85092) >> 2] | 0) != 0 ? 13 : 12) - d) | 0) * 3) | 0) + o;
          s = (((((12 - d) | 0) * 3) | 0) + o) | 0;
        }
        e[m >> 2] = s;
        e[u >> 2] = s + -18;
        e[E >> 2] = o;
        s = e[(h + 21360 + (o << 2)) >> 2] | 0;
        l(v | 0, n | 0, 2304) | 0;
        m = e[(h + 21452 + (d << 2)) >> 2] | 0;
        s = (n + (s << 2)) | 0;
        a = d;
        do {
          a = (a + 1) | 0;
          i = m;
          m = e[(h + 21452 + (a << 2)) >> 2] | 0;
          if ((m | 0) > (i | 0)) {
            E = (m - i) | 0;
            u = s;
            f = i;
            while (1) {
              e[u >> 2] = e[(v + ((f * 3) << 2)) >> 2];
              f = (f + 1) | 0;
              if ((f | 0) == (m | 0)) break;
              else u = (u + 4) | 0;
            }
            u = (s + (E << 2)) | 0;
            f = i;
            while (1) {
              e[u >> 2] = e[(v + ((((f * 3) | 0) + 1) << 2)) >> 2];
              f = (f + 1) | 0;
              if ((f | 0) == (m | 0)) break;
              else u = (u + 4) | 0;
            }
            u = (s + ((E << 1) << 2)) | 0;
            while (1) {
              e[u >> 2] = e[(v + ((((i * 3) | 0) + 2) << 2)) >> 2];
              i = (i + 1) | 0;
              if ((i | 0) == (m | 0)) break;
              else u = (u + 4) | 0;
            }
            s = (s + ((E * 3) << 2)) | 0;
          }
        } while ((a | 0) != 13);
        while (1) {
          m = d;
          d = (d + 1) | 0;
          m = ((e[(h + 21452 + (d << 2)) >> 2] | 0) - (e[(h + 21452 + (m << 2)) >> 2] | 0)) | 0;
          _ = (o + 2) | 0;
          e[(n + 4872 + (_ << 2)) >> 2] = m;
          E = (o + 1) | 0;
          e[(n + 4872 + (E << 2)) >> 2] = m;
          e[(n + 4872 + (o << 2)) >> 2] = m;
          e[(n + 5028 + (o << 2)) >> 2] = 0;
          e[(n + 5028 + (E << 2)) >> 2] = 1;
          e[(n + 5028 + (_ << 2)) >> 2] = 2;
          if ((d | 0) == 13) break;
          else o = (o + 3) | 0;
        }
      }
      e[(n + 5184) >> 2] = 0;
      e[(n + 5188) >> 2] = 11824;
      _ = (n + 5192) | 0;
      e[_ >> 2] = 0;
      e[(_ + 4) >> 2] = 0;
      e[(_ + 8) >> 2] = 0;
      e[(_ + 12) >> 2] = 0;
      e[(n + 5208) >> 2] = 575;
      c((n + 4608) | 0, 0, 156) | 0;
      _ = e[(h + 104) >> 2] | 0;
      if (((_ | 0) == 0) | ((_ | 0) == 3) | ((_ | 0) == 4) | ((_ | 0) == 1)) {
        t = b;
        return;
      }
      v = e[(h + 85796) >> 2] | 0;
      if ((e[k >> 2] | 0) != 2) {
        a = (v + 8) | 0;
        f = (v + 20) | 0;
        u = (h + 84852) | 0;
        i = 5;
        e: while (1) {
          d = e[(h + 21508 + (i << 2)) >> 2] | 0;
          s = e[(h + 21508 + ((i + 1) << 2)) >> 2] | 0;
          w = +ye(+r[a >> 2], +r[(v + 164 + (i << 2)) >> 2], +r[f >> 2], 0);
          S = +r[u >> 2];
          w = S > 9.999999960041972e-13 ? S * w : w;
          if ((s | 0) > (d | 0))
            do {
              s = (s + -1) | 0;
              o = (n + (s << 2)) | 0;
              if (!(+p(+(+r[o >> 2])) < w)) {
                d = 32;
                break e;
              }
              r[o >> 2] = 0;
            } while ((s | 0) > (d | 0));
          if ((i | 0) > 0) i = (i + -1) | 0;
          else {
            d = 32;
            break;
          }
        }
        if ((d | 0) == 32) {
          t = b;
          return;
        }
      }
      d = (h + 21500) | 0;
      _ = (h + 21504) | 0;
      E = (h + 21536) | 0;
      m = (v + 8) | 0;
      s = (v + 20) | 0;
      o = (h + 84904) | 0;
      a = 5;
      e: while (1) {
        i = e[(h + 21536 + (a << 2)) >> 2] | 0;
        f = ((((e[d >> 2] | 0) * 3) | 0) + (i - (e[E >> 2] | 0))) | 0;
        i = ((e[(h + 21536 + ((a + 1) << 2)) >> 2] | 0) - i) | 0;
        w = +ye(+r[m >> 2], +r[(v + 188 + (a << 2)) >> 2], +r[s >> 2], 0);
        S = +r[o >> 2];
        w = S > 9.999999960041972e-13 ? S * w : w;
        if ((i | 0) > 0) {
          u = (i + f) | 0;
          do {
            u = (u + -1) | 0;
            i = (n + (u << 2)) | 0;
            if (!(+p(+(+r[i >> 2])) < w)) {
              a = 5;
              break e;
            }
            r[i >> 2] = 0;
          } while ((u | 0) > (f | 0));
        }
        if ((a | 0) > 0) a = (a + -1) | 0;
        else {
          a = 5;
          break;
        }
      }
      e: while (1) {
        f = e[d >> 2] | 0;
        i = e[(h + 21536 + (a << 2)) >> 2] | 0;
        f = ((e[_ >> 2] | 0) - f + ((f * 3) | 0) + (i - (e[E >> 2] | 0))) | 0;
        i = ((e[(h + 21536 + ((a + 1) << 2)) >> 2] | 0) - i) | 0;
        w = +ye(+r[m >> 2], +r[(v + 188 + (a << 2)) >> 2], +r[s >> 2], 0);
        S = +r[o >> 2];
        w = S > 9.999999960041972e-13 ? S * w : w;
        if ((i | 0) > 0) {
          u = (i + f) | 0;
          do {
            u = (u + -1) | 0;
            i = (n + (u << 2)) | 0;
            if (!(+p(+(+r[i >> 2])) < w)) {
              a = 5;
              break e;
            }
            r[i >> 2] = 0;
          } while ((u | 0) > (f | 0));
        }
        if ((a | 0) > 0) a = (a + -1) | 0;
        else {
          a = 5;
          break;
        }
      }
      e: while (1) {
        f = e[d >> 2] | 0;
        i = e[(h + 21536 + (a << 2)) >> 2] | 0;
        f = ((((e[_ >> 2] | 0) - f) << 1) + ((f * 3) | 0) + (i - (e[E >> 2] | 0))) | 0;
        i = ((e[(h + 21536 + ((a + 1) << 2)) >> 2] | 0) - i) | 0;
        w = +ye(+r[m >> 2], +r[(v + 188 + (a << 2)) >> 2], +r[s >> 2], 0);
        S = +r[o >> 2];
        w = S > 9.999999960041972e-13 ? S * w : w;
        if ((i | 0) > 0) {
          u = (i + f) | 0;
          do {
            u = (u + -1) | 0;
            i = (n + (u << 2)) | 0;
            if (!(+p(+(+r[i >> 2])) < w)) {
              d = 32;
              break e;
            }
            r[i >> 2] = 0;
          } while ((u | 0) > (f | 0));
        }
        if ((a | 0) > 0) a = (a + -1) | 0;
        else {
          d = 32;
          break;
        }
      }
      if ((d | 0) == 32) {
        t = b;
        return;
      }
    }
    function xe(v, F, G, M, i, ee) {
      v = v | 0;
      F = F | 0;
      G = G | 0;
      M = M | 0;
      i = i | 0;
      ee = ee | 0;
      var o = 0,
        n = 0,
        u = 0,
        E = 0,
        y = 0,
        S = 0,
        R = 0,
        w = 0,
        N = 0,
        U = 0,
        f = 0,
        a = 0,
        m = 0,
        d = 0,
        Y = 0,
        _e = 0,
        pe = 0,
        ne = 0,
        te = 0,
        Z = 0,
        $ = 0,
        he = 0,
        x = 0,
        P = 0,
        W = 0,
        L = 0,
        de = 0,
        j = 0,
        T = 0,
        z = 0,
        ie = 0,
        Ee = 0,
        ve = 0,
        Se = 0,
        ce = 0,
        me = 0,
        V = 0,
        q = 0,
        le = 0,
        se = 0,
        A = 0,
        D = 0,
        re = 0,
        we = 0,
        oe = 0,
        O = 0,
        be = 0,
        J = 0,
        ue = 0,
        K = 0,
        Q = 0,
        _ = 0,
        k = 0,
        h = 0,
        C = 0,
        g = 0,
        H = 0,
        X = 0,
        B = 0,
        fe = 0;
      B = t;
      t = (t + 8256) | 0;
      h = (B + 2992) | 0;
      X = (B + 688) | 0;
      C = (B + 528) | 0;
      k = (B + 504) | 0;
      H = (B + 24) | 0;
      g = B;
      U = (v + 84928 + (i << 2)) | 0;
      o = e[U >> 2] | 0;
      R = (v + 84920 + (i << 2)) | 0;
      w = e[R >> 2] | 0;
      N = (F + 4780) | 0;
      e[N >> 2] = w;
      S = (ee - (e[(F + 4844) >> 2] | 0)) | 0;
      i = I(v, M, F, 0) | 0;
      if (!(((o | 0) == 1) | ((i | 0) == (S | 0)))) {
        u = 0;
        n = 0;
        while (1) {
          if ((i | 0) > (S | 0)) {
            y = (u | 0) == 2 ? 1 : n;
            n = (y | 0) == 0 ? o : ((o | 0) / 2) | 0;
            o = n;
            u = 1;
          } else {
            y = (u | 0) == 1 ? 1 : n;
            n = (y | 0) == 0 ? o : ((o | 0) / 2) | 0;
            o = n;
            u = 2;
            n = (0 - n) | 0;
          }
          i = ((e[N >> 2] | 0) + n) | 0;
          n = (i | 0) < 0;
          i = n ? 0 : i;
          E = (i | 0) > 255;
          e[N >> 2] = E ? 255 : i;
          i = I(v, M, F, 0) | 0;
          if (((o | 0) == 1) | ((i | 0) == (S | 0))) break;
          else n = n | E ? 1 : y;
        }
      }
      e: do
        if ((i | 0) > (S | 0))
          do {
            o = e[N >> 2] | 0;
            if ((o | 0) >= 255) break e;
            e[N >> 2] = o + 1;
            i = I(v, M, F, 0) | 0;
          } while ((i | 0) > (S | 0));
      while (0);
      e[U >> 2] = ((w - (e[N >> 2] | 0)) | 0) > 3 ? 4 : 2;
      e[R >> 2] = e[N >> 2];
      Q = (F + 4768) | 0;
      e[Q >> 2] = i;
      te = (v + 28) | 0;
      if (!(e[te >> 2] | 0)) {
        O = 100;
        t = B;
        return O | 0;
      }
      c(H | 0, 0, 476) | 0;
      Fe(F, G, C, k, H) | 0;
      Z = (k + 20) | 0;
      e[Z >> 2] = e[Q >> 2];
      l(h | 0, F | 0, 5252) | 0;
      l(X | 0, M | 0, 2304) | 0;
      $ = (v + 85096) | 0;
      he = (v + 85092) | 0;
      x = (h + 4836) | 0;
      P = (h + 4860) | 0;
      W = (v + 40) | 0;
      L = (h + 4764) | 0;
      de = (h + 4844) | 0;
      j = (h + 4768) | 0;
      T = (h + 4780) | 0;
      z = (k + 12) | 0;
      ie = (g + 20) | 0;
      Ee = (F + 4788) | 0;
      ve = (v + 84) | 0;
      Se = (v + 88) | 0;
      ce = (g + 16) | 0;
      me = (k + 16) | 0;
      V = (g + 8) | 0;
      q = (k + 8) | 0;
      le = (v + 48) | 0;
      se = (g + 12) | 0;
      A = (g + 4) | 0;
      D = (k + 4) | 0;
      re = (h + 4864) | 0;
      we = (v + 84936) | 0;
      oe = (h + 4832) | 0;
      O = (h + 4788) | 0;
      be = (v + 32) | 0;
      J = (h + 4848) | 0;
      ue = (h + 4868) | 0;
      K = 0;
      ne = 0;
      U = 9999999;
      while (1) {
        _e = (K | 0) == 1 ? 2 : 1;
        pe = (K | 0) != 0;
        Y = 0;
        e: while (1) {
          N = ((e[$ >> 2] & 2) | 0) == 0 ? 3 : 20;
          u = e[P >> 2] | 0;
          if (e[he >> 2] | 0) {
            if (+r[(C + (u << 2)) >> 2] > 1) {
              _ = 167;
              break;
            }
            if ((e[O >> 2] | 0) == 2) {
              if (+r[(C + ((u + 1) << 2)) >> 2] > 1) {
                _ = 167;
                break;
              }
              if (+r[(C + ((u + 2) << 2)) >> 2] > 1) {
                _ = 167;
                break;
              }
            }
          }
          f = (e[x >> 2] | 0) == 0 ? 1.2968395948410034 : 1.6817928552627563;
          n = (u | 0) > 0;
          if (n) {
            i = 0;
            d = 0;
            do {
              a = +r[(C + (i << 2)) >> 2];
              d = d < a ? a : d;
              i = (i + 1) | 0;
            } while ((i | 0) != (u | 0));
          } else d = 0;
          i = e[W >> 2] | 0;
          o = (i | 0) == 3 ? _e : i;
          do
            if ((o | 0) != 2)
              if ((o | 0) == 1) {
                m = d;
                if (d > 1) {
                  a = +p(+(+ae(+m)));
                  d = d == -er ? er : a;
                  break;
                } else {
                  d = m * 0.95;
                  break;
                }
              } else if (d > 1) d = 1;
              else d = d * 0.95;
          while (0);
          if (n) {
            o = u;
            u = 0;
            E = 0;
          } else {
            _ = 167;
            break;
          }
          do {
            n = e[(h + 4872 + (E << 2)) >> 2] | 0;
            u = (n + u) | 0;
            if (!(+r[(C + (E << 2)) >> 2] < d)) {
              if (
                (((e[$ >> 2] & 2) | 0) != 0
                ? ((R = (v + 84936 + (E << 2)) | 0),
                  (w = (e[R >> 2] | 0) == 0),
                  (e[R >> 2] = w & 1),
                  !w)
                : 0)
                  ? (e[W >> 2] | 0) == 2
                  : 0
              ) {
                i = 2;
                break;
              }
              w = (h + 4608 + (E << 2)) | 0;
              e[w >> 2] = (e[w >> 2] | 0) + 1;
              if ((n | 0) > 0) {
                m = +r[L >> 2];
                i = (0 - n) | 0;
                while (1) {
                  w = (M + ((i + u) << 2)) | 0;
                  a = +r[w >> 2] * f;
                  r[w >> 2] = a;
                  if (a > m) {
                    r[L >> 2] = a;
                    m = a;
                  }
                  if ((i | 0) < -1) i = (i + 1) | 0;
                  else break;
                }
              }
              i = e[W >> 2] | 0;
              if ((i | 0) == 2) {
                i = 2;
                break;
              }
              o = e[P >> 2] | 0;
            }
            E = (E + 1) | 0;
          } while ((E | 0) < (o | 0));
          o = e[P >> 2] | 0;
          if ((o | 0) > 0) n = 0;
          else {
            _ = 167;
            break;
          }
          while (1) {
            if (
              (e[(h + 4608 + (n << 2)) >> 2] | 0) ==
              ((0 - (e[(h + 4808 + (e[(h + 5028 + (n << 2)) >> 2] << 2)) >> 2] | 0)) | 0)
            )
              break;
            n = (n + 1) | 0;
            if ((n | 0) >= (o | 0)) break e;
          }
          if (We(v, h) | 0) {
            if ((e[te >> 2] | 0) <= 1) {
              _ = 167;
              break;
            }
            c(we | 0, 0, 156) | 0;
            r: do
              if (!(e[x >> 2] | 0)) {
                if ((e[P >> 2] | 0) > 0) {
                  u = 0;
                  E = 0;
                  do {
                    o = e[(h + 4872 + (E << 2)) >> 2] | 0;
                    n = (h + 4608 + (E << 2)) | 0;
                    i = e[n >> 2] | 0;
                    if (e[oe >> 2] | 0) i = ((e[(12112 + (E << 2)) >> 2] | 0) + i) | 0;
                    u = (o + u) | 0;
                    do
                      if (i & 1) {
                        i = (i + 1) | 0;
                        if ((o | 0) <= 0) break;
                        d = +r[L >> 2];
                        o = (0 - o) | 0;
                        while (1) {
                          w = (M + ((o + u) << 2)) | 0;
                          m = +r[w >> 2] * 1.2968395948410034;
                          r[w >> 2] = m;
                          if (m > d) {
                            r[L >> 2] = m;
                            d = m;
                          }
                          if ((o | 0) < -1) o = (o + 1) | 0;
                          else break;
                        }
                      }
                    while (0);
                    e[n >> 2] = i >> 1;
                    E = (E + 1) | 0;
                  } while ((E | 0) < (e[P >> 2] | 0));
                }
                e[oe >> 2] = 0;
                e[x >> 2] = 1;
              } else {
                if ((e[O >> 2] | 0) != 2) {
                  _ = 167;
                  break e;
                }
                if ((e[be >> 2] | 0) <= 0) {
                  _ = 167;
                  break e;
                }
                i = e[J >> 2] | 0;
                if ((i | 0) > 0) {
                  o = 0;
                  while (1) {
                    if ((e[(h + 4608 + (o << 2)) >> 2] | 0) > 15) {
                      _ = 167;
                      break e;
                    }
                    o = (o + 1) | 0;
                    if ((o | 0) >= (i | 0)) {
                      R = 3;
                      w = -1;
                      S = 0;
                      break;
                    }
                  }
                } else {
                  R = 3;
                  w = -1;
                  S = 0;
                }
                while (1) {
                  n = (S + i) | 0;
                  u = e[ue >> 2] | 0;
                  if ((n | 0) < (u | 0)) {
                    y = (R + i) | 0;
                    E = (u | 0) > (y | 0);
                    o = (w - i) | 0;
                    i = 0;
                    do {
                      fe = e[(h + 4608 + (n << 2)) >> 2] | 0;
                      i = (i | 0) < (fe | 0) ? fe : i;
                      n = (n + 3) | 0;
                    } while ((n | 0) < (u | 0));
                    n = ((E ? u : y) + o) | 0;
                    u = i;
                    n = (n + y - ((n >>> 0) % 3 | 0)) | 0;
                  } else u = 0;
                  i = e[P >> 2] | 0;
                  if ((n | 0) < (i | 0)) {
                    o = 0;
                    do {
                      y = e[(h + 4608 + (n << 2)) >> 2] | 0;
                      o = (o | 0) < (y | 0) ? y : o;
                      n = (n + 3) | 0;
                    } while ((n | 0) < (i | 0));
                  } else o = 0;
                  do
                    if (((u | 0) < 16) & ((o | 0) < 8)) o = (S + 1) | 0;
                    else {
                      i = (h + 4808 + (S << 2)) | 0;
                      o = e[i >> 2] | 0;
                      if ((o | 0) > 6) {
                        _ = 167;
                        break e;
                      }
                      e[i >> 2] = o + 1;
                      n = e[J >> 2] | 0;
                      u = e[(v + 21360 + (n << 2)) >> 2] | 0;
                      n = (n + S) | 0;
                      i = e[P >> 2] | 0;
                      o = (S + 1) | 0;
                      if ((n | 0) < (i | 0)) {
                        S = (2 - S) | 0;
                        do {
                          y = e[(h + 4872 + (n << 2)) >> 2] | 0;
                          i = (h + 4608 + (n << 2)) | 0;
                          E = ((e[i >> 2] | 0) - (4 >>> (e[x >> 2] | 0))) | 0;
                          if ((E | 0) > -1) {
                            e[i >> 2] = E;
                            u = (((y * 3) | 0) + u) | 0;
                          } else {
                            e[i >> 2] = 0;
                            a = +r[(79704 + (((E << ((e[x >> 2] | 0) + 1)) + 210) << 2)) >> 2];
                            i = ((s(y, o) | 0) + u) | 0;
                            if ((y | 0) > 0) {
                              d = +r[L >> 2];
                              u = (0 - y) | 0;
                              while (1) {
                                E = (M + ((u + i) << 2)) | 0;
                                m = +r[E >> 2] * a;
                                r[E >> 2] = m;
                                if (m > d) {
                                  r[L >> 2] = m;
                                  d = m;
                                }
                                if ((u | 0) < -1) u = (u + 1) | 0;
                                else break;
                              }
                            }
                            u = (i + (s(y, S) | 0)) | 0;
                          }
                          n = (n + 3) | 0;
                          i = e[P >> 2] | 0;
                        } while ((n | 0) < (i | 0));
                      }
                      a = +r[20128];
                      n = e[(h + 4872 + (n << 2)) >> 2] | 0;
                      u = ((s(n, o) | 0) + u) | 0;
                      if ((n | 0) <= 0) break;
                      d = +r[L >> 2];
                      n = (0 - n) | 0;
                      while (1) {
                        S = (M + ((u + n) << 2)) | 0;
                        m = +r[S >> 2] * a;
                        r[S >> 2] = m;
                        if (m > d) {
                          r[L >> 2] = m;
                          d = m;
                        }
                        if ((n | 0) < -1) n = (n + 1) | 0;
                        else break;
                      }
                    }
                  while (0);
                  if ((o | 0) >= 3) break;
                  i = e[J >> 2] | 0;
                  R = (R + 1) | 0;
                  w = (w + -1) | 0;
                  S = o;
                }
                if ((i | 0) > 0) o = 0;
                else {
                  _ = 167;
                  break e;
                }
                while (1) {
                  if (
                    (e[(h + 4608 + (o << 2)) >> 2] | 0) ==
                    ((0 - (e[(h + 4808 + (e[(h + 5028 + (o << 2)) >> 2] << 2)) >> 2] | 0)) | 0)
                  )
                    break r;
                  o = (o + 1) | 0;
                  if ((o | 0) >= (i | 0)) {
                    _ = 167;
                    break e;
                  }
                }
              }
            while (0);
            if (We(v, h) | 0) {
              _ = 167;
              break;
            }
          }
          n = (e[x >> 2] | 0) == 0 ? 255 : 254;
          o = (ee - (e[de >> 2] | 0)) | 0;
          if ((o | 0) < 1) {
            _ = 167;
            break;
          }
          w = I(v, M, h, H) | 0;
          e[j >> 2] = w;
          i = e[T >> 2] | 0;
          if (((w | 0) > (o | 0)) & ((i | 0) <= (n | 0)))
            do {
              e[T >> 2] = i + 1;
              w = I(v, M, h, H) | 0;
              e[j >> 2] = w;
              i = e[T >> 2] | 0;
            } while (((w | 0) > (o | 0)) & ((i | 0) <= (n | 0)));
          if ((i | 0) > (n | 0)) {
            _ = 167;
            break;
          }
          if (!(e[z >> 2] | 0)) {
            w = I(v, M, h, H) | 0;
            e[j >> 2] = w;
            i = e[T >> 2] | 0;
            if (((w | 0) > (U | 0)) & ((i | 0) <= (n | 0)))
              do {
                e[T >> 2] = i + 1;
                w = I(v, M, h, H) | 0;
                e[j >> 2] = w;
                i = e[T >> 2] | 0;
              } while (((w | 0) > (U | 0)) & ((i | 0) <= (n | 0)));
            if ((i | 0) > (n | 0)) {
              _ = 167;
              break;
            }
          }
          Fe(h, G, C, g, H) | 0;
          n = e[j >> 2] | 0;
          e[ie >> 2] = n;
          r: do
            switch (e[((e[Ee >> 2] | 0) == 2 ? Se : ve) >> 2] | 0) {
              case 1: {
                f = +r[V >> 2];
                _ = 118;
                break;
              }
              case 6: {
                a = +r[g >> 2];
                f = +r[k >> 2];
                do
                  if (!(a < f)) {
                    m = +p(+a);
                    d = +p(+f);
                    a = +p(+(a - f));
                    if (m > d) {
                      if (!(a <= m * 9.999999974752427e-7)) {
                        i = 0;
                        break;
                      }
                    } else if (!(a <= d * 9.999999974752427e-7)) {
                      i = 0;
                      break;
                    }
                    a = +r[V >> 2];
                    f = +r[q >> 2];
                    if (!(a < f)) {
                      d = +p(+a);
                      m = +p(+f);
                      a = +p(+(a - f));
                      if (d > m) {
                        if (!(a <= d * 9.999999974752427e-7)) {
                          i = 0;
                          break;
                        }
                      } else if (!(a <= m * 9.999999974752427e-7)) {
                        i = 0;
                        break;
                      }
                      i = +r[A >> 2] <= +r[D >> 2];
                    } else i = 1;
                  } else i = 1;
                while (0);
                i = i & 1;
                break;
              }
              case 8: {
                if ((e[re >> 2] | 0) > 0) {
                  f = 1e-37;
                  i = 0;
                  do {
                    a = +r[(C + (i << 2)) >> 2];
                    f = +b(a * a * 0.632 * a + 0.368) * 0.30102999566398114 + f;
                    i = (i + 1) | 0;
                  } while ((i | 0) < (e[re >> 2] | 0));
                } else f = 1e-37;
                f = f < 1e-20 ? 9.999999682655225e-21 : f;
                r[V >> 2] = f;
                _ = 118;
                break;
              }
              case 7: {
                if ((e[se >> 2] | 0) < (e[z >> 2] | 0)) i = 1;
                else i = +r[g >> 2] < +r[k >> 2];
                i = i & 1;
                break;
              }
              case 3: {
                if (+r[A >> 2] < +r[D >> 2]) i = +r[V >> 2] < +r[q >> 2];
                else i = 0;
                i = i & 1;
                break;
              }
              case 5: {
                a = +r[g >> 2];
                f = +r[k >> 2];
                do
                  if (a < f) i = 1;
                  else {
                    d = +p(+a);
                    m = +p(+f);
                    a = +p(+(a - f));
                    if (d > m) {
                      if (!(a <= d * 9.999999974752427e-7)) {
                        i = 0;
                        break;
                      }
                    } else if (!(a <= m * 9.999999974752427e-7)) {
                      i = 0;
                      break;
                    }
                    i = +r[A >> 2] < +r[D >> 2];
                  }
                while (0);
                i = i & 1;
                break;
              }
              case 2: {
                i = (+r[A >> 2] < +r[D >> 2]) & 1;
                break;
              }
              case 0: {
                i = e[se >> 2] | 0;
                o = e[z >> 2] | 0;
                do
                  if ((i | 0) >= (o | 0))
                    if ((i | 0) == (o | 0)) {
                      a = +r[g >> 2];
                      f = +r[k >> 2];
                      if (a < f) i = 1;
                      else {
                        m = +p(+a);
                        d = +p(+f);
                        f = +p(+(a - f));
                        if (m > d) {
                          if (!(f <= m * 9.999999974752427e-7)) {
                            i = 0;
                            break;
                          }
                        } else if (!(f <= d * 9.999999974752427e-7)) {
                          i = 0;
                          break;
                        }
                        i = +r[A >> 2] < +r[D >> 2];
                      }
                    } else i = 0;
                  else i = 1;
                while (0);
                i = i & 1;
                break;
              }
              case 4: {
                d = +r[V >> 2];
                do
                  if (d <= 0) {
                    m = +r[q >> 2];
                    f = m;
                    if (!(f > 0.2)) {
                      a = d;
                      i = f > a + -0.2;
                      if ((m < 0) & i ? +r[A >> 2] < +r[D >> 2] : 0) {
                        i = 1;
                        break;
                      }
                      if (!(!(m > 0) | (i ^ 1)) ? +r[A >> 2] < +r[k >> 2] + +r[D >> 2] : 0) i = 1;
                      else _ = 130;
                    } else i = 1;
                  } else {
                    a = d;
                    _ = 130;
                  }
                while (0);
                do
                  if ((_ | 0) == 130) {
                    _ = 0;
                    if (d > 0) {
                      f = +r[q >> 2];
                      if (
                        (f > -0.05) & (f > a + -0.1)
                          ? +r[g >> 2] + +r[A >> 2] < +r[k >> 2] + +r[D >> 2]
                          : 0
                      ) {
                        i = 1;
                        break;
                      }
                      if ((f > -0.1) & (f > a + -0.15))
                        i = +r[g >> 2] * 2 + +r[A >> 2] < +r[k >> 2] * 2 + +r[D >> 2];
                      else i = 0;
                    } else i = 0;
                  }
                while (0);
                i = i & 1;
                break;
              }
              default: {
                if ((e[z >> 2] | 0) > 0) {
                  i = e[ce >> 2] | 0;
                  o = e[me >> 2] | 0;
                  if ((i | 0) != (o | 0)) {
                    i = ((i | 0) <= (o | 0)) & 1;
                    break r;
                  }
                  i = ((n | 0) < (e[Z >> 2] | 0)) & 1;
                  break r;
                }
                f = +r[V >> 2];
                if (f < 0) i = f * 10 + +(n | 0) <= +(e[Z >> 2] | 0) + +r[q >> 2] * 10;
                else i = 0;
                i = i & 1;
              }
            }
          while (0);
          if ((_ | 0) == 118) {
            _ = 0;
            i = (f < +r[q >> 2]) & 1;
          }
          o = (e[z >> 2] | 0) == 0;
          if (o) {
            if (!i) i = 0;
            else i = (e[ie >> 2] | 0) < (e[Z >> 2] | 0);
            i = i & 1;
          }
          do
            if (!i)
              if (!(e[le >> 2] | 0)) {
                i = (Y + 1) | 0;
                if (((Y | 0) >= (N | 0)) & o) {
                  _ = 167;
                  break e;
                }
                o = pe & ((e[W >> 2] | 0) == 3);
                if (((Y | 0) > 29) & o) {
                  _ = 167;
                  break e;
                }
                if (!o) break;
                if ((((e[T >> 2] | 0) - ne) | 0) > 15) {
                  _ = 167;
                  break e;
                }
              } else i = Y;
            else {
              U = e[Q >> 2] | 0;
              e[k >> 2] = e[g >> 2];
              e[(k + 4) >> 2] = e[(g + 4) >> 2];
              e[(k + 8) >> 2] = e[(g + 8) >> 2];
              e[(k + 12) >> 2] = e[(g + 12) >> 2];
              e[(k + 16) >> 2] = e[(g + 16) >> 2];
              e[(k + 20) >> 2] = e[(g + 20) >> 2];
              l(F | 0, h | 0, 5252) | 0;
              l(X | 0, M | 0, 2304) | 0;
              i = 0;
            }
          while (0);
          if ((((e[x >> 2] | 0) + (e[T >> 2] | 0)) | 0) < 255) Y = i;
          else {
            _ = 167;
            break;
          }
        }
        if ((_ | 0) == 167) {
          _ = 0;
          i = e[W >> 2] | 0;
        }
        if (!(((K | 0) == 0) & ((i | 0) == 3))) break;
        l(h | 0, F | 0, 5252) | 0;
        l(M | 0, X | 0, 2304) | 0;
        K = 1;
        ne = e[T >> 2] | 0;
      }
      O = e[(v + 104) >> 2] | 0;
      if (!(((O | 0) == 1) | ((O | 0) == 4) | ((O | 0) == 2))) {
        if (e[$ >> 2] & 1) kr(v, F, G, M);
      } else l(M | 0, X | 0, 2304) | 0;
      O = e[z >> 2] | 0;
      t = B;
      return O | 0;
    }
    function kr(S, s, v, l) {
      S = S | 0;
      s = s | 0;
      v = v | 0;
      l = l | 0;
      var a = 0,
        n = 0,
        o = 0,
        u = 0,
        i = 0,
        f = 0,
        w = 0,
        m = 0,
        k = 0,
        y = 0,
        b = 0,
        _ = 0,
        E = 0,
        M = 0,
        c = 0,
        d = 0,
        g = 0,
        h = 0;
      h = t;
      t = (t + 192) | 0;
      g = (h + 24) | 0;
      n = h;
      a = e[(S + 85096) >> 2] | 0;
      if (!(a & 4)) {
        if (!(((a & 128) | 0) == 0 ? (e[(s + 4788) >> 2] | 0) != 2 : 0)) {
          t = h;
          return;
        }
      } else if (a & 128) {
        t = h;
        return;
      }
      Fe(s, v, g, n, 0) | 0;
      n = 0;
      do {
        if (!(e[(s + 2304 + (n << 2)) >> 2] | 0)) o = 0;
        else o = +p(+(+r[(s + (n << 2)) >> 2]));
        r[(l + (n << 2)) >> 2] = o;
        n = (n + 1) | 0;
      } while ((n | 0) != 576);
      M = (s + 4864) | 0;
      c = 0;
      d = (e[(s + 4788) >> 2] | 0) == 2 ? 6 : 8;
      do {
        a = e[(s + 4872 + (d << 2)) >> 2] | 0;
        E = c;
        c = (a + c) | 0;
        u = (g + (d << 2)) | 0;
        e: do
          if (!(+r[u >> 2] >= 1)) {
            $i((l + (E << 2)) | 0, a, 4, 1);
            o = +r[(l + ((c + -1) << 2)) >> 2];
            i = +p(+o);
            if ((o != o) | (0 != 0) | (o == 0)) {
              if (o == 0) break;
            } else if (i <= i * 9.999999974752427e-7) break;
            _ = (1 - +r[u >> 2]) * +r[(v + (d << 2)) >> 2];
            n = 0;
            while (1) {
              f = (n + 1) | 0;
              r: do
                if ((f | 0) < (a | 0)) {
                  k = +r[(l + ((n + c - a) << 2)) >> 2];
                  b = +p(+k);
                  u = (n + E) | 0;
                  y = b * 9.999999974752427e-7;
                  w = f;
                  f = 1;
                  while (1) {
                    i = +r[(l + ((u + f) << 2)) >> 2];
                    o = +p(+i);
                    i = +p(+(k - i));
                    if (b > o) {
                      if (!(i <= y)) {
                        m = 1;
                        break r;
                      }
                    } else if (!(i <= o * 9.999999974752427e-7)) {
                      m = 1;
                      break r;
                    }
                    f = (f + 1) | 0;
                    w = (f + n) | 0;
                    if ((w | 0) >= (a | 0)) {
                      m = 0;
                      break;
                    }
                  }
                } else {
                  w = f;
                  m = 0;
                  u = (E + n) | 0;
                  f = 1;
                }
              while (0);
              i = +r[(l + (u << 2)) >> 2];
              i = i * i * +(f | 0);
              if (_ < i) break;
              if (m) {
                _ = _ - i;
                n = w;
              } else break e;
            }
            if (n) {
              i = +r[(l + ((u + -1) << 2)) >> 2];
              o = +p(+i);
              if ((i != i) | (0 != 0) | (i == 0)) {
                if (i == 0) break;
              } else if (o <= o * 9.999999974752427e-7) break;
              while (1) {
                n = (c - a) | 0;
                if (+p(+(+r[(s + (n << 2)) >> 2])) <= i) e[(s + 2304 + (n << 2)) >> 2] = 0;
                if ((a | 0) > 1) a = (a + -1) | 0;
                else break;
              }
            }
          }
        while (0);
        d = (d + 1) | 0;
      } while ((d | 0) < (e[M >> 2] | 0));
      e[(s + 4768) >> 2] = mr(S, s, 0) | 0;
      t = h;
      return;
    }
    function qr(e, i) {
      e = e | 0;
      i = i | 0;
      var t = 0,
        n = 0;
      n = +r[e >> 2];
      t = +r[i >> 2];
      return (n > t ? 1 : ((n < t) << 31) >> 31) | 0;
    }
    function zr(t) {
      t = t | 0;
      var o = 0,
        i = 0,
        l = 0,
        a = 0,
        f = 0,
        u = 0,
        c = 0,
        m = 0,
        _ = 0,
        p = 0,
        w = 0,
        E = 0,
        n = 0,
        s = 0,
        h = 0;
      o = (t + 8) | 0;
      if (e[o >> 2] | 0) return;
      e[o >> 2] = 1;
      e[(t + 21312) >> 2] = 0;
      w = (t + 16) | 0;
      E = (t + 85796) | 0;
      n = e[E >> 2] | 0;
      m = +(e[(t + 64) >> 2] | 0);
      i = m * 0.0008680555620230734;
      _ = (t + 224) | 0;
      p = (t + 196) | 0;
      f = 0;
      do {
        o = e[(t + 21360 + (f << 2)) >> 2] | 0;
        a = f;
        f = (f + 1) | 0;
        l = e[(t + 21360 + (f << 2)) >> 2] | 0;
        a = (n + 24 + (a << 2)) | 0;
        r[a >> 2] = 9.999999933815813e36;
        if ((o | 0) < (l | 0))
          do {
            h = +L(w, +(o | 0) * i);
            s = +r[_ >> 2];
            s = +d(10, +((+r[p >> 2] + h + (s > 0 ? -s : -100)) * 0.10000000149011612));
            h = +r[a >> 2];
            r[a >> 2] = h < s ? h : s;
            o = (o + 1) | 0;
          } while ((o | 0) != (l | 0));
      } while ((f | 0) != 22);
      f = 0;
      do {
        o = e[(t + 21508 + (f << 2)) >> 2] | 0;
        l = f;
        f = (f + 1) | 0;
        a = e[(t + 21508 + (f << 2)) >> 2] | 0;
        l = (n + 164 + (l << 2)) | 0;
        r[l >> 2] = 9.999999933815813e36;
        if ((o | 0) < (a | 0))
          do {
            h = +L(w, +(o | 0) * i);
            s = +r[_ >> 2];
            s = +d(10, +((+r[p >> 2] + h + (s > 0 ? -s : -100)) * 0.10000000149011612));
            h = +r[l >> 2];
            r[l >> 2] = h < s ? h : s;
            o = (o + 1) | 0;
          } while ((o | 0) != (a | 0));
      } while ((f | 0) != 6);
      m = m * 0.0026041667442768812;
      a = e[(t + 21452) >> 2] | 0;
      o = 0;
      do {
        c = (t + 21452 + (o << 2)) | 0;
        u = o;
        o = (o + 1) | 0;
        l = (t + 21452 + (o << 2)) | 0;
        f = e[l >> 2] | 0;
        u = (n + 112 + (u << 2)) | 0;
        r[u >> 2] = 9.999999933815813e36;
        if ((a | 0) < (f | 0)) {
          do {
            s = +L(w, +(a | 0) * m);
            i = +r[_ >> 2];
            i = +d(10, +((+r[p >> 2] + s + (i > 0 ? -i : -100)) * 0.10000000149011612));
            s = +r[u >> 2];
            i = s < i ? s : i;
            r[u >> 2] = i;
            a = (a + 1) | 0;
          } while ((a | 0) != (f | 0));
          a = e[l >> 2] | 0;
        } else {
          a = f;
          i = 9.999999933815813e36;
        }
        r[u >> 2] = +((a - (e[c >> 2] | 0)) | 0) * i;
      } while ((o | 0) != 13);
      l = (t + 21504) | 0;
      o = (t + 21500) | 0;
      c = 0;
      do {
        a = e[(t + 21536 + (c << 2)) >> 2] | 0;
        u = c;
        c = (c + 1) | 0;
        f = e[(t + 21536 + (c << 2)) >> 2] | 0;
        u = (n + 188 + (u << 2)) | 0;
        r[u >> 2] = 9.999999933815813e36;
        if ((a | 0) < (f | 0)) {
          do {
            s = +L(w, +(a | 0) * m);
            i = +r[_ >> 2];
            i = +d(10, +((+r[p >> 2] + s + (i > 0 ? -i : -100)) * 0.10000000149011612));
            s = +r[u >> 2];
            i = s < i ? s : i;
            r[u >> 2] = i;
            a = (a + 1) | 0;
          } while ((a | 0) != (f | 0));
        } else i = 9.999999933815813e36;
        r[u >> 2] = +(((e[l >> 2] | 0) - (e[o >> 2] | 0)) | 0) * i;
      } while ((c | 0) != 6);
      if (e[(t + 220) >> 2] | 0) {
        r[(n + 24) >> 2] = 9.999999682655225e-21;
        r[(n + 28) >> 2] = 9.999999682655225e-21;
        r[(n + 32) >> 2] = 9.999999682655225e-21;
        r[(n + 36) >> 2] = 9.999999682655225e-21;
        r[(n + 40) >> 2] = 9.999999682655225e-21;
        r[(n + 44) >> 2] = 9.999999682655225e-21;
        r[(n + 48) >> 2] = 9.999999682655225e-21;
        r[(n + 52) >> 2] = 9.999999682655225e-21;
        r[(n + 56) >> 2] = 9.999999682655225e-21;
        r[(n + 60) >> 2] = 9.999999682655225e-21;
        r[(n + 64) >> 2] = 9.999999682655225e-21;
        r[(n + 68) >> 2] = 9.999999682655225e-21;
        r[(n + 72) >> 2] = 9.999999682655225e-21;
        r[(n + 76) >> 2] = 9.999999682655225e-21;
        r[(n + 80) >> 2] = 9.999999682655225e-21;
        r[(n + 84) >> 2] = 9.999999682655225e-21;
        r[(n + 88) >> 2] = 9.999999682655225e-21;
        r[(n + 92) >> 2] = 9.999999682655225e-21;
        r[(n + 96) >> 2] = 9.999999682655225e-21;
        r[(n + 100) >> 2] = 9.999999682655225e-21;
        r[(n + 104) >> 2] = 9.999999682655225e-21;
        r[(n + 108) >> 2] = 9.999999682655225e-21;
        r[(n + 164) >> 2] = 9.999999682655225e-21;
        r[(n + 168) >> 2] = 9.999999682655225e-21;
        r[(n + 172) >> 2] = 9.999999682655225e-21;
        r[(n + 176) >> 2] = 9.999999682655225e-21;
        r[(n + 180) >> 2] = 9.999999682655225e-21;
        r[(n + 184) >> 2] = 9.999999682655225e-21;
        r[(n + 112) >> 2] = 9.999999682655225e-21;
        r[(n + 116) >> 2] = 9.999999682655225e-21;
        r[(n + 120) >> 2] = 9.999999682655225e-21;
        r[(n + 124) >> 2] = 9.999999682655225e-21;
        r[(n + 128) >> 2] = 9.999999682655225e-21;
        r[(n + 132) >> 2] = 9.999999682655225e-21;
        r[(n + 136) >> 2] = 9.999999682655225e-21;
        r[(n + 140) >> 2] = 9.999999682655225e-21;
        r[(n + 144) >> 2] = 9.999999682655225e-21;
        r[(n + 148) >> 2] = 9.999999682655225e-21;
        r[(n + 152) >> 2] = 9.999999682655225e-21;
        r[(n + 156) >> 2] = 9.999999682655225e-21;
        r[(n + 160) >> 2] = 9.999999682655225e-21;
        r[(n + 188) >> 2] = 9.999999682655225e-21;
        r[(n + 192) >> 2] = 9.999999682655225e-21;
        r[(n + 196) >> 2] = 9.999999682655225e-21;
        r[(n + 200) >> 2] = 9.999999682655225e-21;
        r[(n + 204) >> 2] = 9.999999682655225e-21;
        r[(n + 208) >> 2] = 9.999999682655225e-21;
      }
      m = +L(w, -1);
      i = +r[_ >> 2];
      i = +Mr(+d(10, +((+r[p >> 2] + m + (i > 0 ? -i : -100)) * 0.10000000149011612))) * 10;
      r[((e[E >> 2] | 0) + 20) >> 2] = i;
      r[3510] = 0;
      o = 1;
      do {
        r[(14040 + (o << 2)) >> 2] = +d(+(+(o | 0)), 1.3333333333333333);
        o = (o + 1) | 0;
      } while ((o | 0) != 8208);
      r[11718] = 0;
      i = +r[3510];
      o = 1;
      do {
        m = i;
        i = +r[(14040 + (o << 2)) >> 2];
        r[(46872 + (o << 2)) >> 2] = +(o | 0) + -0.5 - +d(+((i + m) * 0.5), 0.75);
        o = (o + 1) | 0;
      } while ((o | 0) != 8208);
      o = 0;
      do {
        r[(79704 + (o << 2)) >> 2] = +Or(+((o + -210) | 0) * -0.1875);
        o = (o + 1) | 0;
      } while ((o | 0) != 257);
      o = 0;
      do {
        r[(80736 + (o << 2)) >> 2] = +Or(+((o + -326) | 0) * 0.25);
        o = (o + 1) | 0;
      } while ((o | 0) != 374);
      yi(t);
      Jr(t);
      c = (t + 232) | 0;
      i = +d(10, +((+r[c >> 2] + -0.5) * 0.10000000149011612));
      r[(t + 84768) >> 2] = i;
      r[(t + 84772) >> 2] = i;
      r[(t + 84776) >> 2] = i;
      r[(t + 84780) >> 2] = i;
      r[(t + 84784) >> 2] = i;
      r[(t + 84788) >> 2] = i;
      r[(t + 84792) >> 2] = i;
      _ = (t + 228) | 0;
      i = +d(10, +((+r[_ >> 2] + -0.25) * 0.10000000149011612));
      r[(t + 84796) >> 2] = i;
      r[(t + 84800) >> 2] = i;
      r[(t + 84804) >> 2] = i;
      r[(t + 84808) >> 2] = i;
      r[(t + 84812) >> 2] = i;
      r[(t + 84816) >> 2] = i;
      r[(t + 84820) >> 2] = i;
      p = (t + 236) | 0;
      i = +d(10, +((+r[p >> 2] + -0.02500000037252903) * 0.10000000149011612));
      r[(t + 84824) >> 2] = i;
      r[(t + 84828) >> 2] = i;
      r[(t + 84832) >> 2] = i;
      r[(t + 84836) >> 2] = i;
      r[(t + 84840) >> 2] = i;
      r[(t + 84844) >> 2] = i;
      r[(t + 84848) >> 2] = i;
      w = (t + 240) | 0;
      r[(t + 84852) >> 2] = +d(10, +((+r[w >> 2] + 0.5) * 0.10000000149011612));
      i = +d(10, +((+r[c >> 2] + -2) * 0.10000000149011612));
      r[(t + 84856) >> 2] = i;
      r[(t + 84860) >> 2] = i;
      r[(t + 84864) >> 2] = i;
      i = +d(10, +((+r[_ >> 2] + -1) * 0.10000000149011612));
      r[(t + 84868) >> 2] = i;
      r[(t + 84872) >> 2] = i;
      r[(t + 84876) >> 2] = i;
      r[(t + 84880) >> 2] = i;
      i = +d(10, +((+r[p >> 2] + -0.05000000074505806) * 0.10000000149011612));
      r[(t + 84884) >> 2] = i;
      r[(t + 84888) >> 2] = i;
      r[(t + 84892) >> 2] = i;
      r[(t + 84896) >> 2] = i;
      r[(t + 84900) >> 2] = i;
      r[(t + 84904) >> 2] = +d(10, +((+r[w >> 2] + 0.5) * 0.10000000149011612));
      return;
    }
    function ze(a, u, m, n, _, o) {
      a = a | 0;
      u = u | 0;
      m = m | 0;
      n = n | 0;
      _ = _ | 0;
      o = o | 0;
      var i = 0,
        d = 0,
        E = 0,
        h = 0,
        c = 0,
        w = 0,
        p = 0,
        f = 0,
        l = 0;
      l = t;
      t = (t + 16) | 0;
      w = (l + 12) | 0;
      h = (l + 8) | 0;
      c = l;
      e[w >> 2] = 0;
      f = c;
      e[f >> 2] = 0;
      e[(f + 4) >> 2] = 0;
      Pr(a, n, h, w, o);
      h = e[h >> 2] | 0;
      o = e[w >> 2] | 0;
      f = (o + h) | 0;
      f = (f | 0) > 7680 ? 7680 : f;
      p = (a + 72) | 0;
      i = e[p >> 2] | 0;
      if ((i | 0) <= 0) {
        t = l;
        return f | 0;
      }
      E = (((n * 3) | 0) / 4) | 0;
      a = 0;
      d = 0;
      do {
        i = ((h | 0) / (i | 0)) | 0;
        i = (i | 0) > 4095 ? 4095 : i;
        e[(m + (d << 2)) >> 2] = i;
        n = ~~(+(i | 0) * +r[(u + (_ << 3) + (d << 2)) >> 2] * 0.0014285714285714286 - +(i | 0));
        n = (n | 0) > (E | 0) ? E : n;
        n = (n | 0) < 0 ? 0 : n;
        if (((n + i) | 0) > 4095) {
          n = (4095 - i) | 0;
          n = (n | 0) < 0 ? 0 : n;
        }
        e[(c + (d << 2)) >> 2] = n;
        a = (n + a) | 0;
        d = (d + 1) | 0;
        i = e[p >> 2] | 0;
      } while ((d | 0) < (i | 0));
      if (((a | 0) > 0) & ((a | 0) > (o | 0)))
        if ((i | 0) > 0) {
          n = 0;
          do {
            u = (c + (n << 2)) | 0;
            e[u >> 2] = ((s(e[u >> 2] | 0, o) | 0) / (a | 0)) | 0;
            n = (n + 1) | 0;
          } while ((n | 0) < (i | 0));
        } else {
          t = l;
          return f | 0;
        }
      if ((i | 0) > 0) i = 0;
      else {
        t = l;
        return f | 0;
      }
      do {
        n = e[(c + (i << 2)) >> 2] | 0;
        u = (m + (i << 2)) | 0;
        e[u >> 2] = (e[u >> 2] | 0) + n;
        o = (o - n) | 0;
        i = (i + 1) | 0;
        n = e[p >> 2] | 0;
      } while ((i | 0) < (n | 0));
      a = n;
      e[w >> 2] = o;
      n = (a | 0) > 0;
      if (n) {
        o = 0;
        i = 0;
      } else {
        t = l;
        return f | 0;
      }
      do {
        o = ((e[(m + (i << 2)) >> 2] | 0) + o) | 0;
        i = (i + 1) | 0;
      } while ((i | 0) < (a | 0));
      if (((o | 0) < 7681) | (n ^ 1)) {
        t = l;
        return f | 0;
      } else i = 0;
      do {
        c = (m + (i << 2)) | 0;
        e[c >> 2] = ((((e[c >> 2] | 0) * 7680) | 0) / (o | 0)) | 0;
        i = (i + 1) | 0;
      } while ((i | 0) < (e[p >> 2] | 0));
      t = l;
      return f | 0;
    }
    function ge(o, n, u, f) {
      o = o | 0;
      n = +n;
      u = u | 0;
      f = f | 0;
      var i = 0,
        r = 0,
        t = 0,
        a = 0,
        l = 0;
      n = (0.5 - n) * 0.66;
      n = n < 0 ? 0 : n;
      i = e[o >> 2] | 0;
      l = (o + 4) | 0;
      a = e[l >> 2] | 0;
      r = ~~(+((a + i) | 0) * (n > 0.5 ? 0.25 : n * 0.5));
      t = (4095 - i) | 0;
      r = (r | 0) > (t | 0) ? t : r;
      r = (r | 0) < 0 ? 0 : r;
      do
        if ((a | 0) > 124) {
          t = (a - r) | 0;
          if ((t | 0) <= 125) {
            i = (i + -125 + a) | 0;
            e[o >> 2] = i;
            e[l >> 2] = 125;
            t = 125;
            break;
          }
          if ((i | 0) < (u | 0)) {
            i = (r + i) | 0;
            e[o >> 2] = i;
          }
          e[l >> 2] = t;
        } else t = a;
      while (0);
      r = (t + i) | 0;
      if ((r | 0) <= (f | 0)) return;
      e[o >> 2] = ((s(i, f) | 0) / (r | 0)) | 0;
      e[l >> 2] = ((s(t, f) | 0) / (r | 0)) | 0;
      return;
    }
    function ye(e, r, i, t) {
      e = +e;
      r = +r;
      i = +i;
      t = +t;
      e = e * e;
      r = +b(r) * 3.0102999566398116 - i;
      if (e > 9.999999682655225e-21) e = +b(e) * 0.03333343265598758 + 1;
      else e = 0;
      return +(+d(
        10,
        +(
          (i + 90.30873107910156 + (t < 1 ? -94.82444763183594 : -t) + (e < 0 ? 0 : e) * r) *
          0.10000000149011612
        )
      ));
    }
    function J(S, v, h, f) {
      S = S | 0;
      v = v | 0;
      h = h | 0;
      f = f | 0;
      var E = 0,
        a = 0,
        s = 0,
        t = 0,
        l = 0,
        c = 0,
        o = 0,
        n = 0,
        w = 0,
        m = 0,
        g = 0,
        M = 0,
        O = 0,
        _ = 0,
        y = 0,
        u = 0,
        R = 0,
        k = 0,
        C = 0,
        L = 0,
        P = 0,
        B = 0,
        D = 0,
        F = 0,
        A = 0,
        N = 0,
        T = 0;
      F = e[(S + 85796) >> 2] | 0;
      O = (h + 4856) | 0;
      if ((e[O >> 2] | 0) > 0) {
        _ = (F + 8) | 0;
        y = (F + 20) | 0;
        R = (S + 224) | 0;
        E = 0;
        a = 0;
        g = 0;
        while (1) {
          t = +r[_ >> 2];
          c = +r[y >> 2];
          o = +r[R >> 2];
          t = t * t;
          n = +b(+r[(F + 24 + (a << 2)) >> 2]) * 3.0102999566398116 - c;
          if (t > 9.999999682655225e-21) l = +b(t) * 0.03333343265598758 + 1;
          else l = 0;
          l = +d(
            10,
            +(
              (c + 90.30873107910156 + (o < 1 ? -94.82444763183594 : -o) + (l < 0 ? 0 : l) * n) *
              0.10000000149011612
            )
          );
          M = +r[(S + 84768 + (a << 2)) >> 2];
          l = M * l;
          m = e[(h + 4872 + (a << 2)) >> 2] | 0;
          c = l / +(m | 0);
          if ((m | 0) > 0) {
            o = 0;
            s = g;
            w = 0;
            n = 2.220446049250313e-16;
            while (1) {
              t = +r[(h + (s << 2)) >> 2];
              t = t * t;
              o = t + o;
              n = (t < c ? t : c) + n;
              w = (w + 1) | 0;
              if ((w | 0) == (m | 0)) break;
              else s = (s + 1) | 0;
            }
            g = (g + m) | 0;
          } else {
            o = 0;
            n = 2.220446049250313e-16;
          }
          E = (((o > l) & 1) + E) | 0;
          t = o < l ? o : n < l ? l : n;
          l = +r[(v + 244 + (a << 2)) >> 2];
          if (
            l > 9.999999960041972e-13 ? ((u = M * ((+r[(v + (a << 2)) >> 2] * o) / l)), t < u) : 0
          )
            t = u;
          t = t > 2.220446049250313e-16 ? t : 2.220446049250313e-16;
          i[(h + 5212 + a) >> 0] = (o > t + 9.9999998245167e-15) & 1;
          s = (f + 4) | 0;
          r[f >> 2] = t;
          a = (a + 1) | 0;
          if ((a | 0) < (e[O >> 2] | 0)) f = s;
          else {
            w = s;
            m = a;
            break;
          }
        }
      } else {
        w = f;
        E = 0;
        m = 0;
        g = 0;
      }
      a = 575;
      while (1) {
        if (+p(+(+r[(h + (a << 2)) >> 2])) > 9.999999960041972e-13) break;
        if ((a | 0) > 1) a = (a + -1) | 0;
        else {
          a = 0;
          break;
        }
      }
      s = (e[(h + 4788) >> 2] | 0) == 2;
      if (s) a = (a + 5 - ((a | 0) % 6 | 0)) | 0;
      else a = a | 1;
      if ((e[(S + 85092) >> 2] | 0) == 0 ? ((k = e[(S + 64) >> 2] | 0), (k | 0) < 44e3) : 0) {
        f = (k | 0) < 8001;
        if (s) f = ((e[(S + 21452 + ((f ? 9 : 12) << 2)) >> 2] | 0) * 3) | 0;
        else f = e[(S + 21360 + ((f ? 17 : 21) << 2)) >> 2] | 0;
        y = (f + -1) | 0;
        a = (a | 0) > (y | 0) ? y : a;
      }
      e[(h + 5208) >> 2] = a;
      y = (h + 4864) | 0;
      if ((m | 0) >= (e[y >> 2] | 0)) {
        y = E;
        return y | 0;
      }
      C = (F + 8) | 0;
      L = (F + 20) | 0;
      P = (S + 224) | 0;
      B = (S + 92) | 0;
      D = (S + 85800) | 0;
      a = g;
      _ = e[(h + 4852) >> 2] | 0;
      while (1) {
        o = +r[C >> 2];
        c = +r[L >> 2];
        l = +r[P >> 2];
        o = o * o;
        t = +b(+r[(F + 112 + (_ << 2)) >> 2]) * 3.0102999566398116 - c;
        if (o > 9.999999682655225e-21) n = +b(o) * 0.03333343265598758 + 1;
        else n = 0;
        u = +d(
          10,
          +(
            (c + 90.30873107910156 + (l < 1 ? -94.82444763183594 : -l) + (n < 0 ? 0 : n) * t) *
            0.10000000149011612
          )
        );
        R = (S + 84856 + (_ << 2)) | 0;
        l = +r[R >> 2];
        u = l * u;
        k = e[(h + 4872 + (m << 2)) >> 2] | 0;
        M = u / +(k | 0);
        if ((k | 0) > 0) {
          o = 0;
          s = a;
          f = 0;
          n = 2.220446049250313e-16;
          while (1) {
            t = +r[(h + (s << 2)) >> 2];
            t = t * t;
            o = t + o;
            n = (t < M ? t : M) + n;
            f = (f + 1) | 0;
            if ((f | 0) == (k | 0)) {
              c = o;
              break;
            } else s = (s + 1) | 0;
          }
          g = (k + a) | 0;
          O = (((c > u) & 1) + E) | 0;
          n = c < u ? c : n < u ? u : n;
          o = +r[(v + 332 + ((_ * 12) | 0)) >> 2];
          if (
            o > 9.999999960041972e-13
              ? ((A = l * ((+r[(v + 88 + ((_ * 12) | 0)) >> 2] * c) / o)), n < A)
              : 0
          )
            n = A;
          o = n > 2.220446049250313e-16 ? n : 2.220446049250313e-16;
          i[(h + 5212 + m) >> 0] = (c > o + 9.9999998245167e-15) & 1;
          a = (w + 4) | 0;
          r[w >> 2] = o;
          o = 0;
          s = g;
          f = 0;
          n = 2.220446049250313e-16;
          while (1) {
            t = +r[(h + (s << 2)) >> 2];
            t = t * t;
            o = t + o;
            n = (t < M ? t : M) + n;
            f = (f + 1) | 0;
            if ((f | 0) == (k | 0)) {
              c = o;
              break;
            } else s = (s + 1) | 0;
          }
          E = (k + g) | 0;
          O = (((c > u) & 1) + O) | 0;
          n = c < u ? c : n < u ? u : n;
          o = +r[(v + 332 + ((_ * 12) | 0) + 4) >> 2];
          if (
            o > 9.999999960041972e-13
              ? ((N = +r[R >> 2] * ((+r[(v + 88 + ((_ * 12) | 0) + 4) >> 2] * c) / o)), n < N)
              : 0
          )
            n = N;
          o = n > 2.220446049250313e-16 ? n : 2.220446049250313e-16;
          i[(m + 1 + (h + 5212)) >> 0] = (c > o + 9.9999998245167e-15) & 1;
          g = (w + 8) | 0;
          r[a >> 2] = o;
          o = 0;
          s = E;
          f = 0;
          n = 2.220446049250313e-16;
          while (1) {
            t = +r[(h + (s << 2)) >> 2];
            t = t * t;
            o = t + o;
            n = (t < M ? t : M) + n;
            f = (f + 1) | 0;
            if ((f | 0) == (k | 0)) break;
            else s = (s + 1) | 0;
          }
          a = (k + E) | 0;
          E = (((o > u) & 1) + O) | 0;
          l = o < u ? o : n < u ? u : n;
          n = +r[(v + 332 + ((_ * 12) | 0) + 8) >> 2];
          if (
            n > 9.999999960041972e-13
              ? ((T = +r[R >> 2] * ((+r[(v + 88 + ((_ * 12) | 0) + 8) >> 2] * o) / n)), l < T)
              : 0
          )
            l = T;
          n = l > 2.220446049250313e-16 ? l : 2.220446049250313e-16;
          i[(m + 2 + (h + 5212)) >> 0] = (o > n + 9.9999998245167e-15) & 1;
          r[g >> 2] = n;
        } else {
          s = (u < 0) & 1;
          n = u > 0 ? 0 : u > 2.220446049250313e-16 ? u : 2.220446049250313e-16;
          t = (n < 0 ? +r[(v + 332 + ((_ * 12) | 0)) >> 2] > 9.999999960041972e-13 : 0) ? 0 : n;
          t = t > 2.220446049250313e-16 ? t : 2.220446049250313e-16;
          i[(h + 5212 + m) >> 0] = (t + 9.9999998245167e-15 < 0) & 1;
          r[w >> 2] = t;
          t = (n < 0 ? +r[(v + 332 + ((_ * 12) | 0) + 4) >> 2] > 9.999999960041972e-13 : 0) ? 0 : n;
          t = t > 2.220446049250313e-16 ? t : 2.220446049250313e-16;
          i[(m + 1 + (h + 5212)) >> 0] = (t + 9.9999998245167e-15 < 0) & 1;
          r[(w + 4) >> 2] = t;
          n = (n < 0 ? +r[(v + 332 + ((_ * 12) | 0) + 8) >> 2] > 9.999999960041972e-13 : 0) ? 0 : n;
          n = n > 2.220446049250313e-16 ? n : 2.220446049250313e-16;
          i[(m + 2 + (h + 5212)) >> 0] = (n + 9.9999998245167e-15 < 0) & 1;
          r[(w + 8) >> 2] = n;
          E = (s + (s + (s + E))) | 0;
        }
        f = (w + 8) | 0;
        if (e[B >> 2] | 0) {
          o = +r[w >> 2];
          s = (w + 4) | 0;
          t = +r[s >> 2];
          if (o > t) {
            t = +r[((e[D >> 2] | 0) + 6496) >> 2] * (o - t) + t;
            r[s >> 2] = t;
            n = +r[f >> 2];
          }
          if (t > n) r[f >> 2] = +r[((e[D >> 2] | 0) + 6496) >> 2] * (t - n) + n;
        }
        w = (w + 12) | 0;
        m = (m + 3) | 0;
        if ((m | 0) >= (e[y >> 2] | 0)) break;
        else _ = (_ + 1) | 0;
      }
      return E | 0;
    }
    function Fe(n, A, E, w, _) {
      n = n | 0;
      A = A | 0;
      E = E | 0;
      w = w | 0;
      _ = _ | 0;
      var k = 0,
        g = 0,
        R = 0,
        i = 0,
        a = 0,
        f = 0,
        o = 0,
        l = 0,
        L = 0,
        y = 0,
        u = 0,
        d = 0,
        T = 0,
        c = 0,
        M = 0,
        P = 0,
        B = 0,
        U = 0,
        H = 0,
        I = 0,
        C = 0,
        x = 0,
        v = 0,
        N = 0,
        m = 0,
        O = 0,
        D = 0,
        h = 0,
        S = 0,
        F = 0;
      D = t;
      t = (t + 16) | 0;
      O = D;
      P = (w + 16) | 0;
      e[P >> 2] = 0;
      B = (n + 4864) | 0;
      if ((e[B >> 2] | 0) <= 0) {
        k = -20;
        m = 0;
        y = 0;
        g = 0;
        v = (w + 12) | 0;
        e[v >> 2] = m;
        v = (w + 4) | 0;
        r[v >> 2] = g;
        r[w >> 2] = y;
        v = (w + 8) | 0;
        r[v >> 2] = k;
        t = D;
        return m | 0;
      }
      C = (n + 4780) | 0;
      x = (n + 4832) | 0;
      v = (n + 4836) | 0;
      N = (_ | 0) != 0;
      m = (n + 5208) | 0;
      U = (n + 4776) | 0;
      H = (n + 4772) | 0;
      I = (O + 4) | 0;
      M = E;
      u = 0;
      R = -20;
      E = 0;
      g = 0;
      T = (n + 4608) | 0;
      c = 0;
      k = 0;
      while (1) {
        f = e[C >> 2] | 0;
        if (!(e[x >> 2] | 0)) i = 0;
        else i = e[(12112 + (c << 2)) >> 2] | 0;
        L =
          (f -
            ((i + (e[T >> 2] | 0)) << ((e[v >> 2] | 0) + 1)) -
            (e[(n + 4808 + (e[(n + 5028 + (c << 2)) >> 2] << 2)) >> 2] << 3)) |
          0;
        T = (T + 4) | 0;
        y = 1 / +r[A >> 2];
        A = (A + 4) | 0;
        if (N ? (e[(_ + 8 + (c << 2)) >> 2] | 0) == (L | 0) : 0) {
          i = ((e[(n + 4872 + (c << 2)) >> 2] | 0) + u) | 0;
          a = +r[(_ + 164 + (c << 2)) >> 2] * y;
          o = +r[(_ + 320 + (c << 2)) >> 2];
          d = 27;
        } else d = 8;
        do
          if ((d | 0) == 8) {
            d = 0;
            o = +r[(80736 + ((L + 116) << 2)) >> 2];
            l = e[(n + 4872 + (c << 2)) >> 2] | 0;
            f = l >> 1;
            i = e[m >> 2] | 0;
            if (((l + u) | 0) > (i | 0)) {
              f = (i - u) | 0;
              if ((f | 0) > -1) f = (f + 1) >> 1;
              else f = 0;
            }
            do
              if ((u | 0) > (e[U >> 2] | 0))
                if (!f) {
                  i = u;
                  a = 0;
                } else {
                  i = f;
                  l = u;
                  a = 0;
                  while (1) {
                    i = (i + -1) | 0;
                    h = +r[(n + (l << 2)) >> 2];
                    o = +r[(n + ((l + 1) << 2)) >> 2];
                    a = h * h + a + o * o;
                    if (!i) break;
                    else l = (l + 2) | 0;
                  }
                  i = ((f << 1) + u) | 0;
                }
              else if ((u | 0) > (e[H >> 2] | 0)) {
                r[O >> 2] = 0;
                r[I >> 2] = o;
                if (!f) {
                  i = u;
                  a = 0;
                  break;
                } else {
                  i = f;
                  l = u;
                  a = 0;
                }
                while (1) {
                  i = (i + -1) | 0;
                  h = +p(+(+r[(n + (l << 2)) >> 2]));
                  h = h - +r[(O + (e[(n + 2304 + (l << 2)) >> 2] << 2)) >> 2];
                  S = (l + 1) | 0;
                  o = +p(+(+r[(n + (S << 2)) >> 2]));
                  o = o - +r[(O + (e[(n + 2304 + (S << 2)) >> 2] << 2)) >> 2];
                  a = h * h + a + o * o;
                  if (!i) break;
                  else l = (l + 2) | 0;
                }
                i = ((f << 1) + u) | 0;
                break;
              } else {
                if (!f) {
                  i = u;
                  a = 0;
                  break;
                } else {
                  l = f;
                  i = u;
                  a = 0;
                }
                while (1) {
                  l = (l + -1) | 0;
                  F = +p(+(+r[(n + (i << 2)) >> 2]));
                  F = F - +r[(14040 + (e[(n + 2304 + (i << 2)) >> 2] << 2)) >> 2] * o;
                  S = (i + 1) | 0;
                  h = +p(+(+r[(n + (S << 2)) >> 2]));
                  h = h - +r[(14040 + (e[(n + 2304 + (S << 2)) >> 2] << 2)) >> 2] * o;
                  a = F * F + a + h * h;
                  if (!l) break;
                  else i = (i + 2) | 0;
                }
                i = ((f << 1) + u) | 0;
                break;
              }
            while (0);
            if (N) {
              e[(_ + 8 + (c << 2)) >> 2] = L;
              r[(_ + 164 + (c << 2)) >> 2] = a;
            }
            a = a * y;
            o = +b(a > 9.999999682655225e-21 ? a : 9.999999682655225e-21) * 0.30102999566398114;
            if (N) {
              r[(_ + 320 + (c << 2)) >> 2] = o;
              f = e[C >> 2] | 0;
              d = 27;
              break;
            } else {
              r[M >> 2] = a;
              break;
            }
          }
        while (0);
        if ((d | 0) == 27) {
          r[M >> 2] = a;
          e[_ >> 2] = f;
        }
        k = o + k;
        if (o > 0) {
          d = ~~(o * 10 + 0.5);
          d = (d | 0) > 1 ? d : 1;
          d = s(d, d) | 0;
          e[P >> 2] = (e[P >> 2] | 0) + d;
          E = (E + 1) | 0;
          g = o + g;
        }
        R = R > o ? R : o;
        c = (c + 1) | 0;
        if ((c | 0) >= (e[B >> 2] | 0)) break;
        else {
          M = (M + 4) | 0;
          u = i;
        }
      }
      m = (w + 12) | 0;
      e[m >> 2] = E;
      m = (w + 4) | 0;
      r[m >> 2] = k;
      r[w >> 2] = g;
      m = (w + 8) | 0;
      r[m >> 2] = R;
      t = D;
      return E | 0;
    }
    function Ur(u, _) {
      u = u | 0;
      _ = _ | 0;
      var m = 0,
        d = 0,
        a = 0,
        p = 0,
        h = 0,
        n = 0,
        P = 0,
        A = 0,
        S = 0,
        v = 0,
        c = 0,
        y = 0,
        g = 0,
        D = 0,
        b = 0,
        E = 0,
        C = 0,
        N = 0,
        w = 0,
        L = 0,
        ie = 0,
        te = 0,
        ne = 0,
        G = 0,
        T = 0,
        R = 0,
        z = 0,
        re = 0,
        i = 0,
        o = 0,
        ee = 0,
        Y = 0,
        $ = 0,
        x = 0,
        X = 0,
        V = 0,
        U = 0,
        W = 0,
        H = 0,
        K = 0,
        j = 0,
        B = 0,
        Z = 0,
        Q = 0,
        k = 0,
        F = 0,
        q = 0,
        O = 0,
        I = 0,
        M = 0;
      M = t;
      t = (t + 496) | 0;
      k = (M + 340) | 0;
      O = (M + 184) | 0;
      F = (M + 160) | 0;
      q = M;
      Y = (u + 76) | 0;
      m = e[Y >> 2] | 0;
      if ((m | 0) <= 0) {
        t = M;
        return;
      }
      W = (u + 72) | 0;
      H = (u + 85804) | 0;
      K = (u + 212) | 0;
      j = (u + 85796) | 0;
      ee = (u + 21360) | 0;
      B = (u + 216) | 0;
      Z = (F + 12) | 0;
      Q = (F + 8) | 0;
      $ = (F + 4) | 0;
      X = (F + 16) | 0;
      d = e[W >> 2] | 0;
      o = 0;
      do {
        if ((d | 0) > 0) {
          re = (o | 0) == 1;
          i = 0;
          do {
            p = (u + 304 + ((o * 10504) | 0) + ((i * 5252) | 0)) | 0;
            z = (u + 304 + ((o * 10504) | 0) + ((i * 5252) | 0) + 4608) | 0;
            l(q | 0, z | 0, 156) | 0;
            if (
              re
                ? ((V = (u + 10808 + ((i * 5252) | 0) + 4848) | 0),
                  (U = e[V >> 2] | 0),
                  (U | 0) > 0)
                : 0
            ) {
              d = U;
              a = 0;
              do {
                m = (u + 10808 + ((i * 5252) | 0) + 4608 + (a << 2)) | 0;
                if ((e[m >> 2] | 0) < 0) {
                  e[m >> 2] = e[(u + 304 + ((i * 5252) | 0) + 4608 + (a << 2)) >> 2];
                  d = e[V >> 2] | 0;
                }
                a = (a + 1) | 0;
              } while ((a | 0) < (d | 0));
            }
            R =
              (e[(u + 304 + ((o * 10504) | 0) + ((i * 5252) | 0) + 4836) >> 2] | 0) == 0 ? 0.5 : 1;
            J(u, (_ + ((o * 976) | 0) + ((i * 488) | 0)) | 0, p, k) | 0;
            Fe(p, k, O, F, 0) | 0;
            d = e[(u + 304 + ((o * 10504) | 0) + ((i * 5252) | 0) + 4848) >> 2] | 0;
            y = (e[(u + 304 + ((o * 10504) | 0) + ((i * 5252) | 0) + 4788) >> 2] | 0) == 2;
            if (
              !y ? (e[(u + 304 + ((o * 10504) | 0) + ((i * 5252) | 0) + 4792) >> 2] | 0) == 0 : 0
            ) {
              d = 22;
              I = 13;
            } else if ((d | 0) > 0) I = 13;
            else {
              p = 0;
              d = 0;
            }
            if ((I | 0) == 13) {
              I = 0;
              m = e[H >> 2] | 0;
              P = e[j >> 2] | 0;
              A = (e[(u + 304 + ((o * 10504) | 0) + ((i * 5252) | 0) + 4832) >> 2] | 0) != 0;
              S = e[ee >> 2] | 0;
              p = 0;
              v = 0;
              do {
                c = v;
                v = (v + 1) | 0;
                a = S;
                S = e[(u + 21360 + (v << 2)) >> 2] | 0;
                a = (S - a) | 0;
                if ((p | 0) < (S | 0)) {
                  h = 0;
                  do {
                    n = +r[(u + 304 + ((o * 10504) | 0) + ((i * 5252) | 0) + (p << 2)) >> 2];
                    h = n * n + h;
                    p = (p + 1) | 0;
                  } while ((p | 0) != (S | 0));
                  p = S;
                } else h = 0;
                n = +(a | 0);
                h = h / n;
                f[(m + 190712 + ((o * 704) | 0) + ((i * 176) | 0) + (c << 3)) >> 3] =
                  h * 999999986991104;
                f[(m + 201208 + ((o * 352) | 0) + ((i * 176) | 0) + (c << 3)) >> 3] =
                  (+r[(k + (c << 2)) >> 2] * 999999986991104 * +r[(O + (c << 2)) >> 2]) / n;
                n = +r[(_ + ((o * 976) | 0) + ((i * 488) | 0) + 244 + (c << 2)) >> 2];
                if (n > 0) h = (e[K >> 2] | 0) == 0 ? h / n : 0;
                else h = 0;
                n = +r[(_ + ((o * 976) | 0) + ((i * 488) | 0) + (c << 2)) >> 2] * h;
                h = +r[(P + 24 + (c << 2)) >> 2];
                f[(m + 189304 + ((o * 704) | 0) + ((i * 176) | 0) + (c << 3)) >> 3] =
                  (n > h ? n : h) * 999999986991104;
                a = (m + 199160 + ((o * 352) | 0) + ((i * 176) | 0) + (c << 3)) | 0;
                f[a >> 3] = 0;
                if (A & ((c | 0) > 10)) {
                  h = -(R * +(e[(12112 + (c << 2)) >> 2] | 0));
                  f[a >> 3] = h;
                } else h = 0;
                if ((c | 0) < 21)
                  f[a >> 3] =
                    h -
                    +(
                      e[(u + 304 + ((o * 10504) | 0) + ((i * 5252) | 0) + 4608 + (c << 2)) >> 2] | 0
                    ) *
                      R;
              } while ((v | 0) != (d | 0));
            }
            if (
              y
                ? ((x = e[(u + 304 + ((o * 10504) | 0) + ((i * 5252) | 0) + 4852) >> 2] | 0),
                  (x | 0) < 13)
                : 0
            ) {
              w = e[H >> 2] | 0;
              L = (e[K >> 2] | 0) == 0;
              ie = e[j >> 2] | 0;
              te = (u + 304 + ((o * 10504) | 0) + ((i * 5252) | 0) + 4808) | 0;
              ne = (u + 304 + ((o * 10504) | 0) + ((i * 5252) | 0) + 4812) | 0;
              G = (u + 304 + ((o * 10504) | 0) + ((i * 5252) | 0) + 4816) | 0;
              T = e[(u + 21452 + (x << 2)) >> 2] | 0;
              N = x;
              while (1) {
                E = N;
                N = (N + 1) | 0;
                A = T;
                T = e[(u + 21452 + (N << 2)) >> 2] | 0;
                P = (T - A) | 0;
                D = +(P | 0);
                g = (E * 3) | 0;
                b = +r[(ie + 112 + (E << 2)) >> 2];
                C = (E | 0) < 12;
                if ((T | 0) <= (A | 0)) {
                  f[
                    (w + 194616 + ((o * 1248) | 0) + ((i * 312) | 0) + (g << 3)) >> 3
                  ] = 9999999747378752e-21;
                  f[(w + 201912 + ((o * 624) | 0) + ((i * 312) | 0) + (g << 3)) >> 3] =
                    (+r[(k + (d << 2)) >> 2] * 999999986991104 * +r[(O + (d << 2)) >> 2]) / D;
                  n = +r[(_ + ((o * 976) | 0) + ((i * 488) | 0) + 332 + ((E * 12) | 0)) >> 2];
                  if (L ? (e[B >> 2] | 0) == 0 : 0) n = n > 0 ? 9.999999682655225e-21 / n : 0;
                  else n = 0;
                  n = +r[(_ + ((o * 976) | 0) + ((i * 488) | 0) + 88 + ((E * 12) | 0)) >> 2] * n;
                  f[(w + 192120 + ((o * 1248) | 0) + ((i * 312) | 0) + (g << 3)) >> 3] =
                    (n > b ? n : b) * 999999986991104;
                  n = +(e[te >> 2] | 0) * -2;
                  a = (w + 199864 + ((o * 624) | 0) + ((i * 312) | 0) + (g << 3)) | 0;
                  f[a >> 3] = n;
                  if (C)
                    f[a >> 3] =
                      n -
                      +(
                        e[(u + 304 + ((o * 10504) | 0) + ((i * 5252) | 0) + 4608 + (d << 2)) >> 2] |
                        0
                      ) *
                        R;
                  c = (d + 1) | 0;
                  a = (g + 1) | 0;
                  f[
                    (w + 194616 + ((o * 1248) | 0) + ((i * 312) | 0) + (a << 3)) >> 3
                  ] = 9999999747378752e-21;
                  f[(w + 201912 + ((o * 624) | 0) + ((i * 312) | 0) + (a << 3)) >> 3] =
                    (+r[(k + (c << 2)) >> 2] * 999999986991104 * +r[(O + (c << 2)) >> 2]) / D;
                  n = +r[(_ + ((o * 976) | 0) + ((i * 488) | 0) + 332 + ((E * 12) | 0) + 4) >> 2];
                  if (L ? (e[B >> 2] | 0) == 0 : 0) n = n > 0 ? 9.999999682655225e-21 / n : 0;
                  else n = 0;
                  n =
                    +r[(_ + ((o * 976) | 0) + ((i * 488) | 0) + 88 + ((E * 12) | 0) + 4) >> 2] * n;
                  f[(w + 192120 + ((o * 1248) | 0) + ((i * 312) | 0) + (a << 3)) >> 3] =
                    (n > b ? n : b) * 999999986991104;
                  n = +(e[ne >> 2] | 0) * -2;
                  a = (w + 199864 + ((o * 624) | 0) + ((i * 312) | 0) + (a << 3)) | 0;
                  f[a >> 3] = n;
                  if (C)
                    f[a >> 3] =
                      n -
                      +(
                        e[(u + 304 + ((o * 10504) | 0) + ((i * 5252) | 0) + 4608 + (c << 2)) >> 2] |
                        0
                      ) *
                        R;
                  c = (d + 2) | 0;
                  a = (g + 2) | 0;
                  f[
                    (w + 194616 + ((o * 1248) | 0) + ((i * 312) | 0) + (a << 3)) >> 3
                  ] = 9999999747378752e-21;
                  f[(w + 201912 + ((o * 624) | 0) + ((i * 312) | 0) + (a << 3)) >> 3] =
                    (+r[(k + (c << 2)) >> 2] * 999999986991104 * +r[(O + (c << 2)) >> 2]) / D;
                  n = +r[(_ + ((o * 976) | 0) + ((i * 488) | 0) + 332 + ((E * 12) | 0) + 8) >> 2];
                  if (L ? (e[B >> 2] | 0) == 0 : 0) n = n > 0 ? 9.999999682655225e-21 / n : 0;
                  else n = 0;
                  n =
                    +r[(_ + ((o * 976) | 0) + ((i * 488) | 0) + 88 + ((E * 12) | 0) + 8) >> 2] * n;
                  f[(w + 192120 + ((o * 1248) | 0) + ((i * 312) | 0) + (a << 3)) >> 3] =
                    (n > b ? n : b) * 999999986991104;
                  n = +(e[G >> 2] | 0) * -2;
                  a = (w + 199864 + ((o * 624) | 0) + ((i * 312) | 0) + (a << 3)) | 0;
                  f[a >> 3] = n;
                  if (C)
                    f[a >> 3] =
                      n -
                      +(
                        e[(u + 304 + ((o * 10504) | 0) + ((i * 5252) | 0) + 4608 + (c << 2)) >> 2] |
                        0
                      ) *
                        R;
                } else {
                  S = (T * 3) | 0;
                  a = 0;
                  y = p;
                  m = d;
                  while (1) {
                    n = 0;
                    c = y;
                    v = A;
                    while (1) {
                      h = +r[(u + 304 + ((o * 10504) | 0) + ((i * 5252) | 0) + (c << 2)) >> 2];
                      n = h * h + n;
                      v = (v + 1) | 0;
                      if ((v | 0) == (T | 0)) break;
                      else c = (c + 1) | 0;
                    }
                    y = (y + P) | 0;
                    n = n / D;
                    n = n > 1e-20 ? n : 9.999999682655225e-21;
                    c = (a + g) | 0;
                    f[(w + 194616 + ((o * 1248) | 0) + ((i * 312) | 0) + (c << 3)) >> 3] =
                      n * 999999986991104;
                    f[(w + 201912 + ((o * 624) | 0) + ((i * 312) | 0) + (c << 3)) >> 3] =
                      (+r[(k + (m << 2)) >> 2] * 999999986991104 * +r[(O + (m << 2)) >> 2]) / D;
                    h = +r[
                      (_ + ((o * 976) | 0) + ((i * 488) | 0) + 332 + ((E * 12) | 0) + (a << 2)) >> 2
                    ];
                    if (L ? (e[B >> 2] | 0) == 0 : 0) n = h > 0 ? n / h : 0;
                    else n = 0;
                    n =
                      +r[
                        (_ + ((o * 976) | 0) + ((i * 488) | 0) + 88 + ((E * 12) | 0) + (a << 2)) >>
                          2
                      ] * n;
                    f[(w + 192120 + ((o * 1248) | 0) + ((i * 312) | 0) + (c << 3)) >> 3] =
                      (n > b ? n : b) * 999999986991104;
                    n =
                      +(
                        e[(u + 304 + ((o * 10504) | 0) + ((i * 5252) | 0) + 4808 + (a << 2)) >> 2] |
                        0
                      ) * -2;
                    c = (w + 199864 + ((o * 624) | 0) + ((i * 312) | 0) + (c << 3)) | 0;
                    f[c >> 3] = n;
                    if (C)
                      f[c >> 3] =
                        n -
                        +(
                          e[
                            (u + 304 + ((o * 10504) | 0) + ((i * 5252) | 0) + 4608 + (m << 2)) >> 2
                          ] | 0
                        ) *
                          R;
                    a = (a + 1) | 0;
                    if ((a | 0) == 3) break;
                    else m = (m + 1) | 0;
                  }
                  p = (p + S + (s(A, -3) | 0)) | 0;
                }
                if ((N | 0) == 13) break;
                else d = (d + 3) | 0;
              }
            }
            d = e[H >> 2] | 0;
            e[(d + 201112 + (o << 3) + (i << 2)) >> 2] =
              e[(u + 304 + ((o * 10504) | 0) + ((i * 5252) | 0) + 4780) >> 2];
            c = (u + 304 + ((o * 10504) | 0) + ((i * 5252) | 0) + 4844) | 0;
            e[(d + 203400 + (o << 3) + (i << 2)) >> 2] =
              (e[c >> 2] | 0) +
              (e[(u + 304 + ((o * 10504) | 0) + ((i * 5252) | 0) + 4768) >> 2] | 0);
            e[(d + 203416 + (o << 3) + (i << 2)) >> 2] = e[c >> 2];
            e[(d + 203160 + (o << 3) + (i << 2)) >> 2] = e[Z >> 2];
            f[(d + 203208 + (o << 4) + (i << 3)) >> 3] = +r[Q >> 2] * 10;
            f[(d + 203240 + (o << 4) + (i << 3)) >> 3] = +r[F >> 2] * 10;
            f[(d + 203176 + (o << 4) + (i << 3)) >> 3] = +r[$ >> 2] * 10;
            e[(d + 203272 + (o << 3) + (i << 2)) >> 2] = e[X >> 2];
            l(z | 0, q | 0, 156) | 0;
            i = (i + 1) | 0;
            d = e[W >> 2] | 0;
          } while ((i | 0) < (d | 0));
          m = e[Y >> 2] | 0;
        }
        o = (o + 1) | 0;
      } while ((o | 0) < (m | 0));
      t = M;
      return;
    }
    function T(i, a) {
      i = i | 0;
      a = a | 0;
      var t = 0,
        r = 0,
        n = 0,
        f = 0,
        o = 0,
        l = 0;
      r = ee(i) | 0;
      n = e[(i + 76) >> 2] | 0;
      o = (((r - (e[(i + 24) >> 2] << 3)) | 0) / (n | 0)) | 0;
      l = ((n << 11) + -8) | 0;
      f = e[(i + 148) >> 2] | 0;
      r = (f - r) | 0;
      t = (i + 52144) | 0;
      r = (r | 0) > (l | 0) ? l : r;
      e[t >> 2] = r;
      if (!((r | 0) >= 0 ? (e[(i + 144) >> 2] | 0) == 0 : 0)) {
        e[t >> 2] = 0;
        r = 0;
      }
      t = s(n, o) | 0;
      n = e[(i + 52140) >> 2] | 0;
      r = (((n | 0) < (r | 0) ? n : r) + t) | 0;
      r = (r | 0) > (f | 0) ? f : r;
      e[(i + 21320) >> 2] = 0;
      t = e[(i + 85804) >> 2] | 0;
      if (!t) {
        e[a >> 2] = o;
        return r | 0;
      }
      e[(t + 203484) >> 2] = ((o | 0) / 2) | 0;
      e[(t + 203488) >> 2] = n;
      e[a >> 2] = o;
      return r | 0;
    }
    function Pr(n, o, l, u, i) {
      n = n | 0;
      o = o | 0;
      l = l | 0;
      u = u | 0;
      i = i | 0;
      var r = 0,
        t = 0,
        a = 0,
        s = 0,
        f = 0;
      f = e[(n + 52144) >> 2] | 0;
      s = ((e[(n + 52140) >> 2] | 0) + ((i | 0) == 0 ? 0 : o)) | 0;
      i = (n + 85096) | 0;
      t = e[i >> 2] | 0;
      a = t & 1;
      if (!a) r = f;
      else r = ~~(+(f | 0) * 0.9);
      r = (r * 9) | 0;
      if (((s * 10) | 0) <= (r | 0)) {
        e[i >> 2] = t & 127;
        if (!(e[(n + 144) >> 2] | a)) {
          r = 0;
          i = ~~(+(o | 0) * 0.9);
        } else {
          r = 0;
          i = o;
        }
      } else {
        a = (s - (((r | 0) / 10) | 0)) | 0;
        e[i >> 2] = t | 128;
        r = a;
        i = (a + o) | 0;
      }
      t = (((f * 6) | 0) / 10) | 0;
      r = (((s | 0) < (t | 0) ? s : t) - r) | 0;
      e[l >> 2] = i;
      e[u >> 2] = (r | 0) < 0 ? 0 : r;
      return;
    }
    function le(r, i) {
      r = r | 0;
      i = i | 0;
      r = (r + 52140) | 0;
      e[r >> 2] = (e[r >> 2] | 0) - ((e[(i + 4844) >> 2] | 0) + (e[(i + 4768) >> 2] | 0));
      return;
    }
    function P(i, t) {
      i = i | 0;
      t = t | 0;
      var r = 0,
        f = 0,
        n = 0,
        o = 0,
        a = 0,
        l = 0;
      n = s(e[(i + 76) >> 2] | 0, t) | 0;
      t = (i + 52140) | 0;
      n = ((e[t >> 2] | 0) + n) | 0;
      r = (n | 0) % 8 | 0;
      o = (n - r - (e[(i + 52144) >> 2] | 0)) | 0;
      r = (((o | 0) > 0 ? o : 0) + r) | 0;
      o = (i + 21312) | 0;
      l = e[o >> 2] | 0;
      a = l << 3;
      a = ((((a | 0) < (r | 0) ? a : r) | 0) / 8) | 0;
      f = a << 3;
      e[(i + 21320) >> 2] = f;
      r = (r - f) | 0;
      e[o >> 2] = l - a;
      e[(i + 21324) >> 2] = r;
      e[t >> 2] = n - f - r;
      return;
    }
    function Cr(r, i) {
      r = r | 0;
      i = i | 0;
      if (!(w(r) | 0)) {
        r = -1;
        return r | 0;
      }
      e[(r + 12) >> 2] = i;
      r = 0;
      return r | 0;
    }
    function Br(r, i) {
      r = r | 0;
      i = i | 0;
      if (!(w(r) | 0)) {
        r = -1;
        return r | 0;
      }
      if (((i | 0) > 2) | ((i | 0) == 0)) {
        r = -1;
        return r | 0;
      }
      e[(r + 8) >> 2] = i;
      r = 0;
      return r | 0;
    }
    function Ir(e, i) {
      e = e | 0;
      i = +i;
      if (!(w(e) | 0)) {
        e = -1;
        return e | 0;
      }
      r[(e + 20) >> 2] = i;
      e = 0;
      return e | 0;
    }
    function xr(e) {
      e = e | 0;
      var i = 0;
      if (!(w(e) | 0)) {
        i = 0;
        return +i;
      }
      i = +r[(e + 20) >> 2];
      return +i;
    }
    function Hr(r, i) {
      r = r | 0;
      i = i | 0;
      if ((i >>> 0 > 4) | ((w(r) | 0) == 0)) {
        r = -1;
        return r | 0;
      }
      e[(r + 48) >> 2] = i;
      r = 0;
      return r | 0;
    }
    function Tr(i, r) {
      i = i | 0;
      r = r | 0;
      if (!(w(i) | 0)) {
        r = -1;
        return r | 0;
      }
      e[(i + 96) >> 2] = r;
      if ((r | 0) <= 320) {
        r = 0;
        return r | 0;
      }
      e[(i + 128) >> 2] = 1;
      r = 0;
      return r | 0;
    }
    function Z(r, i) {
      r = r | 0;
      i = i | 0;
      if (!(w(r) | 0)) {
        r = -1;
        return r | 0;
      }
      e[(r + 132) >> 2] = i;
      r = 0;
      return r | 0;
    }
    function X(r, i) {
      r = r | 0;
      i = i | 0;
      if (!(w(r) | 0)) {
        r = -1;
        return r | 0;
      }
      e[(r + 136) >> 2] = i;
      r = 0;
      return r | 0;
    }
    function Be(r) {
      r = r | 0;
      if (!(w(r) | 0)) {
        r = 0;
        return r | 0;
      }
      r = e[(r + 132) >> 2] | 0;
      return r | 0;
    }
    function Ce(r) {
      r = r | 0;
      if (!(w(r) | 0)) {
        r = 0;
        return r | 0;
      }
      r = e[(r + 136) >> 2] | 0;
      return r | 0;
    }
    function Wr(i, r) {
      i = i | 0;
      r = r | 0;
      if (!(w(i) | 0)) {
        r = -1;
        return r | 0;
      }
      e[(i + 140) >> 2] = r;
      r = 0;
      return r | 0;
    }
    function ve(i, r) {
      i = i | 0;
      r = r | 0;
      if (!(w(i) | 0)) {
        r = -1;
        return r | 0;
      }
      e[(i + 148) >> 2] = r;
      r = 0;
      return r | 0;
    }
    function Ee(r) {
      r = r | 0;
      if (!(w(r) | 0)) {
        r = 0;
        return r | 0;
      }
      r = e[(r + 148) >> 2] | 0;
      return r | 0;
    }
    function z(i, r) {
      i = i | 0;
      r = r | 0;
      if ((r >>> 0 > 4) | ((w(i) | 0) == 0)) {
        r = -1;
        return r | 0;
      }
      e[(i + 156) >> 2] = r;
      r = 0;
      return r | 0;
    }
    function De(r) {
      r = r | 0;
      if (!(w(r) | 0)) {
        r = 0;
        return r | 0;
      }
      r = e[(r + 156) >> 2] | 0;
      return r | 0;
    }
    function Zr(t, i) {
      t = t | 0;
      i = i | 0;
      var n = 0,
        o = 0;
      if (!(w(t) | 0)) {
        i = -1;
        return i | 0;
      }
      o = (i | 0) < 0 ? 0 : i;
      n = (o | 0) > 9;
      e[(t + 164) >> 2] = n ? 9 : o;
      r[(t + 160) >> 2] = 0;
      i = n ? -1 : i >> 31;
      return i | 0;
    }
    function _e(i, r) {
      i = i | 0;
      r = r | 0;
      if (!(w(i) | 0)) {
        r = -1;
        return r | 0;
      }
      e[(i + 168) >> 2] = r;
      r = 0;
      return r | 0;
    }
    function He(r) {
      r = r | 0;
      if (!(w(r) | 0)) {
        r = 0;
        return r | 0;
      }
      r = e[(r + 168) >> 2] | 0;
      return r | 0;
    }
    function pe(e, i) {
      e = e | 0;
      i = +i;
      if (!(w(e) | 0)) {
        e = -1;
        return e | 0;
      }
      r[(e + 200) >> 2] = i;
      e = 0;
      return e | 0;
    }
    function fr(e) {
      e = e | 0;
      var i = 0;
      if (!(w(e) | 0)) {
        i = 0;
        return +i;
      }
      i = +r[(e + 200) >> 2];
      return +i;
    }
    function we(e, i) {
      e = e | 0;
      i = +i;
      if (!(w(e) | 0)) {
        e = -1;
        return e | 0;
      }
      r[(e + 204) >> 2] = i;
      e = 0;
      return e | 0;
    }
    function ar(e) {
      e = e | 0;
      var i = 0;
      if (!(w(e) | 0)) {
        i = 0;
        return +i;
      }
      i = +r[(e + 204) >> 2];
      return +i;
    }
    function ti(i, r) {
      i = i | 0;
      r = r | 0;
      if (!(w(i) | 0)) {
        r = -1;
        return r | 0;
      }
      e[(i + 220) >> 2] = r;
      r = 0;
      return r | 0;
    }
    function me(e, i) {
      e = e | 0;
      i = +i;
      if (!(w(e) | 0)) {
        e = -1;
        return e | 0;
      }
      r[(e + 224) >> 2] = i;
      e = 0;
      return e | 0;
    }
    function nr(e) {
      e = e | 0;
      var i = 0;
      if (!(w(e) | 0)) {
        i = 0;
        return +i;
      }
      i = +r[(e + 224) >> 2];
      return +i;
    }
    function he(e, i) {
      e = e | 0;
      i = +i;
      if (!(w(e) | 0)) {
        e = -1;
        return e | 0;
      }
      r[(e + 228) >> 2] = i;
      e = 0;
      return e | 0;
    }
    function ir(e) {
      e = e | 0;
      var i = 0;
      if (!(w(e) | 0)) {
        i = 0;
        return +i;
      }
      i = +r[(e + 228) >> 2];
      return +i;
    }
    function rr(e, i) {
      e = e | 0;
      i = +i;
      if (!(w(e) | 0)) {
        e = -1;
        return e | 0;
      }
      r[(e + 236) >> 2] = i;
      e = 0;
      return e | 0;
    }
    function li(e) {
      e = e | 0;
      var i = 0;
      if (!(w(e) | 0)) {
        i = 0;
        return +i;
      }
      i = +r[(e + 236) >> 2];
      return +i;
    }
    function de(e, i) {
      e = e | 0;
      i = +i;
      if (!(i <= 1) | (!(i >= 0) | ((w(e) | 0) == 0))) {
        e = -1;
        return e | 0;
      }
      r[(e + 248) >> 2] = i;
      e = 0;
      return e | 0;
    }
    function $e(e) {
      e = e | 0;
      var i = 0;
      if (!(w(e) | 0)) {
        i = 0;
        return +i;
      }
      i = +r[(e + 248) >> 2];
      return +i;
    }
    function di(r, i) {
      r = r | 0;
      i = i | 0;
      if (!(w(r) | 0)) {
        r = -1;
        return r | 0;
      }
      e[(r + 84) >> 2] = (i | 0) != 0 ? 2 : 1;
      r = 0;
      return r | 0;
    }
    function ce(e, i) {
      e = e | 0;
      i = +i;
      if (!(w(e) | 0)) {
        e = -1;
        return e | 0;
      }
      r[(e + 264) >> 2] = i;
      e = 0;
      return e | 0;
    }
    function Je(e) {
      e = e | 0;
      var i = 0;
      if (!(w(e) | 0)) {
        i = 0;
        return +i;
      }
      i = +r[(e + 264) >> 2];
      return +i;
    }
    function ue(e, i) {
      e = e | 0;
      i = +i;
      if (!(w(e) | 0)) {
        e = -1;
        return e | 0;
      }
      r[(e + 268) >> 2] = i;
      e = 0;
      return e | 0;
    }
    function Xe(e) {
      e = e | 0;
      var i = 0;
      if (!(w(e) | 0)) {
        i = 0;
        return +i;
      }
      i = +r[(e + 268) >> 2];
      return +i;
    }
    function G(e, i) {
      e = e | 0;
      i = +i;
      if (!(w(e) | 0)) return;
      r[(e + 252) >> 2] = i;
      return;
    }
    function Ie(e) {
      e = e | 0;
      var i = 0;
      if (!(w(e) | 0)) {
        i = 0;
        return +i;
      }
      i = +r[(e + 252) >> 2];
      return +i;
    }
    function mr(l, a, p) {
      l = l | 0;
      a = a | 0;
      p = p | 0;
      var r = 0,
        n = 0,
        s = 0,
        E = 0,
        h = 0,
        f = 0,
        _ = 0,
        w = 0,
        d = 0,
        c = 0,
        v = 0,
        u = 0,
        m = 0;
      m = t;
      t = (t + 16) | 0;
      u = m;
      e[u >> 2] = 0;
      c = (a + 2304) | 0;
      n = ((e[(a + 5208) >> 2] | 0) + 2) & -2;
      n = (n | 0) > 576 ? 576 : n;
      v = (p | 0) != 0;
      if (v) e[(p + 4) >> 2] = 0;
      while (1) {
        if ((n | 0) <= 1) {
          d = 4;
          break;
        }
        r = (n + -2) | 0;
        if (!(e[(a + 2304 + (r << 2)) >> 2] | e[(a + 2304 + ((n + -1) << 2)) >> 2])) n = r;
        else {
          d = 6;
          break;
        }
      }
      if ((d | 0) == 4) {
        e[(a + 4776) >> 2] = n;
        d = 9;
      } else if ((d | 0) == 6) {
        e[(a + 4776) >> 2] = n;
        if ((n | 0) > 3) {
          _ = 0;
          r = 0;
          while (1) {
            w = (n + -4) | 0;
            s = e[(a + 2304 + (w << 2)) >> 2] | 0;
            E = e[(a + 2304 + ((n + -3) << 2)) >> 2] | 0;
            h = e[(a + 2304 + ((n + -2) << 2)) >> 2] | 0;
            f = e[(a + 2304 + ((n + -1) << 2)) >> 2] | 0;
            if ((E | s | h | f) >>> 0 > 1) {
              f = _;
              s = r;
              break;
            }
            f = ((((((s << 1) + E) << 1) + h) << 1) + f) | 0;
            n = ((o[(82240 + f) >> 0] | 0) + _) | 0;
            r = ((o[(82256 + f) >> 0] | 0) + r) | 0;
            if ((w | 0) > 3) {
              _ = n;
              n = w;
            } else {
              f = n;
              s = r;
              n = w;
              break;
            }
          }
          e[u >> 2] = f;
          r = (a + 4840) | 0;
          e[r >> 2] = 0;
          if ((f | 0) > (s | 0)) {
            e[u >> 2] = s;
            e[r >> 2] = 1;
            r = s;
          } else r = f;
        } else d = 9;
      }
      if ((d | 0) == 9) {
        e[u >> 2] = 0;
        e[(a + 4840) >> 2] = 0;
        r = 0;
      }
      e[(a + 5184) >> 2] = r;
      f = (a + 4772) | 0;
      e[f >> 2] = n;
      if (!n) {
        c = e[u >> 2] | 0;
        t = m;
        return c | 0;
      }
      h = (a + 4788) | 0;
      r = e[h >> 2] | 0;
      if (!r) {
        r = i[(n + -2 + (l + 85100)) >> 0] | 0;
        e[(a + 4824) >> 2] = r;
        s = i[(n + -1 + (l + 85100)) >> 0] | 0;
        e[(a + 4828) >> 2] = s;
        s = e[(l + 21360 + ((r + 2 + s) << 2)) >> 2] | 0;
        r = e[(l + 21360 + ((r + 1) << 2)) >> 2] | 0;
        if ((s | 0) < (n | 0))
          e[(a + 4804) >> 2] =
            y[e[(l + 85816) >> 2] & 3]((a + 2304 + (s << 2)) | 0, (a + 2304 + (n << 2)) | 0, u) | 0;
      } else if ((r | 0) == 2) {
        r = ((e[(l + 21464) >> 2] | 0) * 3) | 0;
        r = (r | 0) > (n | 0) ? n : r;
        s = n;
      } else {
        e[(a + 4824) >> 2] = 7;
        e[(a + 4828) >> 2] = 13;
        r = e[(l + 21392) >> 2] | 0;
        r = (r | 0) > (n | 0) ? n : r;
        s = n;
      }
      r = (r | 0) < (n | 0) ? r : n;
      n = (s | 0) < (n | 0) ? s : n;
      if ((r | 0) > 0)
        e[(a + 4796) >> 2] = y[e[(l + 85816) >> 2] & 3](c, (a + 2304 + (r << 2)) | 0, u) | 0;
      if ((r | 0) < (n | 0))
        e[(a + 4800) >> 2] =
          y[e[(l + 85816) >> 2] & 3]((a + 2304 + (r << 2)) | 0, (a + 2304 + (n << 2)) | 0, u) | 0;
      if ((e[(l + 36) >> 2] | 0) == 2) {
        c = (a + 4768) | 0;
        e[c >> 2] = e[u >> 2];
        oe(l, a);
        e[u >> 2] = e[c >> 2];
      }
      if (!v) {
        c = e[u >> 2] | 0;
        t = m;
        return c | 0;
      }
      if (e[h >> 2] | 0) {
        c = e[u >> 2] | 0;
        t = m;
        return c | 0;
      }
      n = e[f >> 2] | 0;
      r = 0;
      while (1)
        if ((e[(l + 21360 + (r << 2)) >> 2] | 0) < (n | 0)) r = (r + 1) | 0;
        else break;
      e[(p + 4) >> 2] = r;
      c = e[u >> 2] | 0;
      t = m;
      return c | 0;
    }
    function oe(p, r) {
      p = p | 0;
      r = r | 0;
      var n = 0,
        i = 0,
        s = 0,
        c = 0,
        w = 0,
        m = 0,
        v = 0,
        O = 0,
        F = 0,
        M = 0,
        E = 0,
        f = 0,
        d = 0,
        _ = 0,
        k = 0,
        S = 0,
        g = 0,
        b = 0,
        a = 0,
        R = 0,
        A = 0,
        T = 0,
        u = 0,
        h = 0;
      h = t;
      t = (t + 5632) | 0;
      b = (h + 5624) | 0;
      d = (h + 5620) | 0;
      u = (h + 368) | 0;
      a = (h + 276) | 0;
      R = (h + 184) | 0;
      A = (h + 92) | 0;
      T = h;
      g = (r + 2304) | 0;
      i = e[(r + 4788) >> 2] | 0;
      do
        if ((i | 0) == 2)
          if ((e[(p + 76) >> 2] | 0) == 1) {
            t = h;
            return;
          } else {
            l(u | 0, r | 0, 5252) | 0;
            i = r;
            S = 5;
            break;
          }
        else {
          l(u | 0, r | 0, 5252) | 0;
          if (!i) {
            f = e[(r + 4772) >> 2] | 0;
            e[a >> 2] = 1e5;
            e[(a + 4) >> 2] = 1e5;
            e[(a + 8) >> 2] = 1e5;
            e[(a + 12) >> 2] = 1e5;
            e[(a + 16) >> 2] = 1e5;
            e[(a + 20) >> 2] = 1e5;
            e[(a + 24) >> 2] = 1e5;
            e[(a + 28) >> 2] = 1e5;
            e[(a + 32) >> 2] = 1e5;
            e[(a + 36) >> 2] = 1e5;
            e[(a + 40) >> 2] = 1e5;
            e[(a + 44) >> 2] = 1e5;
            e[(a + 48) >> 2] = 1e5;
            e[(a + 52) >> 2] = 1e5;
            e[(a + 56) >> 2] = 1e5;
            e[(a + 60) >> 2] = 1e5;
            e[(a + 64) >> 2] = 1e5;
            e[(a + 68) >> 2] = 1e5;
            e[(a + 72) >> 2] = 1e5;
            e[(a + 76) >> 2] = 1e5;
            e[(a + 80) >> 2] = 1e5;
            e[(a + 84) >> 2] = 1e5;
            e[(a + 88) >> 2] = 1e5;
            k = (p + 85816) | 0;
            E = 0;
            do {
              O = E;
              E = (E + 1) | 0;
              i = e[(p + 21360 + (E << 2)) >> 2] | 0;
              if ((i | 0) >= (f | 0)) break;
              e[d >> 2] = 0;
              s = (r + 2304 + (i << 2)) | 0;
              i = y[e[k >> 2] & 3](g, s, d) | 0;
              v = 0;
              do {
                n = (v + O) | 0;
                c = e[(p + 21360 + ((n + 2) << 2)) >> 2] | 0;
                if ((c | 0) >= (f | 0)) break;
                e[b >> 2] = e[d >> 2];
                m = y[e[k >> 2] & 3](s, (r + 2304 + (c << 2)) | 0, b) | 0;
                w = (a + (n << 2)) | 0;
                c = e[b >> 2] | 0;
                if ((e[w >> 2] | 0) > (c | 0)) {
                  e[w >> 2] = c;
                  e[(R + (n << 2)) >> 2] = O;
                  e[(A + (n << 2)) >> 2] = i;
                  e[(T + (n << 2)) >> 2] = m;
                }
                v = (v + 1) | 0;
              } while ((v | 0) < 8);
            } while ((E | 0) < 16);
            _ = (u + 4772) | 0;
            E = e[_ >> 2] | 0;
            n = (u + 5184) | 0;
            i = (r + 4768) | 0;
            s = (r + 2304 + (E << 2)) | 0;
            c = (r + 4824) | 0;
            w = (r + 4828) | 0;
            m = (r + 4796) | 0;
            v = (r + 4800) | 0;
            O = (r + 4804) | 0;
            M = 2;
            do {
              f = e[(p + 21360 + (M << 2)) >> 2] | 0;
              if ((f | 0) >= (E | 0)) break;
              F = (M + -2) | 0;
              d = ((e[n >> 2] | 0) + (e[(a + (F << 2)) >> 2] | 0)) | 0;
              e[b >> 2] = d;
              if ((e[i >> 2] | 0) <= (d | 0)) break;
              d = y[e[k >> 2] & 3]((r + 2304 + (f << 2)) | 0, s, b) | 0;
              f = e[b >> 2] | 0;
              if ((e[i >> 2] | 0) > (f | 0)) {
                l(r | 0, u | 0, 5252) | 0;
                e[i >> 2] = f;
                f = e[(R + (F << 2)) >> 2] | 0;
                e[c >> 2] = f;
                e[w >> 2] = F - f;
                e[m >> 2] = e[(A + (F << 2)) >> 2];
                e[v >> 2] = e[(T + (F << 2)) >> 2];
                e[O >> 2] = d;
              }
              M = (M + 1) | 0;
            } while ((M | 0) < 23);
            k = r;
          } else {
            i = r;
            S = 5;
          }
        }
      while (0);
      if ((S | 0) == 5) {
        _ = (u + 4772) | 0;
        k = i;
      }
      i = e[_ >> 2] | 0;
      if (!i) {
        t = h;
        return;
      }
      if ((e[(r + 2304 + ((i + -1) << 2)) >> 2] | e[(r + 2304 + ((i + -2) << 2)) >> 2]) >>> 0 > 1) {
        t = h;
        return;
      }
      w = e[(r + 4776) >> 2] | 0;
      s = (w + 2) | 0;
      if ((s | 0) > 576) {
        t = h;
        return;
      }
      l(u | 0, k | 0, 5252) | 0;
      e[(u + 4776) >> 2] = s;
      c = e[_ >> 2] | 0;
      if ((s | 0) > (c | 0)) {
        m = (w + -2) | 0;
        m = (w + ~((c | 0) > (m | 0) ? m : c) + 2) & -4;
        n = 0;
        i = 0;
        do {
          S = s;
          s = (s + -4) | 0;
          S =
            ((((((e[(r + 2304 + (s << 2)) >> 2] << 1) +
              (e[(r + 2304 + ((S + -3) << 2)) >> 2] | 0)) <<
              1) +
              (e[(r + 2304 + ((S + -2) << 2)) >> 2] | 0)) <<
              1) +
              (e[(r + 2304 + ((S + -1) << 2)) >> 2] | 0)) |
            0;
          n = ((o[(82240 + S) >> 0] | 0) + n) | 0;
          i = ((o[(82256 + S) >> 0] | 0) + i) | 0;
        } while ((s | 0) > (c | 0));
        s = (w + -2 - m) | 0;
      } else {
        n = 0;
        i = 0;
      }
      e[_ >> 2] = s;
      _ = (n | 0) > (i | 0);
      n = _ ? i : n;
      e[(u + 4840) >> 2] = _ & 1;
      _ = (u + 5184) | 0;
      e[_ >> 2] = n;
      if (!(e[(u + 4788) >> 2] | 0)) {
        v = (r + 4768) | 0;
        c = (p + 85816) | 0;
        i = (r + 2304 + (s << 2)) | 0;
        n = (r + 4824) | 0;
        O = (r + 4828) | 0;
        F = (r + 4796) | 0;
        M = (r + 4800) | 0;
        E = (r + 4804) | 0;
        d = 2;
        do {
          m = e[(p + 21360 + (d << 2)) >> 2] | 0;
          if ((m | 0) >= (s | 0)) break;
          f = (d + -2) | 0;
          g = ((e[_ >> 2] | 0) + (e[(a + (f << 2)) >> 2] | 0)) | 0;
          e[b >> 2] = g;
          if ((e[v >> 2] | 0) <= (g | 0)) break;
          m = y[e[c >> 2] & 3]((r + 2304 + (m << 2)) | 0, i, b) | 0;
          w = e[b >> 2] | 0;
          if ((e[v >> 2] | 0) > (w | 0)) {
            l(k | 0, u | 0, 5252) | 0;
            e[v >> 2] = w;
            g = e[(R + (f << 2)) >> 2] | 0;
            e[n >> 2] = g;
            e[O >> 2] = f - g;
            e[F >> 2] = e[(A + (f << 2)) >> 2];
            e[M >> 2] = e[(T + (f << 2)) >> 2];
            e[E >> 2] = m;
          }
          d = (d + 1) | 0;
        } while ((d | 0) < 23);
        t = h;
        return;
      } else {
        i = (u + 4768) | 0;
        e[i >> 2] = n;
        n = e[(p + 21392) >> 2] | 0;
        n = (n | 0) > (s | 0) ? s : n;
        if ((n | 0) > 0)
          e[(u + 4796) >> 2] = y[e[(p + 85816) >> 2] & 3](g, (r + 2304 + (n << 2)) | 0, i) | 0;
        if ((s | 0) > (n | 0))
          e[(u + 4800) >> 2] =
            y[e[(p + 85816) >> 2] & 3]((r + 2304 + (n << 2)) | 0, (r + 2304 + (s << 2)) | 0, i) | 0;
        if ((e[(r + 4768) >> 2] | 0) <= (e[i >> 2] | 0)) {
          t = h;
          return;
        }
        l(k | 0, u | 0, 5252) | 0;
        t = h;
        return;
      }
    }
    function I(y, k, f, w) {
      y = y | 0;
      k = k | 0;
      f = f | 0;
      w = w | 0;
      var v = 0,
        o = 0,
        i = 0,
        s = 0,
        t = 0,
        l = 0,
        n = 0,
        u = 0,
        d = 0,
        g = 0,
        _ = 0,
        b = 0,
        E = 0,
        M = 0,
        R = 0,
        N = 0,
        F = 0,
        C = 0,
        D = 0,
        L = 0,
        S = 0,
        a = 0,
        A = 0,
        h = 0,
        p = 0,
        O = 0,
        P = 0,
        T = 0,
        m = 0;
      O = (f + 4780) | 0;
      i = e[O >> 2] | 0;
      p = +r[(79704 + (i << 2)) >> 2];
      if (+r[(f + 4764) >> 2] > 8206 / p) {
        a = 1e5;
        return a | 0;
      }
      n = (f + 2304) | 0;
      S = (w | 0) != 0;
      if (S) F = (i | 0) == (e[w >> 2] | 0);
      else F = 0;
      R = (f + 4788) | 0;
      M = (e[R >> 2] | 0) == 2 ? 38 : 21;
      N = (f + 4832) | 0;
      A = (f + 4836) | 0;
      h = 0.5945999622344971 / p;
      C = (f + 5208) | 0;
      D = (M + 1) | 0;
      L = (w + 4) | 0;
      E = k;
      l = n;
      o = k;
      t = 0;
      s = 0;
      _ = n;
      b = 0;
      d = 0;
      while (1) {
        if (!F ? (e[R >> 2] | 0) != 0 : 0) {
          n = -1;
          a = 15;
        } else {
          if (!(e[N >> 2] | 0)) n = 0;
          else n = e[(12112 + (d << 2)) >> 2] | 0;
          n =
            ((e[O >> 2] | 0) -
              ((n + (e[(f + 4608 + (d << 2)) >> 2] | 0)) << ((e[A >> 2] | 0) + 1)) -
              (e[(f + 4808 + (e[(f + 5028 + (d << 2)) >> 2] << 2)) >> 2] << 3)) |
            0;
          if (F ? (e[(w + 8 + (d << 2)) >> 2] | 0) == (n | 0) : 0) {
            if (t) ne(t, p, o, l);
            if (!s) {
              t = 0;
              s = 0;
              i = d;
            } else {
              n = 0;
              do {
                i = n | 1;
                t = !(h > +r[(o + (i << 2)) >> 2]) & 1;
                e[(l + (n << 2)) >> 2] = !(h > +r[(o + (n << 2)) >> 2]) & 1;
                e[(l + (i << 2)) >> 2] = t;
                n = (n + 2) | 0;
              } while (n >>> 0 < s >>> 0);
              t = 0;
              s = 0;
              i = d;
            }
          } else a = 15;
        }
        if ((a | 0) == 15) {
          a = 0;
          i = e[(f + 4872 + (d << 2)) >> 2] | 0;
          u = e[C >> 2] | 0;
          if (((i + b) | 0) > (u | 0)) {
            i = (u - b + 1) | 0;
            c((f + 2304 + (u << 2)) | 0, 0, ((576 - u) << 2) | 0) | 0;
            i = (i | 0) < 0 ? 0 : i;
            g = D;
          } else g = d;
          u = (t | 0) == 0;
          d = (s | 0) == 0;
          m = (t | s | 0) == 0;
          l = m ? _ : l;
          o = m ? E : o;
          if (
            (S
            ? ((m = e[L >> 2] | 0), !(((m | 0) < 1) | ((g | 0) < (m | 0))))
            : 0)
              ? ((m = e[(w + 8 + (g << 2)) >> 2] | 0), !(((m | 0) < 1) | ((n | 0) < (m | 0))))
              : 0
          ) {
            if (!u) {
              ne(t, p, o, l);
              l = _;
              o = E;
            }
            t = 0;
            s = (i + s) | 0;
          } else {
            if (!d) {
              n = 0;
              do {
                u = n | 1;
                d = !(h > +r[(o + (u << 2)) >> 2]) & 1;
                e[(l + (n << 2)) >> 2] = !(h > +r[(o + (n << 2)) >> 2]) & 1;
                e[(l + (u << 2)) >> 2] = d;
                n = (n + 2) | 0;
              } while (n >>> 0 < s >>> 0);
              l = _;
              o = E;
            }
            t = (i + t) | 0;
            s = 0;
          }
          if ((i | 0) < 1) {
            i = t;
            a = 27;
            break;
          } else i = g;
        }
        if ((i | 0) > (M | 0)) {
          n = E;
          d = _;
          u = b;
        } else {
          u = e[(f + 4872 + (i << 2)) >> 2] | 0;
          n = (E + (u << 2)) | 0;
          d = (_ + (u << 2)) | 0;
          u = (u + b) | 0;
        }
        if ((i | 0) < (M | 0)) {
          E = n;
          _ = d;
          b = u;
          d = (i + 1) | 0;
        } else {
          a = 34;
          break;
        }
      }
      if ((a | 0) == 27) {
        if (s) {
          t = 0;
          do {
            a = t | 1;
            S = !(h > +r[(o + (a << 2)) >> 2]) & 1;
            e[(l + (t << 2)) >> 2] = !(h > +r[(o + (t << 2)) >> 2]) & 1;
            e[(l + (a << 2)) >> 2] = S;
            t = (t + 2) | 0;
          } while (t >>> 0 < s >>> 0);
        }
        if (i) ne(i, p, o, l);
      } else if ((a | 0) == 34) {
        if (t) ne(t, p, o, l);
        if (s) {
          i = 0;
          do {
            a = i | 1;
            S = !(h > +r[(o + (a << 2)) >> 2]) & 1;
            e[(l + (i << 2)) >> 2] = !(h > +r[(o + (i << 2)) >> 2]) & 1;
            e[(l + (a << 2)) >> 2] = S;
            i = (i + 2) | 0;
          } while (i >>> 0 < s >>> 0);
        }
      }
      if (
        ((e[(y + 85096) >> 2] & 2) | 0) != 0
          ? ((P =
              0.634521682242439 / +r[(79704 + (((e[A >> 2] | 0) + (e[O >> 2] | 0)) << 2)) >> 2]),
            (T = (f + 4860) | 0),
            (v = e[T >> 2] | 0),
            (v | 0) > 0)
          : 0
      ) {
        s = 0;
        t = 0;
        do {
          a = e[(f + 4872 + (t << 2)) >> 2] | 0;
          o = s;
          s = (a + s) | 0;
          if ((a | 0) > 0 ? (e[(y + 84936 + (t << 2)) >> 2] | 0) != 0 : 0) {
            do {
              v = (f + 2304 + (o << 2)) | 0;
              if (!(+r[(k + (o << 2)) >> 2] >= P)) i = 0;
              else i = e[v >> 2] | 0;
              e[v >> 2] = i;
              o = (o + 1) | 0;
            } while ((o | 0) < (s | 0));
            v = e[T >> 2] | 0;
          }
          t = (t + 1) | 0;
        } while ((t | 0) < (v | 0));
      }
      a = mr(y, f, w) | 0;
      return a | 0;
    }
    function Oe(g, d, n, t) {
      g = g | 0;
      d = d | 0;
      n = n | 0;
      t = t | 0;
      var i = 0,
        l = 0,
        r = 0,
        a = 0,
        o = 0,
        m = 0,
        u = 0,
        f = 0,
        M = 0,
        V = 0,
        U = 0,
        E = 0,
        B = 0,
        P = 0,
        b = 0,
        T = 0,
        I = 0,
        y = 0,
        W = 0,
        R = 0,
        F = 0,
        h = 0,
        A = 0,
        k = 0,
        N = 0,
        D = 0,
        S = 0,
        L = 0,
        C = 0,
        v = 0,
        O = 0,
        x = 0,
        H = 0,
        _ = 0,
        z = 0,
        q = 0,
        p = 0,
        j = 0,
        Y = 0,
        w = 0;
      Y = (t + ((d * 10504) | 0) + ((n * 5252) | 0)) | 0;
      w = (t + ((d * 10504) | 0) + ((n * 5252) | 0) + 4860) | 0;
      f = e[w >> 2] | 0;
      if ((f | 0) > 0) {
        m = 0;
        i = 0;
        o = 0;
        do {
          r = e[(t + ((d * 10504) | 0) + ((n * 5252) | 0) + 4872 + (o << 2)) >> 2] | 0;
          u = m;
          m = (r + m) | 0;
          e: do
            if ((r | 0) > 0)
              do {
                if (e[(t + ((d * 10504) | 0) + ((n * 5252) | 0) + 2304 + (u << 2)) >> 2] | 0)
                  break e;
                u = (u + 1) | 0;
              } while ((u | 0) < (m | 0));
          while (0);
          if ((u | 0) == (m | 0)) {
            e[(t + ((d * 10504) | 0) + ((n * 5252) | 0) + 4608 + (o << 2)) >> 2] = -2;
            f = e[w >> 2] | 0;
            i = -2;
          }
          o = (o + 1) | 0;
        } while ((o | 0) < (f | 0));
      } else i = 0;
      a = (t + ((d * 10504) | 0) + ((n * 5252) | 0) + 4836) | 0;
      r = (t + ((d * 10504) | 0) + ((n * 5252) | 0) + 4832) | 0;
      if (((e[a >> 2] | 0) == 0 ? (e[r >> 2] | 0) == 0 : 0) ? ((l = (f | 0) > 0), l) : 0) {
        u = 0;
        m = 0;
        do {
          o = e[(t + ((d * 10504) | 0) + ((n * 5252) | 0) + 4608 + (m << 2)) >> 2] | 0;
          u = ((o | 0) > 0 ? o : 0) | u;
          m = (m + 1) | 0;
        } while ((m | 0) < (f | 0));
        if (((u | 0) != 0) & (((u & 1) | 0) == 0)) {
          if (l) {
            o = 0;
            do {
              u = (t + ((d * 10504) | 0) + ((n * 5252) | 0) + 4608 + (o << 2)) | 0;
              m = e[u >> 2] | 0;
              if ((m | 0) > 0) {
                e[u >> 2] = m >> 1;
                f = e[w >> 2] | 0;
              }
              o = (o + 1) | 0;
            } while ((o | 0) < (f | 0));
          }
          e[a >> 2] = 1;
          i = 1;
        }
      }
      if (
        ((((((((((((e[r >> 2] | 0) == 0
        ? (e[(t + ((d * 10504) | 0) + ((n * 5252) | 0) + 4788) >> 2] | 0) != 2
        : 0)
        ? (e[(g + 76) >> 2] | 0) == 2
        : 0)
        ? ((H = (t + ((d * 10504) | 0) + ((n * 5252) | 0) + 4652) | 0),
          (_ = e[H >> 2] | 0),
          (z = e[3039] | 0),
          ((_ | 0) == -2) | ((_ | 0) >= (z | 0)))
        : 0)
        ? ((q = (t + ((d * 10504) | 0) + ((n * 5252) | 0) + 4656) | 0),
          (p = e[q >> 2] | 0),
          (j = e[3040] | 0),
          ((p | 0) == -2) | ((p | 0) >= (j | 0)))
        : 0)
        ? ((U = (t + ((d * 10504) | 0) + ((n * 5252) | 0) + 4660) | 0),
          (M = e[U >> 2] | 0),
          (V = e[3041] | 0),
          ((M | 0) == -2) | ((M | 0) >= (V | 0)))
        : 0)
        ? ((P = (t + ((d * 10504) | 0) + ((n * 5252) | 0) + 4664) | 0),
          (E = e[P >> 2] | 0),
          (B = e[3042] | 0),
          ((E | 0) == -2) | ((E | 0) >= (B | 0)))
        : 0)
        ? ((I = (t + ((d * 10504) | 0) + ((n * 5252) | 0) + 4668) | 0),
          (b = e[I >> 2] | 0),
          (T = e[3043] | 0),
          ((b | 0) == -2) | ((b | 0) >= (T | 0)))
        : 0)
        ? ((R = (t + ((d * 10504) | 0) + ((n * 5252) | 0) + 4672) | 0),
          (y = e[R >> 2] | 0),
          (W = e[3044] | 0),
          ((y | 0) == -2) | ((y | 0) >= (W | 0)))
        : 0)
        ? ((A = (t + ((d * 10504) | 0) + ((n * 5252) | 0) + 4676) | 0),
          (F = e[A >> 2] | 0),
          (h = e[3045] | 0),
          ((F | 0) == -2) | ((F | 0) >= (h | 0)))
        : 0)
        ? ((D = (t + ((d * 10504) | 0) + ((n * 5252) | 0) + 4680) | 0),
          (k = e[D >> 2] | 0),
          (N = e[3046] | 0),
          ((k | 0) == -2) | ((k | 0) >= (N | 0)))
        : 0)
        ? ((C = (t + ((d * 10504) | 0) + ((n * 5252) | 0) + 4684) | 0),
          (S = e[C >> 2] | 0),
          (L = e[3047] | 0),
          ((S | 0) == -2) | ((S | 0) >= (L | 0)))
        : 0)
          ? ((x = (t + ((d * 10504) | 0) + ((n * 5252) | 0) + 4688) | 0),
            (v = e[x >> 2] | 0),
            (O = e[3048] | 0),
            ((v | 0) == -2) | ((v | 0) >= (O | 0)))
          : 0
      ) {
        if ((_ | 0) > 0) e[H >> 2] = _ - z;
        if ((p | 0) > 0) e[q >> 2] = p - j;
        if ((M | 0) > 0) e[U >> 2] = M - V;
        if ((E | 0) > 0) e[P >> 2] = E - B;
        if ((b | 0) > 0) e[I >> 2] = b - T;
        if ((y | 0) > 0) e[R >> 2] = y - W;
        if ((F | 0) > 0) e[A >> 2] = F - h;
        if ((k | 0) > 0) e[D >> 2] = k - N;
        if ((S | 0) > 0) e[C >> 2] = S - L;
        if ((v | 0) > 0) e[x >> 2] = v - O;
        e[r >> 2] = 1;
        i = 1;
      }
      h = (t + 21008 + (((n << 2) + 4) << 2)) | 0;
      e[h >> 2] = 0;
      e[(h + 4) >> 2] = 0;
      e[(h + 8) >> 2] = 0;
      e[(h + 12) >> 2] = 0;
      if (
        (((d | 0) == 1
        ? (e[(g + 76) >> 2] | 0) == 2
        : 0)
        ? (e[(t + ((n * 5252) | 0) + 4788) >> 2] | 0) != 2
        : 0)
          ? (e[(t + 10504 + ((n * 5252) | 0) + 4788) >> 2] | 0) != 2
          : 0
      ) {
        o = e[21034] | 0;
        m = (t + 10504 + ((n * 5252) | 0) + 4608) | 0;
        f = e[21035] | 0;
        a = (f | 0) > (o | 0);
        e: do
          if (a) {
            r = o;
            do {
              h = e[(t + 10504 + ((n * 5252) | 0) + 4608 + (r << 2)) >> 2] | 0;
              if (
                (h | 0) > -1 ? (e[(t + ((n * 5252) | 0) + 4608 + (r << 2)) >> 2] | 0) != (h | 0) : 0
              )
                break e;
              r = (r + 1) | 0;
            } while ((r | 0) < (f | 0));
          } else r = o;
        while (0);
        if ((r | 0) == (f | 0)) {
          if (a)
            c((t + 10504 + ((n * 5252) | 0) + 4608 + (o << 2)) | 0, -1, ((f - o) << 2) | 0) | 0;
          e[(t + 21024 + (n << 4)) >> 2] = 1;
        }
        u = e[21036] | 0;
        o = (u | 0) > (f | 0);
        e: do
          if (o) {
            r = f;
            do {
              h = e[(t + 10504 + ((n * 5252) | 0) + 4608 + (r << 2)) >> 2] | 0;
              if (
                (h | 0) > -1 ? (e[(t + ((n * 5252) | 0) + 4608 + (r << 2)) >> 2] | 0) != (h | 0) : 0
              )
                break e;
              r = (r + 1) | 0;
            } while ((r | 0) < (u | 0));
          } else r = f;
        while (0);
        if ((r | 0) == (u | 0)) {
          if (o)
            c((t + 10504 + ((n * 5252) | 0) + 4608 + (f << 2)) | 0, -1, ((u - f) << 2) | 0) | 0;
          e[(t + 21024 + (n << 4) + 4) >> 2] = 1;
        }
        f = e[21037] | 0;
        o = (f | 0) > (u | 0);
        e: do
          if (o) {
            r = u;
            do {
              h = e[(t + 10504 + ((n * 5252) | 0) + 4608 + (r << 2)) >> 2] | 0;
              if (
                (h | 0) > -1 ? (e[(t + ((n * 5252) | 0) + 4608 + (r << 2)) >> 2] | 0) != (h | 0) : 0
              )
                break e;
              r = (r + 1) | 0;
            } while ((r | 0) < (f | 0));
          } else r = u;
        while (0);
        if ((r | 0) == (f | 0)) {
          if (o)
            c((t + 10504 + ((n * 5252) | 0) + 4608 + (u << 2)) | 0, -1, ((f - u) << 2) | 0) | 0;
          e[(t + 21024 + (n << 4) + 8) >> 2] = 1;
        }
        o = e[21038] | 0;
        a = (o | 0) > (f | 0);
        e: do
          if (a) {
            r = f;
            do {
              h = e[(t + 10504 + ((n * 5252) | 0) + 4608 + (r << 2)) >> 2] | 0;
              if (
                (h | 0) > -1 ? (e[(t + ((n * 5252) | 0) + 4608 + (r << 2)) >> 2] | 0) != (h | 0) : 0
              )
                break e;
              r = (r + 1) | 0;
            } while ((r | 0) < (o | 0));
          } else r = f;
        while (0);
        if ((r | 0) == (o | 0)) {
          if (a)
            c((t + 10504 + ((n * 5252) | 0) + 4608 + (f << 2)) | 0, -1, ((o - f) << 2) | 0) | 0;
          e[(t + 21024 + (n << 4) + 12) >> 2] = 1;
        }
        r = e[m >> 2] | 0;
        i = (r | 0) == -1;
        l = (i & 1) ^ 1;
        r = i ? 0 : (r | 0) > 0 ? r : 0;
        i = e[(t + 10504 + ((n * 5252) | 0) + 4612) >> 2] | 0;
        if ((i | 0) != -1) {
          l = (l + 1) | 0;
          r = (r | 0) < (i | 0) ? i : r;
        }
        i = e[(t + 10504 + ((n * 5252) | 0) + 4616) >> 2] | 0;
        if ((i | 0) != -1) {
          l = (l + 1) | 0;
          r = (r | 0) < (i | 0) ? i : r;
        }
        i = e[(t + 10504 + ((n * 5252) | 0) + 4620) >> 2] | 0;
        if ((i | 0) != -1) {
          l = (l + 1) | 0;
          r = (r | 0) < (i | 0) ? i : r;
        }
        i = e[(t + 10504 + ((n * 5252) | 0) + 4624) >> 2] | 0;
        if ((i | 0) != -1) {
          l = (l + 1) | 0;
          r = (r | 0) < (i | 0) ? i : r;
        }
        i = e[(t + 10504 + ((n * 5252) | 0) + 4628) >> 2] | 0;
        if ((i | 0) != -1) {
          l = (l + 1) | 0;
          r = (r | 0) < (i | 0) ? i : r;
        }
        i = e[(t + 10504 + ((n * 5252) | 0) + 4632) >> 2] | 0;
        if ((i | 0) != -1) {
          l = (l + 1) | 0;
          r = (r | 0) < (i | 0) ? i : r;
        }
        i = e[(t + 10504 + ((n * 5252) | 0) + 4636) >> 2] | 0;
        if ((i | 0) != -1) {
          l = (l + 1) | 0;
          r = (r | 0) < (i | 0) ? i : r;
        }
        i = e[(t + 10504 + ((n * 5252) | 0) + 4640) >> 2] | 0;
        if ((i | 0) != -1) {
          l = (l + 1) | 0;
          r = (r | 0) < (i | 0) ? i : r;
        }
        i = e[(t + 10504 + ((n * 5252) | 0) + 4644) >> 2] | 0;
        if ((i | 0) != -1) {
          l = (l + 1) | 0;
          r = (r | 0) < (i | 0) ? i : r;
        }
        i = e[(t + 10504 + ((n * 5252) | 0) + 4648) >> 2] | 0;
        if ((i | 0) != -1) {
          l = (l + 1) | 0;
          r = (r | 0) < (i | 0) ? i : r;
        }
        o = e[(t + 10504 + ((n * 5252) | 0) + 4652) >> 2] | 0;
        a = (o | 0) == -1;
        i = (a & 1) ^ 1;
        o = a ? 0 : (o | 0) > 0 ? o : 0;
        a = e[(t + 10504 + ((n * 5252) | 0) + 4656) >> 2] | 0;
        if ((a | 0) != -1) {
          i = (i + 1) | 0;
          o = (o | 0) < (a | 0) ? a : o;
        }
        a = e[(t + 10504 + ((n * 5252) | 0) + 4660) >> 2] | 0;
        if ((a | 0) != -1) {
          i = (i + 1) | 0;
          o = (o | 0) < (a | 0) ? a : o;
        }
        a = e[(t + 10504 + ((n * 5252) | 0) + 4664) >> 2] | 0;
        if ((a | 0) != -1) {
          i = (i + 1) | 0;
          o = (o | 0) < (a | 0) ? a : o;
        }
        a = e[(t + 10504 + ((n * 5252) | 0) + 4668) >> 2] | 0;
        if ((a | 0) != -1) {
          i = (i + 1) | 0;
          o = (o | 0) < (a | 0) ? a : o;
        }
        a = e[(t + 10504 + ((n * 5252) | 0) + 4672) >> 2] | 0;
        if ((a | 0) != -1) {
          i = (i + 1) | 0;
          o = (o | 0) < (a | 0) ? a : o;
        }
        a = e[(t + 10504 + ((n * 5252) | 0) + 4676) >> 2] | 0;
        if ((a | 0) != -1) {
          i = (i + 1) | 0;
          o = (o | 0) < (a | 0) ? a : o;
        }
        a = e[(t + 10504 + ((n * 5252) | 0) + 4680) >> 2] | 0;
        if ((a | 0) != -1) {
          i = (i + 1) | 0;
          o = (o | 0) < (a | 0) ? a : o;
        }
        a = e[(t + 10504 + ((n * 5252) | 0) + 4684) >> 2] | 0;
        if ((a | 0) != -1) {
          i = (i + 1) | 0;
          o = (o | 0) < (a | 0) ? a : o;
        }
        a = e[(t + 10504 + ((n * 5252) | 0) + 4688) >> 2] | 0;
        if ((a | 0) != -1) {
          i = (i + 1) | 0;
          o = (o | 0) < (a | 0) ? a : o;
        }
        m = (t + 10504 + ((n * 5252) | 0) + 4844) | 0;
        u = (t + 10504 + ((n * 5252) | 0) + 4784) | 0;
        f = 0;
        do {
          do
            if ((r | 0) < (e[(88776 + (f << 2)) >> 2] | 0)) {
              if ((o | 0) >= (e[(88840 + (f << 2)) >> 2] | 0)) break;
              a = s(e[(88648 + (f << 2)) >> 2] | 0, l) | 0;
              a = ((s(e[(88712 + (f << 2)) >> 2] | 0, i) | 0) + a) | 0;
              if ((e[m >> 2] | 0) <= (a | 0)) break;
              e[m >> 2] = a;
              e[u >> 2] = f;
            }
          while (0);
          f = (f + 1) | 0;
        } while ((f | 0) != 16);
        i = 0;
      }
      l = e[w >> 2] | 0;
      if ((l | 0) > 0) {
        a = 0;
        do {
          r = (t + ((d * 10504) | 0) + ((n * 5252) | 0) + 4608 + (a << 2)) | 0;
          if ((e[r >> 2] | 0) == -2) {
            e[r >> 2] = 0;
            l = e[w >> 2] | 0;
          }
          a = (a + 1) | 0;
        } while ((a | 0) < (l | 0));
      }
      if (!i) return;
      We(g, Y) | 0;
      return;
    }
    function We(w, i) {
      w = w | 0;
      i = i | 0;
      var a = 0,
        r = 0,
        o = 0,
        f = 0,
        n = 0,
        c = 0,
        l = 0,
        d = 0,
        u = 0,
        E = 0,
        B = 0,
        C = 0,
        L = 0,
        M = 0,
        b = 0,
        I = 0,
        A = 0,
        k = 0,
        g = 0,
        y = 0,
        h = 0,
        F = 0,
        O = 0,
        R = 0,
        S = 0,
        T = 0,
        N = 0,
        D = 0,
        P = 0,
        m = 0,
        _ = 0,
        p = 0,
        v = 0;
      v = t;
      t = (t + 16) | 0;
      p = v;
      if ((e[(w + 76) >> 2] | 0) == 2) {
        if ((e[(i + 4788) >> 2] | 0) != 2) {
          w = (i + 4832) | 0;
          if (
            ((((((((((e[w >> 2] | 0) == 0
            ? ((a = (i + 4652) | 0), (r = e[a >> 2] | 0), (o = e[3039] | 0), (r | 0) >= (o | 0))
            : 0)
            ? ((f = (i + 4656) | 0), (n = e[f >> 2] | 0), (c = e[3040] | 0), (n | 0) >= (c | 0))
            : 0)
            ? ((u = (i + 4660) | 0), (d = e[u >> 2] | 0), (l = e[3041] | 0), (d | 0) >= (l | 0))
            : 0)
            ? ((C = (i + 4664) | 0), (B = e[C >> 2] | 0), (E = e[3042] | 0), (B | 0) >= (E | 0))
            : 0)
            ? ((b = (i + 4668) | 0), (M = e[b >> 2] | 0), (L = e[3043] | 0), (M | 0) >= (L | 0))
            : 0)
            ? ((k = (i + 4672) | 0), (A = e[k >> 2] | 0), (I = e[3044] | 0), (A | 0) >= (I | 0))
            : 0)
            ? ((h = (i + 4676) | 0), (y = e[h >> 2] | 0), (g = e[3045] | 0), (y | 0) >= (g | 0))
            : 0)
            ? ((R = (i + 4680) | 0), (O = e[R >> 2] | 0), (F = e[3046] | 0), (O | 0) >= (F | 0))
            : 0)
            ? ((N = (i + 4684) | 0), (T = e[N >> 2] | 0), (S = e[3047] | 0), (T | 0) >= (S | 0))
            : 0)
              ? ((m = (i + 4688) | 0), (P = e[m >> 2] | 0), (D = e[3048] | 0), (P | 0) >= (D | 0))
              : 0
          ) {
            e[w >> 2] = 1;
            e[a >> 2] = r - o;
            e[f >> 2] = n - c;
            e[u >> 2] = d - l;
            e[C >> 2] = B - E;
            e[b >> 2] = M - L;
            e[k >> 2] = A - I;
            e[h >> 2] = y - g;
            e[R >> 2] = O - F;
            e[N >> 2] = T - S;
            e[m >> 2] = P - D;
            w = 89032;
          } else w = 89032;
        } else w = (e[(i + 4792) >> 2] | 0) != 0 ? 88904 : 88968;
        o = e[(i + 4868) >> 2] | 0;
        if ((o | 0) > 0) {
          a = 0;
          r = 0;
          do {
            h = e[(i + 4608 + (r << 2)) >> 2] | 0;
            a = (a | 0) < (h | 0) ? h : a;
            r = (r + 1) | 0;
          } while ((r | 0) != (o | 0));
          u = a;
          r = (o | 0) > 1 ? o : 1;
        } else {
          u = 0;
          r = 0;
        }
        o = e[(i + 4860) >> 2] | 0;
        if ((r | 0) < (o | 0)) {
          a = 0;
          do {
            h = e[(i + 4608 + (r << 2)) >> 2] | 0;
            a = (a | 0) < (h | 0) ? h : a;
            r = (r + 1) | 0;
          } while ((r | 0) != (o | 0));
          n = a;
        } else n = 0;
        f = (i + 4844) | 0;
        e[f >> 2] = 1e5;
        o = (i + 4784) | 0;
        a = 1e5;
        r = 0;
        do {
          if (
            ((u | 0) < (e[(88776 + (r << 2)) >> 2] | 0)
            ? (n | 0) < (e[(88840 + (r << 2)) >> 2] | 0)
            : 0)
              ? ((_ = e[(w + (r << 2)) >> 2] | 0), (a | 0) > (_ | 0))
              : 0
          ) {
            e[f >> 2] = _;
            e[o >> 2] = r;
            a = _;
          }
          r = (r + 1) | 0;
        } while ((r | 0) != 16);
        h = ((a | 0) == 1e5) & 1;
        t = v;
        return h | 0;
      }
      _ = (e[(i + 4832) >> 2] | 0) == 0;
      e[p >> 2] = 0;
      e[(p + 4) >> 2] = 0;
      e[(p + 8) >> 2] = 0;
      e[(p + 12) >> 2] = 0;
      m = _ ? 0 : 2;
      if ((e[(i + 4788) >> 2] | 0) != 2) {
        f = e[(11824 + ((m * 48) | 0)) >> 2] | 0;
        if ((f | 0) > 0) {
          a = 0;
          o = 0;
          do {
            r = e[(i + 4608 + (o << 2)) >> 2] | 0;
            if ((r | 0) > (a | 0)) {
              e[p >> 2] = r;
              a = r;
            }
            o = (o + 1) | 0;
          } while ((o | 0) != (f | 0));
        } else {
          a = 0;
          f = 0;
        }
        d = e[(11824 + ((m * 48) | 0) + 4) >> 2] | 0;
        if ((d | 0) > 0) {
          o = (p + 4) | 0;
          n = 0;
          c = 0;
          l = f;
          while (1) {
            r = e[(i + 4608 + (l << 2)) >> 2] | 0;
            if ((r | 0) > (n | 0)) e[o >> 2] = r;
            else r = n;
            c = (c + 1) | 0;
            if ((c | 0) == (d | 0)) break;
            else {
              n = r;
              l = (l + 1) | 0;
            }
          }
          f = (d + f) | 0;
        } else r = 0;
        u = e[(11824 + ((m * 48) | 0) + 8) >> 2] | 0;
        if ((u | 0) > 0) {
          l = (p + 8) | 0;
          o = 0;
          c = 0;
          d = f;
          while (1) {
            n = e[(i + 4608 + (d << 2)) >> 2] | 0;
            if ((n | 0) > (o | 0)) {
              e[l >> 2] = n;
              o = n;
            }
            c = (c + 1) | 0;
            if ((c | 0) == (u | 0)) break;
            else d = (d + 1) | 0;
          }
          f = (u + f) | 0;
        } else o = 0;
        u = e[(11824 + ((m * 48) | 0) + 12) >> 2] | 0;
        if ((u | 0) > 0) {
          l = (p + 12) | 0;
          c = 0;
          d = 0;
          while (1) {
            n = e[(i + 4608 + (f << 2)) >> 2] | 0;
            if ((n | 0) > (c | 0)) e[l >> 2] = n;
            else n = c;
            d = (d + 1) | 0;
            if ((d | 0) == (u | 0)) {
              u = 0;
              break;
            } else {
              c = n;
              f = (f + 1) | 0;
            }
          }
        } else {
          n = 0;
          u = 0;
        }
      } else {
        w = 0;
        a = 0;
        do {
          h = e[(11824 + ((m * 48) | 0) + 16 + (w << 2)) >> 2] | 0;
          d = ((h | 0) / 3) | 0;
          if ((h | 0) > 2) {
            c = (p + (w << 2)) | 0;
            o = (d | 0) > 1;
            n = e[c >> 2] | 0;
            r = 0;
            E = a;
            while (1) {
              u = (E * 3) | 0;
              l = e[(i + 4608 + (u << 2)) >> 2] | 0;
              if ((l | 0) > (n | 0)) {
                e[c >> 2] = l;
                n = l;
              }
              l = e[(i + 4608 + ((u + 1) << 2)) >> 2] | 0;
              if ((l | 0) > (n | 0)) {
                e[c >> 2] = l;
                n = l;
              }
              f = e[(i + 4608 + ((u + 2) << 2)) >> 2] | 0;
              if ((f | 0) > (n | 0)) {
                e[c >> 2] = f;
                n = f;
              }
              r = (r + 1) | 0;
              if ((r | 0) >= (d | 0)) break;
              else E = (E + 1) | 0;
            }
            a = ((o ? d : 1) + a) | 0;
          }
          w = (w + 1) | 0;
        } while ((w | 0) != 4);
        a = e[p >> 2] | 0;
        r = e[(p + 4) >> 2] | 0;
        o = e[(p + 8) >> 2] | 0;
        n = e[(p + 12) >> 2] | 0;
        u = 1;
      }
      d =
        ((((r | 0) > (e[(89096 + (m << 4) + 4) >> 2] | 0)) & 1) +
          (((a | 0) > (e[(89096 + (m << 4)) >> 2] | 0)) & 1) +
          (((o | 0) > (e[(89096 + (m << 4) + 8) >> 2] | 0)) & 1) +
          (((n | 0) > (e[(89096 + (m << 4) + 12) >> 2] | 0)) & 1)) |
        0;
      if (!d) {
        c = (11824 + ((m * 48) | 0) + (u << 4)) | 0;
        e[(i + 5188) >> 2] = c;
        l = e[(89192 + (a << 2)) >> 2] | 0;
        e[(i + 5192) >> 2] = l;
        r = e[(89192 + (r << 2)) >> 2] | 0;
        e[(i + 5196) >> 2] = r;
        f = e[(89192 + (o << 2)) >> 2] | 0;
        e[(i + 5200) >> 2] = f;
        n = e[(89192 + (n << 2)) >> 2] | 0;
        e[(i + 5204) >> 2] = n;
        if (_) o = ((f << 2) + ((((l * 5) | 0) + r) << 4) + n) | 0;
        else o = (((l * 3) | 0) + 500 + r) | 0;
        e[(i + 4784) >> 2] = o;
        h = s(e[c >> 2] | 0, l) | 0;
        h = ((s(e[(11824 + ((m * 48) | 0) + (u << 4) + 4) >> 2] | 0, r) | 0) + h) | 0;
        h = (h + (s(e[(11824 + ((m * 48) | 0) + (u << 4) + 8) >> 2] | 0, f) | 0)) | 0;
        e[(i + 4844) >> 2] = h + (s(e[(11824 + ((m * 48) | 0) + (u << 4) + 12) >> 2] | 0, n) | 0);
      }
      h = d;
      t = v;
      return h | 0;
    }
    function yi(o) {
      o = o | 0;
      var r = 0,
        t = 0,
        a = 0,
        n = 0;
      e[(o + 85816) >> 2] = 2;
      n = 2;
      do {
        r = 0;
        do r = (r + 1) | 0;
        while ((e[(o + 21360 + (r << 2)) >> 2] | 0) < (n | 0));
        a = e[(89256 + (r << 3)) >> 2] | 0;
        t = a;
        while (1)
          if ((e[(o + 21360 + ((t + 1) << 2)) >> 2] | 0) > (n | 0)) t = (t + -1) | 0;
          else break;
        t = (t | 0) < 0 ? a : t;
        i[(n + -2 + (o + 85100)) >> 0] = t;
        a = e[(89256 + (r << 3) + 4) >> 2] | 0;
        t = (t << 24) >> 24;
        r = a;
        while (1)
          if ((e[(o + 21360 + ((r + 2 + t) << 2)) >> 2] | 0) > (n | 0)) r = (r + -1) | 0;
          else break;
        i[(n + -1 + (o + 85100)) >> 0] = (r | 0) < 0 ? a : r;
        n = (n + 2) | 0;
      } while ((n | 0) < 577);
      return;
    }
    function ne(a, i, s, t) {
      a = a | 0;
      i = +i;
      s = s | 0;
      t = t | 0;
      var l = 0,
        f = 0,
        h = 0,
        m = 0,
        o = 0,
        d = 0,
        u = 0,
        c = 0;
      m = a & 2;
      l = a >>> 2;
      if (!l) a = t;
      else {
        h = l << 2;
        a = (t + (h << 2)) | 0;
        f = s;
        while (1) {
          l = (l + -1) | 0;
          c = +r[f >> 2] * i + 8388608;
          u = +r[(f + 4) >> 2] * i + 8388608;
          d = +r[(f + 8) >> 2] * i + 8388608;
          o = +r[(f + 12) >> 2] * i + 8388608;
          c = +r[(46872 + ((((r[n >> 2] = c), e[n >> 2] | 0) + -1258291200) << 2)) >> 2] + c;
          u = +r[(46872 + ((((r[n >> 2] = u), e[n >> 2] | 0) + -1258291200) << 2)) >> 2] + u;
          d = +r[(46872 + ((((r[n >> 2] = d), e[n >> 2] | 0) + -1258291200) << 2)) >> 2] + d;
          o = +r[(46872 + ((((r[n >> 2] = o), e[n >> 2] | 0) + -1258291200) << 2)) >> 2] + o;
          e[t >> 2] = ((r[n >> 2] = c), e[n >> 2] | 0) + -1258291200;
          e[(t + 4) >> 2] = ((r[n >> 2] = u), e[n >> 2] | 0) + -1258291200;
          e[(t + 8) >> 2] = ((r[n >> 2] = d), e[n >> 2] | 0) + -1258291200;
          e[(t + 12) >> 2] = ((r[n >> 2] = o), e[n >> 2] | 0) + -1258291200;
          if (!l) break;
          else {
            f = (f + 16) | 0;
            t = (t + 16) | 0;
          }
        }
        s = (s + (h << 2)) | 0;
      }
      if (!m) return;
      o = +r[s >> 2] * i + 8388608;
      i = +r[(s + 4) >> 2] * i + 8388608;
      o = +r[(46872 + ((((r[n >> 2] = o), e[n >> 2] | 0) + -1258291200) << 2)) >> 2] + o;
      i = +r[(46872 + ((((r[n >> 2] = i), e[n >> 2] | 0) + -1258291200) << 2)) >> 2] + i;
      e[a >> 2] = ((r[n >> 2] = o), e[n >> 2] | 0) + -1258291200;
      e[(a + 4) >> 2] = ((r[n >> 2] = i), e[n >> 2] | 0) + -1258291200;
      return;
    }
    function Fi(o, a, u) {
      o = o | 0;
      a = a | 0;
      u = u | 0;
      var r = 0,
        i = 0,
        t = 0,
        s = 0,
        f = 0,
        n = 0,
        l = 0,
        c = 0;
      t = o;
      i = 0;
      r = 0;
      do {
        f = e[t >> 2] | 0;
        s = e[(t + 4) >> 2] | 0;
        t = (t + 8) | 0;
        i = (i | 0) < (f | 0) ? f : i;
        r = (r | 0) < (s | 0) ? s : r;
      } while (t >>> 0 < a >>> 0);
      r = (i | 0) < (r | 0) ? r : i;
      if (r >>> 0 < 16) {
        r = wr[e[(89440 + (r << 2)) >> 2] & 7](o, a, r, u) | 0;
        return r | 0;
      }
      if (r >>> 0 > 8206) {
        e[u >> 2] = 1e5;
        r = -1;
        return r | 0;
      }
      i = (r + -15) | 0;
      if ((e[20665] | 0) >>> 0 < i >>> 0)
        if ((e[20669] | 0) >>> 0 < i >>> 0)
          if ((e[20673] | 0) >>> 0 < i >>> 0)
            if ((e[20677] | 0) >>> 0 < i >>> 0)
              if ((e[20681] | 0) >>> 0 < i >>> 0)
                if ((e[20685] | 0) >>> 0 < i >>> 0)
                  if ((e[20689] | 0) >>> 0 < i >>> 0)
                    if ((e[20693] | 0) >>> 0 < i >>> 0) {
                      f = 24;
                      s = 32;
                    } else {
                      t = 31;
                      n = 9;
                    }
                  else {
                    t = 30;
                    n = 9;
                  }
                else {
                  t = 29;
                  n = 9;
                }
              else {
                t = 28;
                n = 9;
              }
            else {
              t = 27;
              n = 9;
            }
          else {
            t = 26;
            n = 9;
          }
        else {
          t = 25;
          n = 9;
        }
      else {
        t = 24;
        n = 9;
      }
      e: do
        if ((n | 0) == 9) {
          r = (t + -8) | 0;
          while (1) {
            if ((e[(82272 + (r << 4) + 4) >> 2] | 0) >>> 0 >= i >>> 0) {
              f = r;
              s = t;
              break e;
            }
            r = (r + 1) | 0;
            if ((r | 0) >= 24) {
              f = r;
              s = t;
              break;
            }
          }
        }
      while (0);
      t = ((e[(82272 + (f << 4)) >> 2] << 16) + (e[(82272 + (s << 4)) >> 2] | 0)) | 0;
      i = o;
      r = 0;
      do {
        o = e[i >> 2] | 0;
        c = e[(i + 4) >> 2] | 0;
        i = (i + 8) | 0;
        l = o >>> 0 > 14;
        n = c >>> 0 > 14;
        r =
          ((l ? t : 0) +
            r +
            (e[(82816 + (((n ? 15 : c) + (l ? 240 : o << 4)) << 2)) >> 2] | 0) +
            (n ? t : 0)) |
          0;
      } while (i >>> 0 < a >>> 0);
      o = r & 65535;
      a = r >>> 16;
      l = a >>> 0 > o >>> 0;
      e[u >> 2] = (e[u >> 2] | 0) + (l ? o : a);
      l = l ? s : f;
      return l | 0;
    }
    function Oi(e, r, i, t) {
      e = e | 0;
      r = r | 0;
      i = i | 0;
      t = t | 0;
      return 0;
    }
    function Ri(r, n, i, t) {
      r = r | 0;
      n = n | 0;
      i = i | 0;
      t = t | 0;
      var a = 0;
      a = e[20575] | 0;
      i = 0;
      do {
        i = ((o[(a + ((e[r >> 2] << 1) + (e[(r + 4) >> 2] | 0))) >> 0] | 0) + i) | 0;
        r = (r + 8) | 0;
      } while (r >>> 0 < n >>> 0);
      e[t >> 2] = (e[t >> 2] | 0) + i;
      return 1;
    }
    function Ai(i, a, r, o) {
      i = i | 0;
      a = a | 0;
      r = r | 0;
      o = o | 0;
      var t = 0,
        n = 0,
        f = 0;
      n = (r + -1) | 0;
      f = e[(89504 + (n << 2)) >> 2] | 0;
      t = e[(82272 + (f << 4)) >> 2] | 0;
      n = (n | 0) == 1 ? 83840 : 83880;
      r = 0;
      do {
        r =
          ((e[(n + (((s(e[i >> 2] | 0, t) | 0) + (e[(i + 4) >> 2] | 0)) << 2)) >> 2] | 0) + r) | 0;
        i = (i + 8) | 0;
      } while (i >>> 0 < a >>> 0);
      t = r & 65535;
      i = r >>> 16;
      r = i >>> 0 > t >>> 0;
      e[o >> 2] = (e[o >> 2] | 0) + (r ? t : i);
      return ((r & 1) + f) | 0;
    }
    function Ti(r, a, i, d) {
      r = r | 0;
      a = a | 0;
      i = i | 0;
      d = d | 0;
      var f = 0,
        t = 0,
        w = 0,
        p = 0,
        l = 0,
        u = 0,
        h = 0,
        n = 0,
        m = 0,
        c = 0;
      n = e[(89504 + ((i + -1) << 2)) >> 2] | 0;
      p = e[(82272 + (n << 4)) >> 2] | 0;
      l = e[(82272 + (n << 4) + 12) >> 2] | 0;
      m = (n + 1) | 0;
      u = e[(82272 + (m << 4) + 12) >> 2] | 0;
      h = (n + 2) | 0;
      w = e[(82272 + (h << 4) + 12) >> 2] | 0;
      t = r;
      r = 0;
      f = 0;
      i = 0;
      do {
        c = ((s(e[t >> 2] | 0, p) | 0) + (e[(t + 4) >> 2] | 0)) | 0;
        t = (t + 8) | 0;
        r = ((o[(l + c) >> 0] | 0) + r) | 0;
        f = ((o[(u + c) >> 0] | 0) + f) | 0;
        i = ((o[(w + c) >> 0] | 0) + i) | 0;
      } while (t >>> 0 < a >>> 0);
      a = r >>> 0 > f >>> 0;
      l = a ? f : r;
      u = l >>> 0 > i >>> 0;
      e[d >> 2] = (e[d >> 2] | 0) + (u ? i : l);
      return (u ? h : a ? m : n) | 0;
    }
    function Ni(t) {
      t = t | 0;
      var i = 0,
        r = 0,
        n = 0,
        o = 0;
      i = (t + 85704) | 0;
      r = e[i >> 2] | 0;
      if (r) {
        _(r);
        e[i >> 2] = 0;
      }
      r = (t + 85708) | 0;
      i = e[r >> 2] | 0;
      if (i) {
        _(i);
        e[r >> 2] = 0;
      }
      r = (t + 85712) | 0;
      i = e[r >> 2] | 0;
      if (i) {
        _(i);
        e[r >> 2] = 0;
      }
      i = (t + 85716) | 0;
      r = e[i >> 2] | 0;
      if (r) {
        _(r);
        e[i >> 2] = 0;
      }
      r = (t + 85728) | 0;
      i = e[r >> 2] | 0;
      if (i) {
        _(i);
        e[r >> 2] = 0;
        e[(t + 85732) >> 2] = 0;
        e[(t + 85740) >> 2] = 0;
      }
      i = (t + 85744) | 0;
      r = e[i >> 2] | 0;
      if (!r) return;
      do {
        o = e[(r + 24) >> 2] | 0;
        n = r;
        r = e[r >> 2] | 0;
        _(e[(n + 12) >> 2] | 0);
        _(o);
        _(n);
      } while ((r | 0) != 0);
      e[i >> 2] = 0;
      e[(t + 85748) >> 2] = 0;
      return;
    }
    function Y(t) {
      t = t | 0;
      var r = 0,
        i = 0,
        n = 0;
      n = 0;
      do {
        i = (t + 37192 + (n << 2)) | 0;
        r = e[i >> 2] | 0;
        if (r) {
          _(r);
          e[i >> 2] = 0;
        }
        n = (n + 1) | 0;
      } while ((n | 0) != 641);
      i = (t + 37184) | 0;
      r = e[i >> 2] | 0;
      if (r) {
        _(r);
        e[i >> 2] = 0;
      }
      i = (t + 37188) | 0;
      r = e[i >> 2] | 0;
      if (r) {
        _(r);
        e[i >> 2] = 0;
      }
      r = (t + 284) | 0;
      i = e[r >> 2] | 0;
      if (i) {
        _(i);
        e[r >> 2] = 0;
      }
      i = (t + 85780) | 0;
      r = e[i >> 2] | 0;
      if (r) {
        _(r);
        e[i >> 2] = 0;
        e[(t + 85776) >> 2] = 0;
      }
      r = e[(t + 85796) >> 2] | 0;
      if (r) _(r);
      r = e[(t + 85676) >> 2] | 0;
      if (r) _(r);
      r = e[(t + 52152) >> 2] | 0;
      if (r) _(r);
      r = e[(t + 52156) >> 2] | 0;
      if (r) _(r);
      Ni(t);
      i = (t + 85808) | 0;
      r = e[i >> 2] | 0;
      if (r) {
        vr(r | 0) | 0;
        e[i >> 2] = 0;
      }
      n = (t + 85800) | 0;
      r = e[n >> 2] | 0;
      if (!r) {
        _(t);
        return;
      }
      i = e[(r + 2156) >> 2] | 0;
      if (i) {
        _(i);
        r = e[n >> 2] | 0;
      }
      i = e[(r + 4316) >> 2] | 0;
      if (i) {
        _(i);
        r = e[n >> 2] | 0;
      }
      _(r);
      _(t);
      return;
    }
    function L(o, i) {
      o = o | 0;
      i = +i;
      var t = 0,
        n = 0;
      switch (e[(o + 192) >> 2] | 0) {
        case 3: {
          i = i < -0.3 ? 3.4100000858306885 : i * 0.0010000000474974513;
          i = i < 0.10000000149011612 ? 0.10000000149011612 : i;
          i = i > 24 ? 24 : i;
          n = i + -3.4;
          t = i + -8.7;
          i =
            +d(+i, -0.8) * 3.64 -
            +v(+(n * n * -0.6)) * 6.8 +
            +v(+(t * t * -0.15)) * 6 +
            +d(+i, 4) * 0.0006399999999999999 +
            6;
          return +i;
        }
        case 1: {
          i = i < -0.3 ? 3.4100000858306885 : i * 0.0010000000474974513;
          i = i < 0.10000000149011612 ? 0.10000000149011612 : i;
          i = i > 24 ? 24 : i;
          n = i + -3.4;
          t = i + -8.7;
          i =
            +d(+i, -0.8) * 3.64 -
            +v(+(n * n * -0.6)) * 6.8 +
            +v(+(t * t * -0.15)) * 6 +
            +d(+i, 4) * 56e-5;
          return +i;
        }
        case 4: {
          i = i < -0.3 ? 3.4100000858306885 : i * 0.0010000000474974513;
          i = i < 0.10000000149011612 ? 0.10000000149011612 : i;
          i = i > 24 ? 24 : i;
          n = i + -3.4;
          t = i + -8.7;
          i =
            +d(+i, -0.8) * 3.64 -
            +v(+(n * n * -0.6)) * 6.8 +
            +v(+(t * t * -0.15)) * 6 +
            +d(+i, 4) * (+r[(o + 188) >> 2] * 4e-5 + 6e-4);
          return +i;
        }
        case 0: {
          i = i < -0.3 ? 3.4100000858306885 : i * 0.0010000000474974513;
          i = i < 0.10000000149011612 ? 0.10000000149011612 : i;
          i = i > 24 ? 24 : i;
          n = i + -3.4;
          t = i + -8.7;
          i =
            +d(+i, -0.8) * 3.64 -
            +v(+(n * n * -0.6)) * 6.8 +
            +v(+(t * t * -0.15)) * 6 +
            +d(+i, 4) * 0.0009599999999999999;
          return +i;
        }
        case 5: {
          i = i < -0.3 ? 3.4100000858306885 : i * 0.0010000000474974513;
          i = i < 3.4100000858306885 ? 3.4100000858306885 : i;
          i = i > 16.100000381469727 ? 16.100000381469727 : i;
          n = i + -3.4;
          t = i + -8.7;
          i =
            +d(+i, -0.8) * 3.64 -
            +v(+(n * n * -0.6)) * 6.8 +
            +v(+(t * t * -0.15)) * 6 +
            +d(+i, 4) * (+r[(o + 188) >> 2] * 4e-5 + 6e-4);
          return +i;
        }
        case 2: {
          i = i < -0.3 ? 3.4100000858306885 : i * 0.0010000000474974513;
          i = i < 0.10000000149011612 ? 0.10000000149011612 : i;
          i = i > 24 ? 24 : i;
          n = i + -3.4;
          t = i + -8.7;
          i =
            +d(+i, -0.8) * 3.64 -
            +v(+(n * n * -0.6)) * 6.8 +
            +v(+(t * t * -0.15)) * 6 +
            +d(+i, 4) * 6e-4;
          return +i;
        }
        default: {
          i = i < -0.3 ? 3.4100000858306885 : i * 0.0010000000474974513;
          i = i < 0.10000000149011612 ? 0.10000000149011612 : i;
          i = i > 24 ? 24 : i;
          n = i + -3.4;
          t = i + -8.7;
          i =
            +d(+i, -0.8) * 3.64 -
            +v(+(n * n * -0.6)) * 6.8 +
            +v(+(t * t * -0.15)) * 6 +
            +d(+i, 4) * 6e-4;
          return +i;
        }
      }
      return 0;
    }
    function F(e) {
      e = +e;
      e = e < 0 ? 0 : e * 0.001;
      return +(+cr(+(e * e * 0.017777777777777778)) * 3.5 + +cr(+(e * 0.76)) * 13);
    }
    function ie(n, i, r) {
      n = n | 0;
      i = i | 0;
      r = r | 0;
      var s = 0,
        t = 0,
        o = 0,
        a = 0;
      s = (r | 0) < 16e3 ? 2 : i;
      r = e[(83944 + (s << 6) + 4) >> 2] | 0;
      t = 2;
      do {
        i = e[(83944 + (s << 6) + (t << 2)) >> 2] | 0;
        if ((i | 0) > 0) {
          a = (i - n) | 0;
          o = (r - n) | 0;
          r = (((a | 0) > 0 ? a : (0 - a) | 0) | 0) < (((o | 0) > 0 ? o : (0 - o) | 0) | 0) ? i : r;
        }
        t = (t + 1) | 0;
      } while ((t | 0) != 15);
      return r | 0;
    }
    function Ue(i) {
      i = i | 0;
      var n = 0,
        r = 0,
        o = 0,
        t = 0,
        a = 0;
      t = i & 65535;
      r = 0;
      while (1) {
        if ((r | 0) >= 16) {
          o = 16;
          r = 320;
          i = 16;
          n = 320;
          break;
        }
        i = (r + 1) | 0;
        n = e[(89568 + (i << 2)) >> 2] | 0;
        if ((((t | 0) > (n | 0) ? t : n) | 0) == (t | 0)) r = i;
        else {
          a = 4;
          break;
        }
      }
      if ((a | 0) == 4) {
        o = r;
        r = e[(89568 + (r << 2)) >> 2] | 0;
      }
      return (((n - t) | 0) > ((t - r) | 0) ? o : i) | 0;
    }
    function Ii(e) {
      e = e | 0;
      if ((e | 0) >= 8001)
        if ((e | 0) >= 11026)
          if ((e | 0) >= 12001)
            if ((e | 0) >= 16001)
              if ((e | 0) >= 22051)
                if ((e | 0) >= 24001)
                  if ((e | 0) < 32001) e = 32e3;
                  else e = (e | 0) < 44101 ? 44100 : 48e3;
                else e = 24e3;
              else e = 22050;
            else e = 16e3;
          else e = 12e3;
        else e = 11025;
      else e = 8e3;
      return e | 0;
    }
    function re(t, i, r) {
      t = t | 0;
      i = i | 0;
      r = r | 0;
      r = (r | 0) < 16e3 ? 2 : i;
      i = e[(83944 + (r << 6)) >> 2] | 0;
      if (((i | 0) > 0) & ((i | 0) == (t | 0))) {
        r = 0;
        return r | 0;
      }
      i = e[(83944 + (r << 6) + 4) >> 2] | 0;
      if (((i | 0) > 0) & ((i | 0) == (t | 0))) {
        r = 1;
        return r | 0;
      }
      i = e[(83944 + (r << 6) + 8) >> 2] | 0;
      if (((i | 0) > 0) & ((i | 0) == (t | 0))) {
        r = 2;
        return r | 0;
      }
      i = e[(83944 + (r << 6) + 12) >> 2] | 0;
      if (((i | 0) > 0) & ((i | 0) == (t | 0))) {
        r = 3;
        return r | 0;
      }
      i = e[(83944 + (r << 6) + 16) >> 2] | 0;
      if (((i | 0) > 0) & ((i | 0) == (t | 0))) {
        r = 4;
        return r | 0;
      }
      i = e[(83944 + (r << 6) + 20) >> 2] | 0;
      if (((i | 0) > 0) & ((i | 0) == (t | 0))) {
        r = 5;
        return r | 0;
      }
      i = e[(83944 + (r << 6) + 24) >> 2] | 0;
      if (((i | 0) > 0) & ((i | 0) == (t | 0))) {
        r = 6;
        return r | 0;
      }
      i = e[(83944 + (r << 6) + 28) >> 2] | 0;
      if (((i | 0) > 0) & ((i | 0) == (t | 0))) {
        r = 7;
        return r | 0;
      }
      i = e[(83944 + (r << 6) + 32) >> 2] | 0;
      if (((i | 0) > 0) & ((i | 0) == (t | 0))) {
        r = 8;
        return r | 0;
      }
      i = e[(83944 + (r << 6) + 36) >> 2] | 0;
      if (((i | 0) > 0) & ((i | 0) == (t | 0))) {
        r = 9;
        return r | 0;
      }
      i = e[(83944 + (r << 6) + 40) >> 2] | 0;
      if (((i | 0) > 0) & ((i | 0) == (t | 0))) {
        r = 10;
        return r | 0;
      }
      i = e[(83944 + (r << 6) + 44) >> 2] | 0;
      if (((i | 0) > 0) & ((i | 0) == (t | 0))) {
        r = 11;
        return r | 0;
      }
      i = e[(83944 + (r << 6) + 48) >> 2] | 0;
      if (((i | 0) > 0) & ((i | 0) == (t | 0))) {
        r = 12;
        return r | 0;
      }
      i = e[(83944 + (r << 6) + 52) >> 2] | 0;
      if (((i | 0) > 0) & ((i | 0) == (t | 0))) {
        r = 13;
        return r | 0;
      } else {
        r = e[(83944 + (r << 6) + 56) >> 2] | 0;
        return (((r | 0) > 0) & ((r | 0) == (t | 0)) ? 14 : -1) | 0;
      }
      return 0;
    }
    function _r(r, i) {
      r = r | 0;
      i = i | 0;
      do
        if ((r | 0) == 22050) {
          e[i >> 2] = 0;
          r = 0;
        } else if ((r | 0) == 8e3) {
          e[i >> 2] = 0;
          r = 2;
        } else if ((r | 0) == 16e3) {
          e[i >> 2] = 0;
          r = 2;
        } else if ((r | 0) == 48e3) {
          e[i >> 2] = 1;
          r = 1;
        } else if ((r | 0) == 12e3) {
          e[i >> 2] = 0;
          r = 1;
        } else if ((r | 0) == 44100) {
          e[i >> 2] = 1;
          r = 0;
        } else if ((r | 0) == 24e3) {
          e[i >> 2] = 0;
          r = 1;
        } else if ((r | 0) == 32e3) {
          e[i >> 2] = 1;
          r = 2;
        } else if ((r | 0) == 11025) {
          e[i >> 2] = 0;
          r = 0;
        } else {
          e[i >> 2] = 0;
          r = -1;
        }
      while (0);
      return r | 0;
    }
    function Ui(r) {
      r = r | 0;
      var i = 0;
      i = +(e[(r + 48) >> 2] | 0);
      r = e[(r + 44) >> 2] | 0;
      if ((r | 0) < (~~(i * 0.9994999766349792) | 0)) {
        r = 1;
        r = r & 1;
        return r | 0;
      }
      r = (~~(i * 1.000499963760376) | 0) < (r | 0);
      r = r & 1;
      return r | 0;
    }
    function pr(c, A, C, E, D, T) {
      c = c | 0;
      A = A | 0;
      C = C | 0;
      E = E | 0;
      D = D | 0;
      T = T | 0;
      var o = 0,
        i = 0,
        u = 0,
        n = 0,
        t = 0,
        a = 0,
        d = 0,
        S = 0,
        w = 0,
        h = 0,
        M = 0,
        b = 0,
        y = 0,
        Y = 0,
        F = 0,
        G = 0,
        j = 0,
        R = 0,
        g = 0,
        K = 0,
        s = 0,
        _ = 0,
        v = 0,
        P = 0,
        W = 0,
        H = 0,
        U = 0,
        V = 0,
        q = 0,
        m = 0,
        L = 0,
        I = 0,
        B = 0,
        z = 0,
        O = 0;
      B = e[(c + 84036) >> 2] | 0;
      u = e[(c + 76) >> 2] | 0;
      L = (u * 576) | 0;
      z = e[(c + 72) >> 2] | 0;
      I = (c + 64) | 0;
      o = e[I >> 2] | 0;
      a = +(o | 0);
      H = (c + 60) | 0;
      i = e[H >> 2] | 0;
      if (
        (i | 0) >= (~~(a * 0.9994999766349792) | 0) ? (~~(a * 1.000499963760376) | 0) >= (i | 0) : 0
      ) {
        o = (L | 0) < (E | 0) ? L : E;
        i = o << 2;
        u = 0;
        do {
          l(((e[(A + (u << 2)) >> 2] | 0) + (B << 2)) | 0, e[(C + (u << 2)) >> 2] | 0, i | 0) | 0;
          u = (u + 1) | 0;
        } while ((u | 0) < (z | 0));
        e[T >> 2] = o;
        e[D >> 2] = o;
        return;
      }
      U = (c + 12) | 0;
      V = (c + 37184) | 0;
      q = (c + 37188) | 0;
      m = (c + 37168) | 0;
      W = (u | 0) > 0;
      u = 0;
      while (1) {
        K = e[(A + (u << 2)) >> 2] | 0;
        P = e[(C + (u << 2)) >> 2] | 0;
        v = +(i | 0) / +(o | 0);
        if (!i) i = o;
        else {
          t = o;
          while (1) {
            n = (t | 0) % (i | 0) | 0;
            if (!n) break;
            else {
              t = i;
              i = n;
            }
          }
        }
        i = ((o | 0) / (i | 0)) | 0;
        o = (i | 0) > 320 ? 320 : i;
        s = +p(+(v - +x(+(v + 0.5)))) < 1e-4;
        a = 1 / v;
        n = a > 1;
        s = s ? 32 : 31;
        _ = (s + 1) | 0;
        if (!(e[U >> 2] | 0)) {
          e[V >> 2] = k(_, 4) | 0;
          e[q >> 2] = k(_, 4) | 0;
          b = o << 1;
          if ((o | 0) < 0) {
            e[m >> 2] = 0;
            e[(m + 4) >> 2] = 0;
            e[(m + 8) >> 2] = 0;
            e[(m + 12) >> 2] = 0;
            t = 0;
          } else {
            t = 0;
            while (1) {
              e[(c + 37192 + (t << 2)) >> 2] = k(_, 4) | 0;
              if ((t | 0) < (b | 0)) t = (t + 1) | 0;
              else break;
            }
            e[m >> 2] = 0;
            e[(m + 4) >> 2] = 0;
            e[(m + 8) >> 2] = 0;
            e[(m + 12) >> 2] = 0;
            j = +(o | 0) * 2;
            F = n ? 3.1415927410125732 : a * 3.141592653589793;
            y = +(s | 0);
            Y = F * 0.3183098861837907;
            F = F * y;
            G = +(s | 0) * 3.141592653589793;
            w = (i | 0) < 320 ? (-2 - ((i << 1) ^ -2)) | 0 : 640;
            i = 0;
            while (1) {
              M = +((i - o) | 0) / j;
              n = e[(c + 37192 + (i << 2)) >> 2] | 0;
              h = 0;
              d = 0;
              while (1) {
                a = (+(h | 0) - M) / y;
                a = a < 0 ? 0 : a;
                a = a > 1 ? 1 : a;
                S = a + -0.5;
                if (+p(+S) < 1e-9) a = Y;
                else
                  a =
                    ((0.42 -
                      +N(+(a * 2 * 3.141592653589793)) * 0.5 +
                      +N(+(a * 4 * 3.141592653589793)) * 0.08) *
                      +Lr(+(F * S))) /
                    (G * S);
                r[(n + (h << 2)) >> 2] = a;
                d = a + d;
                if ((h | 0) < (s | 0)) h = (h + 1) | 0;
                else break;
              }
              t = 0;
              while (1) {
                h = (n + (t << 2)) | 0;
                r[h >> 2] = +r[h >> 2] / d;
                if ((t | 0) < (s | 0)) t = (t + 1) | 0;
                else break;
              }
              if ((i | 0) < (b | 0)) i = (i + 1) | 0;
              else break;
            }
            t = (w | 0) > 0 ? w | 1 : 1;
          }
          e[U >> 2] = 1;
        } else t = 0;
        g = e[(c + 37184 + (u << 2)) >> 2] | 0;
        R = (c + 37168 + (u << 3)) | 0;
        e: do
          if (W) {
            b = s >>> 1;
            n = (s - b) | 0;
            y = +((s & 1) | 0) * 0.5;
            M = +(o | 0);
            S = M * 2;
            a = +f[R >> 3];
            o = 0;
            do {
              d = +(o | 0) * v - a;
              t = ~~+x(+d);
              if (((t + n) | 0) >= (E | 0)) break e;
              h = (t - b) | 0;
              i = e[(c + 37192 + (~~+x(+(S * (d - y - +(t | 0)) + M + 0.5)) << 2)) >> 2] | 0;
              w = 0;
              d = 0;
              while (1) {
                O = (w + h) | 0;
                d =
                  +r[(i + (w << 2)) >> 2] *
                    +r[((O | 0) < 0 ? (g + ((O + _) << 2)) | 0 : (P + (O << 2)) | 0) >> 2] +
                  d;
                if ((w | 0) < (s | 0)) w = (w + 1) | 0;
                else break;
              }
              r[(K + ((o + B) << 2)) >> 2] = d;
              o = (o + 1) | 0;
            } while ((o | 0) < (L | 0));
          } else {
            n = (s - (s >>> 1)) | 0;
            a = +f[R >> 3];
            o = 0;
          }
        while (0);
        i = (t + n) | 0;
        i = (i | 0) > (E | 0) ? E : i;
        e[D >> 2] = i;
        f[R >> 3] = a - +(o | 0) * v + +(i | 0);
        if ((s | 0) >= (i | 0)) {
          n = (_ - i) | 0;
          if ((n | 0) > 0) {
            t = 0;
            do {
              e[(g + (t << 2)) >> 2] = e[(g + ((t + i) << 2)) >> 2];
              t = (t + 1) | 0;
            } while ((t | 0) != (n | 0));
          } else n = 0;
          if ((s | 0) >= (n | 0)) {
            t = (_ - n) | 0;
            i = 0;
            while (1) {
              e[(g + (n << 2)) >> 2] = e[(P + (i << 2)) >> 2];
              i = (i + 1) | 0;
              if ((i | 0) == (t | 0)) break;
              else n = (n + 1) | 0;
            }
          }
        } else {
          i = (i + ~s) | 0;
          n = 0;
          do {
            e[(g + (n << 2)) >> 2] = e[(P + ((i + n) << 2)) >> 2];
            n = (n + 1) | 0;
          } while ((n | 0) < (_ | 0));
        }
        u = (u + 1) | 0;
        if ((u | 0) >= (z | 0)) break;
        i = e[H >> 2] | 0;
        o = e[I >> 2] | 0;
      }
      e[T >> 2] = o;
      return;
    }
    function qi(r, i) {
      r = r | 0;
      i = i | 0;
      var t = 0;
      t = e[vi >> 2] | 0;
      at(t | 0, r | 0, i | 0) | 0;
      _t(t | 0) | 0;
      return;
    }
    function Vi(r, n, o) {
      r = r | 0;
      n = n | 0;
      o = o | 0;
      var a = 0,
        i = 0;
      i = t;
      t = (t + 16) | 0;
      a = i;
      if (!r) {
        t = i;
        return;
      }
      r = (r + 85828) | 0;
      if (!(e[r >> 2] | 0)) {
        t = i;
        return;
      }
      e[a >> 2] = o;
      K[e[r >> 2] & 3](n, a);
      t = i;
      return;
    }
    function M(r, n, o) {
      r = r | 0;
      n = n | 0;
      o = o | 0;
      var a = 0,
        i = 0;
      i = t;
      t = (t + 16) | 0;
      a = i;
      if (!r) {
        t = i;
        return;
      }
      r = (r + 85836) | 0;
      if (!(e[r >> 2] | 0)) {
        t = i;
        return;
      }
      e[a >> 2] = o;
      K[e[r >> 2] & 3](n, a);
      t = i;
      return;
    }
    function Wi() {
      return 0;
    }
    function Yi() {
      return 0;
    }
    function Ki() {
      return 0;
    }
    function Gi() {
      return 0;
    }
    function en() {
      return;
    }
    function Zi() {
      var i = 0;
      if (!(e[22410] | 0)) i = 0;
      else {
        e[22410] = 1;
        return;
      }
      do {
        r[(89648 + (i << 2)) >> 2] = +Ve(+(+(i | 0) * 0.001953125 + 1)) * 1.4426950408889634;
        i = (i + 1) | 0;
      } while ((i | 0) != 513);
      e[22410] = 1;
      return;
    }
    function b(i) {
      i = +i;
      var o = 0,
        t = 0;
      t = ((r[n >> 2] = i), e[n >> 2] | 0);
      i = +((t & 16383) | 0) * 6103515625e-14;
      o = (t >>> 14) & 511;
      return +(
        +r[(89648 + (o << 2)) >> 2] * (1 - i) +
        +((((t >>> 23) & 255) + -127) | 0) +
        +r[(89648 + ((o + 1) << 2)) >> 2] * i
      );
    }
    function Qi() {
      return 91704;
    }
    function $i(f, r, h, _) {
      f = f | 0;
      r = r | 0;
      h = h | 0;
      _ = _ | 0;
      var n = 0,
        o = 0,
        i = 0,
        a = 0,
        m = 0,
        w = 0,
        p = 0,
        S = 0,
        c = 0,
        u = 0,
        O = 0,
        R = 0,
        T = 0,
        A = 0,
        k = 0,
        v = 0,
        d = 0,
        y = 0,
        M = 0,
        E = 0,
        b = 0,
        F = 0;
      F = t;
      t = (t + 688) | 0;
      y = (F + 424) | 0;
      d = (F + 192) | 0;
      E = F;
      n = s(h, r) | 0;
      if (!n) {
        t = F;
        return;
      }
      a = (n - h) | 0;
      e[(E + 4) >> 2] = h;
      e[E >> 2] = h;
      o = h;
      r = h;
      i = 2;
      while (1) {
        o = (o + h + r) | 0;
        e[(E + (i << 2)) >> 2] = o;
        if (o >>> 0 < n >>> 0) {
          M = r;
          r = o;
          i = (i + 1) | 0;
          o = M;
        } else break;
      }
      M = (0 - h) | 0;
      A = (f + a) | 0;
      if ((a | 0) > 0) {
        R = (h | 0) == 0;
        T = A;
        n = 1;
        o = 0;
        r = 1;
        do {
          do
            if (((n & 3) | 0) != 3) {
              O = (r + -1) | 0;
              if ((e[(E + (O << 2)) >> 2] | 0) >>> 0 < ((T - f) | 0) >>> 0) {
                e[d >> 2] = f;
                e: do
                  if ((r | 0) > 1) {
                    a = r;
                    i = f;
                    c = f;
                    m = 1;
                    while (1) {
                      u = (i + M) | 0;
                      w = (a + -2) | 0;
                      i = (i + (0 - ((e[(E + (w << 2)) >> 2] | 0) + h))) | 0;
                      if ((g[_ & 1](c, i) | 0) > -1 ? (g[_ & 1](c, u) | 0) > -1 : 0) {
                        S = m;
                        break;
                      }
                      S = (m + 1) | 0;
                      p = (d + (m << 2)) | 0;
                      if ((g[_ & 1](i, u) | 0) > -1) {
                        e[p >> 2] = i;
                        a = (a + -1) | 0;
                      } else {
                        e[p >> 2] = u;
                        i = u;
                        a = w;
                      }
                      if ((a | 0) <= 1) break;
                      c = e[d >> 2] | 0;
                      m = S;
                    }
                    if ((S | 0) >= 2 ? ((v = (d + (S << 2)) | 0), (e[v >> 2] = y), !R) : 0) {
                      m = h;
                      a = y;
                      while (1) {
                        i = m >>> 0 > 256 ? 256 : m;
                        w = e[d >> 2] | 0;
                        l(a | 0, w | 0, i | 0) | 0;
                        p = 0;
                        do {
                          u = p;
                          p = (p + 1) | 0;
                          c = w;
                          w = e[(d + (p << 2)) >> 2] | 0;
                          l(c | 0, w | 0, i | 0) | 0;
                          e[(d + (u << 2)) >> 2] = c + i;
                        } while ((p | 0) != (S | 0));
                        if ((m | 0) == (i | 0)) break e;
                        m = (m - i) | 0;
                        a = e[v >> 2] | 0;
                      }
                    }
                  }
                while (0);
              } else Q(f, h, _, n, o, r, 0, E);
              if ((r | 0) == 1) {
                a = n << 1;
                o = (n >>> 31) | (o << 1);
                r = 0;
                break;
              } else {
                u = O >>> 0 > 31;
                c = u ? 0 : n;
                r = u ? (r + -33) | 0 : O;
                a = c << r;
                o = (c >>> ((32 - r) | 0)) | ((u ? n : o) << r);
                r = 1;
                break;
              }
            } else {
              e[d >> 2] = f;
              e: do
                if ((r | 0) > 1) {
                  a = r;
                  i = f;
                  S = f;
                  w = 1;
                  while (1) {
                    c = (i + M) | 0;
                    u = (a + -2) | 0;
                    i = (i + (0 - ((e[(E + (u << 2)) >> 2] | 0) + h))) | 0;
                    if ((g[_ & 1](S, i) | 0) > -1 ? (g[_ & 1](S, c) | 0) > -1 : 0) {
                      p = w;
                      break;
                    }
                    p = (w + 1) | 0;
                    m = (d + (w << 2)) | 0;
                    if ((g[_ & 1](i, c) | 0) > -1) {
                      e[m >> 2] = i;
                      a = (a + -1) | 0;
                    } else {
                      e[m >> 2] = c;
                      i = c;
                      a = u;
                    }
                    if ((a | 0) <= 1) break;
                    S = e[d >> 2] | 0;
                    w = p;
                  }
                  if ((p | 0) >= 2 ? ((k = (d + (p << 2)) | 0), (e[k >> 2] = y), !R) : 0) {
                    m = h;
                    a = y;
                    while (1) {
                      w = m >>> 0 > 256 ? 256 : m;
                      i = e[d >> 2] | 0;
                      l(a | 0, i | 0, w | 0) | 0;
                      a = i;
                      i = 0;
                      do {
                        O = i;
                        i = (i + 1) | 0;
                        u = a;
                        a = e[(d + (i << 2)) >> 2] | 0;
                        l(u | 0, a | 0, w | 0) | 0;
                        e[(d + (O << 2)) >> 2] = u + w;
                      } while ((i | 0) != (p | 0));
                      if ((m | 0) == (w | 0)) break e;
                      m = (m - w) | 0;
                      a = e[k >> 2] | 0;
                    }
                  }
                }
              while (0);
              a = (n >>> 2) | (o << 30);
              o = o >>> 2;
              r = (r + 2) | 0;
            }
          while (0);
          n = a | 1;
          f = (f + h) | 0;
        } while (f >>> 0 < A >>> 0);
      } else {
        o = 0;
        n = 1;
        r = 1;
      }
      Q(f, h, _, n, o, r, 0, E);
      if (((o | 0) == 0) & (((n | 0) == 1) & ((r | 0) == 1))) {
        t = F;
        return;
      } else {
        i = n;
        u = f;
        c = r;
      }
      while (1) {
        if ((c | 0) >= 2) {
          v = i >>> 30;
          y = (c + -2) | 0;
          k = (((i << 1) & 2147483646) | (v << 31)) ^ 3;
          d = (v | (o << 2)) >>> 1;
          Q((u + (0 - ((e[(E + (y << 2)) >> 2] | 0) + h))) | 0, h, _, k, d, (c + -1) | 0, 1, E);
          v = (d << 1) | (v & 1);
          k = (k << 1) | 1;
          d = (u + M) | 0;
          Q(d, h, _, k, v, y, 1, E);
          i = k;
          o = v;
          u = d;
          c = y;
          continue;
        }
        r = (i + -1) | 0;
        do
          if (r) {
            if (!(r & 1)) {
              n = r;
              r = 0;
              do {
                r = (r + 1) | 0;
                n = n >>> 1;
              } while (((n & 1) | 0) == 0);
              if (!r) b = 51;
            } else b = 51;
            if ((b | 0) == 51) {
              b = 0;
              if (!o) {
                r = 64;
                b = 56;
                break;
              }
              if (!(o & 1)) {
                n = o;
                r = 0;
              } else {
                n = 0;
                f = i;
                r = 0;
                break;
              }
              while (1) {
                f = (r + 1) | 0;
                n = n >>> 1;
                if (n & 1) {
                  n = f;
                  break;
                } else r = f;
              }
              if (!n) {
                n = 0;
                f = i;
                r = 0;
                break;
              } else r = (r + 33) | 0;
            }
            if (r >>> 0 > 31) b = 56;
            else {
              n = r;
              f = i;
            }
          } else {
            r = 32;
            b = 56;
          }
        while (0);
        if ((b | 0) == 56) {
          b = 0;
          n = (r + -32) | 0;
          f = o;
          o = 0;
        }
        i = (o << (32 - n)) | (f >>> n);
        o = o >>> n;
        c = (r + c) | 0;
        if (((o | 0) == 0) & (((i | 0) == 1) & ((c | 0) == 1))) break;
        else u = (u + M) | 0;
      }
      t = F;
      return;
    }
    function et(e) {
      e = e | 0;
      var r = 0;
      r = t;
      t = (t + e) | 0;
      t = (t + 15) & -16;
      return r | 0;
    }
    function rt() {
      return t | 0;
    }
    function it(e) {
      e = e | 0;
      t = e;
    }
    function tt(e, r) {
      e = e | 0;
      r = r | 0;
      t = e;
      Ei = r;
    }
    function nt(e, r) {
      e = e | 0;
      r = r | 0;
      if (!Er) {
        Er = e;
        bi = r;
      }
    }
    function Xt(e) {
      e = e | 0;
      i[n >> 0] = i[e >> 0];
      i[(n + 1) >> 0] = i[(e + 1) >> 0];
      i[(n + 2) >> 0] = i[(e + 2) >> 0];
      i[(n + 3) >> 0] = i[(e + 3) >> 0];
    }
    function Wt(e) {
      e = e | 0;
      i[n >> 0] = i[e >> 0];
      i[(n + 1) >> 0] = i[(e + 1) >> 0];
      i[(n + 2) >> 0] = i[(e + 2) >> 0];
      i[(n + 3) >> 0] = i[(e + 3) >> 0];
      i[(n + 4) >> 0] = i[(e + 4) >> 0];
      i[(n + 5) >> 0] = i[(e + 5) >> 0];
      i[(n + 6) >> 0] = i[(e + 6) >> 0];
      i[(n + 7) >> 0] = i[(e + 7) >> 0];
    }
    function st(e) {
      e = e | 0;
      m = e;
    }
    function ft() {
      return m | 0;
    }
    function lt(i) {
      i = i | 0;
      var r = 0,
        t = 0,
        a = 0,
        n = 0,
        s = 0,
        f = 0,
        o = 0;
      a = e[(83944 + (e[(i + 16) >> 2] << 6) + (e[(i + 84744) >> 2] << 2)) >> 2] | 0;
      n = (i + 85784) | 0;
      e[n >> 2] = (e[n >> 2] | 0) + 1;
      n = (i + 85760) | 0;
      a = ((e[n >> 2] | 0) + a) | 0;
      e[n >> 2] = a;
      n = (i + 85764) | 0;
      r = ((e[n >> 2] | 0) + 1) | 0;
      e[n >> 2] = r;
      f = (i + 85768) | 0;
      if ((r | 0) < (e[f >> 2] | 0)) return;
      o = (i + 85772) | 0;
      t = e[o >> 2] | 0;
      s = (i + 85776) | 0;
      r = e[s >> 2] | 0;
      if ((t | 0) < (r | 0)) {
        e[((e[(i + 85780) >> 2] | 0) + (t << 2)) >> 2] = a;
        t = ((e[o >> 2] | 0) + 1) | 0;
        e[o >> 2] = t;
        e[n >> 2] = 0;
        r = e[s >> 2] | 0;
      }
      if ((t | 0) != (r | 0)) return;
      if ((r | 0) > 1) {
        r = e[(i + 85780) >> 2] | 0;
        t = 1;
        do {
          e[(r + ((((t | 0) / 2) | 0) << 2)) >> 2] = e[(r + (t << 2)) >> 2];
          t = (t + 2) | 0;
        } while ((t | 0) < (e[s >> 2] | 0));
        r = e[o >> 2] | 0;
      }
      e[f >> 2] = e[f >> 2] << 1;
      e[o >> 2] = ((r | 0) / 2) | 0;
      return;
    }
    function ut(n) {
      n = n | 0;
      var o = 0,
        u = 0,
        r = 0,
        l = 0,
        f = 0,
        a = 0;
      f = t;
      t = (t + 2896) | 0;
      u = f;
      l = (f + 8) | 0;
      r = e[(n + 288) >> 2] | 0;
      n = e[(r + 16) >> 2] | 0;
      if ((n | 0) == 1) o = 128;
      else o = (e[(r + 64) >> 2] | 0) < 16e3 ? 32 : 64;
      if (!(e[(r + 104) >> 2] | 0)) o = e[(r + 120) >> 2] | 0;
      a = s((((n * 72e3) | 0) + 72e3) | 0, o) | 0;
      a = ((a | 0) / (e[(r + 64) >> 2] | 0)) | 0;
      o = ((e[(r + 24) >> 2] | 0) + 156) | 0;
      n = (r + 85792) | 0;
      e[n >> 2] = a;
      if (((a | 0) > 2880) | ((a | 0) < (o | 0))) {
        e[(r + 156) >> 2] = 0;
        n = 0;
        t = f;
        return n | 0;
      }
      e[(r + 85784) >> 2] = 0;
      e[(r + 85788) >> 2] = 0;
      e[(r + 85760) >> 2] = 0;
      e[(r + 85764) >> 2] = 0;
      e[(r + 85768) >> 2] = 1;
      e[(r + 85772) >> 2] = 0;
      o = (r + 85780) | 0;
      do
        if (!(e[o >> 2] | 0)) {
          a = W(1600) | 0;
          e[o >> 2] = a;
          o = (r + 85776) | 0;
          if (a) {
            e[o >> 2] = 400;
            break;
          }
          e[o >> 2] = 0;
          M(r, 8, u);
          e[(r + 156) >> 2] = 0;
          n = -1;
          t = f;
          return n | 0;
        }
      while (0);
      c(l | 0, 0, 2880) | 0;
      dt(r, l);
      n = e[n >> 2] | 0;
      if (n) {
        o = 0;
        do {
          Pe(r, i[(l + o) >> 0] | 0, 1);
          o = (o + 1) | 0;
        } while ((o | 0) != (n | 0));
      }
      n = 0;
      t = f;
      return n | 0;
    }
    function ct(t, a, n) {
      t = t | 0;
      a = a | 0;
      n = n | 0;
      var r = 0,
        i = 0;
      if ((n | 0) <= 0) return;
      r = S[t >> 1] | 0;
      i = 0;
      do {
        r =
          (((r & 65535) >>> 8) ^ e[(48 + (((r ^ (o[(a + i) >> 0] | 0)) & 255) << 2)) >> 2]) & 65535;
        S[t >> 1] = r;
        i = (i + 1) | 0;
      } while ((i | 0) != (n | 0));
      return;
    }
    function dt(t, n) {
      t = t | 0;
      n = n | 0;
      var a = 0,
        r = 0,
        c = 0,
        s = 0,
        u = 0,
        l = 0,
        f = 0;
      i[n >> 0] = -1;
      u = (n + 1) | 0;
      s = ((o[u >> 0] | 0) << 3) | 7;
      i[u >> 0] = s;
      c = (t + 64) | 0;
      s = (s << 1) | ((e[c >> 2] | 0) > 15999);
      i[u >> 0] = s;
      a = (t + 16) | 0;
      s = ((((s << 1) & 62) | (e[a >> 2] & 1)) << 2) | 1;
      i[u >> 0] = s;
      s = (s << 1) | ((e[(t + 160) >> 2] | 0) == 0);
      i[u >> 0] = s;
      l = (n + 2) | 0;
      r = ((o[l >> 0] | 0) << 4) | (e[(t + 84744) >> 2] & 15);
      i[l >> 0] = r;
      r = ((r << 2) & 124) | (e[(t + 20) >> 2] & 3);
      i[l >> 0] = r << 1;
      i[l >> 0] = (r << 2) | (e[(t + 172) >> 2] & 1);
      r = (n + 3) | 0;
      f = ((o[r >> 0] | 0) << 2) | (e[(t + 180) >> 2] & 3);
      i[r >> 0] = f;
      f = (f << 2) | (e[(t + 84756) >> 2] & 3);
      i[r >> 0] = f;
      f = (f << 1) | (e[(t + 164) >> 2] & 1);
      i[r >> 0] = f;
      f = (f << 1) | (e[(t + 168) >> 2] & 1);
      i[r >> 0] = f;
      i[r >> 0] = (f << 2) | (e[(t + 176) >> 2] & 3);
      i[n >> 0] = -1;
      r = e[a >> 2] | 0;
      if ((r | 0) == 1) n = 128;
      else n = (e[c >> 2] | 0) < 16e3 ? 32 : 64;
      if (!(e[(t + 104) >> 2] | 0)) n = e[(t + 120) >> 2] | 0;
      if (!(e[(t + 152) >> 2] | 0)) {
        n = ((re(n, r, e[c >> 2] | 0) | 0) << 4) & 255;
        r = e[a >> 2] | 0;
      } else n = 0;
      a = ((s << 24) >> 24) & -15;
      if ((r | 0) == 1) {
        i[u >> 0] = a | 10;
        a = ((o[l >> 0] | 0) & 13) | ((n << 24) >> 24);
        a = a & 255;
        i[l >> 0] = a;
        return;
      } else {
        i[u >> 0] = a | 2;
        a = ((o[l >> 0] | 0) & 13) | (n & 255);
        a = a & 255;
        i[l >> 0] = a;
        return;
      }
    }
    function ee(i) {
      i = i | 0;
      var r = 0,
        t = 0,
        n = 0;
      r = (i + 16) | 0;
      n = e[(i + 84744) >> 2] | 0;
      if (!n) {
        t = e[r >> 2] | 0;
        r = (i + 120) | 0;
      } else {
        r = e[r >> 2] | 0;
        t = r;
        r = (83944 + (r << 6) + (n << 2)) | 0;
      }
      return (
        (((((s((((t * 72e3) | 0) + 72e3) | 0, e[r >> 2] | 0) | 0) / (e[(i + 64) >> 2] | 0)) | 0) +
          (e[(i + 84752) >> 2] | 0)) <<
          3) |
        0
      );
    }
    function Dr(i, n) {
      i = i | 0;
      n = n | 0;
      var r = 0,
        t = 0;
      r = e[(i + 104) >> 2] | 0;
      if ((r | 0) > 320) {
        t = e[i >> 2] | 0;
        if ((n | 0) == 1) {
          r = (((s((((t * 72e3) | 0) + 72e3) | 0, r) | 0) / (e[(i + 48) >> 2] | 0)) | 0) << 3;
          return r | 0;
        } else {
          r = (((t * 7680) | 0) + 7680) | 0;
          return r | 0;
        }
      }
      r = e[i >> 2] | 0;
      if ((n | 0) == 1) {
        t = e[(i + 48) >> 2] | 0;
        r =
          (((s(
            (((r * 72e3) | 0) + 72e3) | 0,
            e[((t | 0) < 16e3 ? (83944 + (r << 6) + 32) | 0 : (83944 + (r << 6) + 56) | 0) >> 2] | 0
          ) |
            0) /
            (t | 0)) |
            0) <<
          3;
        return r | 0;
      } else if ((n | 0) == 2) {
        r = (((r * 7680) | 0) + 7680) | 0;
        return r | 0;
      } else {
        r = 11520;
        return r | 0;
      }
      return 0;
    }
    function wt(a, s) {
      a = a | 0;
      s = s | 0;
      var r = 0,
        t = 0,
        n = 0;
      n = o[(s + 2) >> 0] | 0;
      r = ((n & 128) | 0) != 0 ? 262140 : 196598;
      r = ((((r ^ (n << 10)) & 65536) | 0) == 0 ? r : r ^ 32773) << 1;
      r = ((((r ^ (n << 11)) & 65536) | 0) == 0 ? r : r ^ 32773) << 1;
      r = ((((r ^ (n << 12)) & 65536) | 0) == 0 ? r : r ^ 32773) << 1;
      r = ((((r ^ (n << 13)) & 65536) | 0) == 0 ? r : r ^ 32773) << 1;
      r = ((((r ^ (n << 14)) & 65536) | 0) == 0 ? r : r ^ 32773) << 1;
      r = ((((r ^ (n << 15)) & 65536) | 0) == 0 ? r : r ^ 32773) << 1;
      t = o[(s + 3) >> 0] | 0;
      r = ((((r ^ (n << 16)) & 65536) | 0) == 0 ? r : r ^ 32773) << 1;
      r = ((((r ^ (t << 9)) & 65536) | 0) == 0 ? r : r ^ 32773) << 1;
      r = ((((r ^ (t << 10)) & 65536) | 0) == 0 ? r : r ^ 32773) << 1;
      r = ((((r ^ (t << 11)) & 65536) | 0) == 0 ? r : r ^ 32773) << 1;
      r = ((((r ^ (t << 12)) & 65536) | 0) == 0 ? r : r ^ 32773) << 1;
      r = ((((r ^ (t << 13)) & 65536) | 0) == 0 ? r : r ^ 32773) << 1;
      r = ((((r ^ (t << 14)) & 65536) | 0) == 0 ? r : r ^ 32773) << 1;
      r = ((((r ^ (t << 15)) & 65536) | 0) == 0 ? r : r ^ 32773) << 1;
      r = (((r ^ (t << 16)) & 65536) | 0) == 0 ? r : r ^ 32773;
      t = e[(a + 24) >> 2] | 0;
      if ((t | 0) > 6) a = 6;
      else {
        a = r;
        t = a >>> 8;
        t = t & 255;
        r = (s + 4) | 0;
        i[r >> 0] = t;
        a = a & 255;
        r = (s + 5) | 0;
        i[r >> 0] = a;
        return;
      }
      do {
        n = o[(s + a) >> 0] | 0;
        r = r << 1;
        r = (((((n << 9) ^ r) & 65536) | 0) == 0 ? r : r ^ 32773) << 1;
        r = ((((r ^ (n << 10)) & 65536) | 0) == 0 ? r : r ^ 32773) << 1;
        r = ((((r ^ (n << 11)) & 65536) | 0) == 0 ? r : r ^ 32773) << 1;
        r = ((((r ^ (n << 12)) & 65536) | 0) == 0 ? r : r ^ 32773) << 1;
        r = ((((r ^ (n << 13)) & 65536) | 0) == 0 ? r : r ^ 32773) << 1;
        r = ((((r ^ (n << 14)) & 65536) | 0) == 0 ? r : r ^ 32773) << 1;
        r = ((((r ^ (n << 15)) & 65536) | 0) == 0 ? r : r ^ 32773) << 1;
        r = (((r ^ (n << 16)) & 65536) | 0) == 0 ? r : r ^ 32773;
        a = (a + 1) | 0;
      } while ((a | 0) < (t | 0));
      t = r >>> 8;
      t = t & 255;
      a = (s + 4) | 0;
      i[a >> 0] = t;
      a = r & 255;
      r = (s + 5) | 0;
      i[r >> 0] = a;
      return;
    }
    function pt(r) {
      r = r | 0;
      var i = 0,
        n = 0,
        a = 0,
        o = 0,
        f = 0;
      f = t;
      t = (t + 16) | 0;
      n = e[(r + 52132) >> 2] | 0;
      i = e[(r + 52128) >> 2] | 0;
      i = (i | 0) == 0 ? 255 : (i + -1) | 0;
      a = ((e[(r + 39840 + ((i * 48) | 0)) >> 2] | 0) - (e[(r + 292) >> 2] | 0)) | 0;
      if ((a | 0) > -1) {
        o = (i + (1 - n)) | 0;
        a = (a - (s(((i | 0) < (n | 0) ? (o + 256) | 0 : o) << 3, e[(r + 24) >> 2] | 0) | 0)) | 0;
      }
      n = (r + 16) | 0;
      o = e[(r + 84744) >> 2] | 0;
      if (!o) {
        i = e[n >> 2] | 0;
        n = (r + 120) | 0;
      } else {
        n = e[n >> 2] | 0;
        i = n;
        n = (83944 + (n << 6) + (o << 2)) | 0;
      }
      i =
        ((((((s((((i * 72e3) | 0) + 72e3) | 0, e[n >> 2] | 0) | 0) / (e[(r + 64) >> 2] | 0)) | 0) +
          (e[(r + 84752) >> 2] | 0)) <<
          3) +
          a) |
        0;
      if ((i | 0) < 0) {
        M(r, 1072, f);
        t = f;
        return;
      } else {
        Re(r, i);
        e[(r + 52140) >> 2] = 0;
        e[(r + 21312) >> 2] = 0;
        t = f;
        return;
      }
    }
    function Pe(t, r, s) {
      t = t | 0;
      r = r | 0;
      s = s | 0;
      var n = 0,
        h = 0,
        f = 0,
        l = 0,
        u = 0,
        c = 0,
        a = 0,
        d = 0;
      if (!s) return;
      h = r & 255;
      f = (t + 300) | 0;
      l = (t + 296) | 0;
      u = (t + 284) | 0;
      c = (t + 292) | 0;
      do {
        n = 8;
        do {
          r = e[f >> 2] | 0;
          if (!r) {
            e[f >> 2] = 8;
            r = ((e[l >> 2] | 0) + 1) | 0;
            e[l >> 2] = r;
            i[((e[u >> 2] | 0) + r) >> 0] = 0;
            r = e[f >> 2] | 0;
          }
          a = (n | 0) < (r | 0) ? n : r;
          n = (n - a) | 0;
          d = (r - a) | 0;
          e[f >> 2] = d;
          r = ((e[u >> 2] | 0) + (e[l >> 2] | 0)) | 0;
          i[r >> 0] = ((h >>> n) << d) | (o[r >> 0] | 0);
          e[c >> 2] = (e[c >> 2] | 0) + a;
        } while ((n | 0) > 0);
        r = 0;
        do {
          a = (t + 39840 + ((r * 48) | 0)) | 0;
          e[a >> 2] = (e[a >> 2] | 0) + 8;
          r = (r + 1) | 0;
        } while ((r | 0) != 256);
        s = (s + -1) | 0;
      } while ((s | 0) != 0);
      return;
    }
    function Et(u) {
      u = u | 0;
      var m = 0,
        r = 0,
        n = 0,
        d = 0,
        a = 0,
        k = 0,
        _ = 0,
        E = 0,
        T = 0,
        x = 0,
        v = 0,
        R = 0,
        g = 0,
        P = 0,
        D = 0,
        S = 0,
        F = 0,
        b = 0,
        H = 0,
        y = 0,
        h = 0,
        f = 0,
        V = 0,
        A = 0,
        I = 0,
        C = 0,
        p = 0,
        U = 0,
        w = 0,
        Y = 0,
        z = 0,
        j = 0,
        q = 0,
        W = 0,
        K = 0,
        N = 0,
        G = 0,
        Q = 0,
        $ = 0,
        X = 0,
        Z = 0,
        J = 0,
        B = 0,
        L = 0;
      L = t;
      t = (t + 96) | 0;
      J = (L + 88) | 0;
      Z = (L + 80) | 0;
      X = (L + 72) | 0;
      $ = (L + 64) | 0;
      B = (L + 24) | 0;
      Q = (L + 16) | 0;
      G = (L + 8) | 0;
      V = L;
      z = (u + 16) | 0;
      Y = (u + 84744) | 0;
      r = e[Y >> 2] | 0;
      if (!r) {
        m = e[z >> 2] | 0;
        r = (u + 120) | 0;
      } else {
        f = e[z >> 2] | 0;
        m = f;
        r = (83944 + (f << 6) + (r << 2)) | 0;
      }
      q = (u + 84752) | 0;
      j = (u + 64) | 0;
      W =
        ((((s((((m * 72e3) | 0) + 72e3) | 0, e[r >> 2] | 0) | 0) / (e[j >> 2] | 0)) | 0) +
          (e[q >> 2] | 0)) <<
        3;
      K = (u + 21320) | 0;
      Re(u, e[K >> 2] | 0);
      w = (u + 52128) | 0;
      r = e[w >> 2] | 0;
      e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = 0;
      N = (u + 24) | 0;
      c((u + 39840 + ((r * 48) | 0) + 8) | 0, 0, e[N >> 2] | 0) | 0;
      r = e[w >> 2] | 0;
      n = e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] | 0;
      if ((e[j >> 2] | 0) < 16e3) {
        m = 12;
        do {
          h = (8 - (n & 7)) | 0;
          f = (m | 0) < (h | 0) ? m : h;
          m = (m - f) | 0;
          r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
          i[r >> 0] = ((4094 >>> m) << (h - f)) | (o[r >> 0] | 0);
          n = (f + n) | 0;
          r = e[w >> 2] | 0;
        } while ((m | 0) > 0);
        e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
      } else {
        m = 12;
        do {
          h = (8 - (n & 7)) | 0;
          f = (m | 0) < (h | 0) ? m : h;
          m = (m - f) | 0;
          r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
          i[r >> 0] = ((4095 >>> m) << (h - f)) | (o[r >> 0] | 0);
          n = (f + n) | 0;
          r = e[w >> 2] | 0;
        } while ((m | 0) > 0);
        e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
      }
      A = (u + 16) | 0;
      d = e[A >> 2] | 0;
      m = 1;
      do {
        h = (8 - (n & 7)) | 0;
        f = (m | 0) < (h | 0) ? m : h;
        m = (m - f) | 0;
        r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
        i[r >> 0] = ((d >> m) << (h - f)) | (o[r >> 0] | 0);
        n = (f + n) | 0;
        r = e[w >> 2] | 0;
      } while ((m | 0) > 0);
      e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
      m = 2;
      do {
        h = (8 - (n & 7)) | 0;
        f = (m | 0) < (h | 0) ? m : h;
        m = (m - f) | 0;
        r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
        i[r >> 0] = ((1 >>> m) << (h - f)) | (o[r >> 0] | 0);
        n = (f + n) | 0;
        r = e[w >> 2] | 0;
      } while ((m | 0) > 0);
      e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
      I = (u + 160) | 0;
      m = ((e[I >> 2] | 0) == 0) & 1;
      d = 1;
      do {
        h = (8 - (n & 7)) | 0;
        f = (d | 0) < (h | 0) ? d : h;
        d = (d - f) | 0;
        r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
        i[r >> 0] = ((m >>> d) << (h - f)) | (o[r >> 0] | 0);
        n = (f + n) | 0;
        r = e[w >> 2] | 0;
      } while ((d | 0) > 0);
      e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
      m = e[Y >> 2] | 0;
      d = 4;
      do {
        h = (8 - (n & 7)) | 0;
        f = (d | 0) < (h | 0) ? d : h;
        d = (d - f) | 0;
        r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
        i[r >> 0] = ((m >> d) << (h - f)) | (o[r >> 0] | 0);
        n = (f + n) | 0;
        r = e[w >> 2] | 0;
      } while ((d | 0) > 0);
      e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
      m = e[(u + 20) >> 2] | 0;
      d = 2;
      do {
        h = (8 - (n & 7)) | 0;
        f = (d | 0) < (h | 0) ? d : h;
        d = (d - f) | 0;
        r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
        i[r >> 0] = ((m >> d) << (h - f)) | (o[r >> 0] | 0);
        n = (f + n) | 0;
        r = e[w >> 2] | 0;
      } while ((d | 0) > 0);
      e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
      m = e[q >> 2] | 0;
      d = 1;
      do {
        h = (8 - (n & 7)) | 0;
        f = (d | 0) < (h | 0) ? d : h;
        d = (d - f) | 0;
        r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
        i[r >> 0] = ((m >> d) << (h - f)) | (o[r >> 0] | 0);
        n = (f + n) | 0;
        r = e[w >> 2] | 0;
      } while ((d | 0) > 0);
      e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
      m = e[(u + 172) >> 2] | 0;
      d = 1;
      do {
        h = (8 - (n & 7)) | 0;
        f = (d | 0) < (h | 0) ? d : h;
        d = (d - f) | 0;
        r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
        i[r >> 0] = ((m >> d) << (h - f)) | (o[r >> 0] | 0);
        n = (f + n) | 0;
        r = e[w >> 2] | 0;
      } while ((d | 0) > 0);
      e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
      m = e[(u + 180) >> 2] | 0;
      d = 2;
      do {
        h = (8 - (n & 7)) | 0;
        f = (d | 0) < (h | 0) ? d : h;
        d = (d - f) | 0;
        r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
        i[r >> 0] = ((m >> d) << (h - f)) | (o[r >> 0] | 0);
        n = (f + n) | 0;
        r = e[w >> 2] | 0;
      } while ((d | 0) > 0);
      e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
      m = e[(u + 84756) >> 2] | 0;
      d = 2;
      do {
        h = (8 - (n & 7)) | 0;
        f = (d | 0) < (h | 0) ? d : h;
        d = (d - f) | 0;
        r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
        i[r >> 0] = ((m >> d) << (h - f)) | (o[r >> 0] | 0);
        n = (f + n) | 0;
        r = e[w >> 2] | 0;
      } while ((d | 0) > 0);
      e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
      m = e[(u + 164) >> 2] | 0;
      d = 1;
      do {
        h = (8 - (n & 7)) | 0;
        f = (d | 0) < (h | 0) ? d : h;
        d = (d - f) | 0;
        r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
        i[r >> 0] = ((m >> d) << (h - f)) | (o[r >> 0] | 0);
        n = (f + n) | 0;
        r = e[w >> 2] | 0;
      } while ((d | 0) > 0);
      e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
      m = e[(u + 168) >> 2] | 0;
      d = 1;
      do {
        h = (8 - (n & 7)) | 0;
        f = (d | 0) < (h | 0) ? d : h;
        d = (d - f) | 0;
        r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
        i[r >> 0] = ((m >> d) << (h - f)) | (o[r >> 0] | 0);
        n = (f + n) | 0;
        r = e[w >> 2] | 0;
      } while ((d | 0) > 0);
      e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
      m = e[(u + 176) >> 2] | 0;
      d = 2;
      do {
        h = (8 - (n & 7)) | 0;
        f = (d | 0) < (h | 0) ? d : h;
        d = (d - f) | 0;
        r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
        i[r >> 0] = ((m >> d) << (h - f)) | (o[r >> 0] | 0);
        n = (f + n) | 0;
        r = e[w >> 2] | 0;
      } while ((d | 0) > 0);
      d = (u + 39840 + ((r * 48) | 0) + 4) | 0;
      e[d >> 2] = n;
      if (e[I >> 2] | 0) {
        m = 16;
        do {
          f = (8 - (n & 7)) | 0;
          f = (m | 0) < (f | 0) ? m : f;
          m = (m - f) | 0;
          n = (f + n) | 0;
        } while ((m | 0) > 0);
        e[d >> 2] = n;
      }
      U = (u + 21312) | 0;
      a = e[U >> 2] | 0;
      do
        if ((e[A >> 2] | 0) != 1) {
          d = 8;
          do {
            h = (8 - (n & 7)) | 0;
            f = (d | 0) < (h | 0) ? d : h;
            d = (d - f) | 0;
            r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
            i[r >> 0] = ((a >> d) << (h - f)) | (o[r >> 0] | 0);
            n = (f + n) | 0;
            r = e[w >> 2] | 0;
          } while ((d | 0) > 0);
          d = (u + 39840 + ((r * 48) | 0) + 4) | 0;
          e[d >> 2] = n;
          a = e[(u + 21316) >> 2] | 0;
          C = (u + 72) | 0;
          m = e[C >> 2] | 0;
          if ((m | 0) <= 0) {
            e[d >> 2] = n;
            break;
          }
          do {
            h = (8 - (n & 7)) | 0;
            f = (m | 0) < (h | 0) ? m : h;
            m = (m - f) | 0;
            r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
            i[r >> 0] = ((a >> m) << (h - f)) | (o[r >> 0] | 0);
            n = (f + n) | 0;
            r = e[w >> 2] | 0;
          } while ((m | 0) > 0);
          f = e[C >> 2] | 0;
          e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
          if ((f | 0) > 0) {
            p = 0;
            while (1) {
              d =
                ((e[(u + 304 + ((p * 5252) | 0) + 4844) >> 2] | 0) +
                  (e[(u + 304 + ((p * 5252) | 0) + 4768) >> 2] | 0)) |
                0;
              a = 12;
              do {
                h = (8 - (n & 7)) | 0;
                f = (a | 0) < (h | 0) ? a : h;
                a = (a - f) | 0;
                r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                n = (f + n) | 0;
                r = e[w >> 2] | 0;
              } while ((a | 0) > 0);
              e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
              d = ((e[(u + 304 + ((p * 5252) | 0) + 4772) >> 2] | 0) / 2) | 0;
              a = 9;
              do {
                h = (8 - (n & 7)) | 0;
                f = (a | 0) < (h | 0) ? a : h;
                a = (a - f) | 0;
                r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                n = (f + n) | 0;
                r = e[w >> 2] | 0;
              } while ((a | 0) > 0);
              e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
              d = e[(u + 304 + ((p * 5252) | 0) + 4780) >> 2] | 0;
              a = 8;
              do {
                h = (8 - (n & 7)) | 0;
                f = (a | 0) < (h | 0) ? a : h;
                a = (a - f) | 0;
                r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                n = (f + n) | 0;
                r = e[w >> 2] | 0;
              } while ((a | 0) > 0);
              e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
              d = e[(u + 304 + ((p * 5252) | 0) + 4784) >> 2] | 0;
              a = 9;
              do {
                h = (8 - (n & 7)) | 0;
                f = (a | 0) < (h | 0) ? a : h;
                a = (a - f) | 0;
                r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                n = (f + n) | 0;
                r = e[w >> 2] | 0;
              } while ((a | 0) > 0);
              a = (u + 39840 + ((r * 48) | 0) + 4) | 0;
              e[a >> 2] = n;
              d = (u + 304 + ((p * 5252) | 0) + 4788) | 0;
              if (!(e[d >> 2] | 0)) {
                d = 1;
                do {
                  f = (8 - (n & 7)) | 0;
                  f = (d | 0) < (f | 0) ? d : f;
                  d = (d - f) | 0;
                  n = (f + n) | 0;
                } while ((d | 0) > 0);
                e[a >> 2] = n;
                m = (u + 304 + ((p * 5252) | 0) + 4796) | 0;
                d = e[m >> 2] | 0;
                if ((d | 0) == 14) {
                  e[m >> 2] = 16;
                  r = e[w >> 2] | 0;
                  d = 16;
                  n = e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] | 0;
                }
                a = 5;
                do {
                  h = (8 - (n & 7)) | 0;
                  f = (a | 0) < (h | 0) ? a : h;
                  a = (a - f) | 0;
                  r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                  i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                  n = (f + n) | 0;
                  r = e[w >> 2] | 0;
                } while ((a | 0) > 0);
                e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                d = (u + 304 + ((p * 5252) | 0) + 4800) | 0;
                m = e[d >> 2] | 0;
                if ((m | 0) == 14) {
                  e[d >> 2] = 16;
                  r = e[w >> 2] | 0;
                  m = 16;
                  n = e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] | 0;
                }
                a = 5;
                do {
                  h = (8 - (n & 7)) | 0;
                  f = (a | 0) < (h | 0) ? a : h;
                  a = (a - f) | 0;
                  r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                  i[r >> 0] = ((m >> a) << (h - f)) | (o[r >> 0] | 0);
                  n = (f + n) | 0;
                  r = e[w >> 2] | 0;
                } while ((a | 0) > 0);
                e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                d = (u + 304 + ((p * 5252) | 0) + 4804) | 0;
                m = e[d >> 2] | 0;
                if ((m | 0) == 14) {
                  e[d >> 2] = 16;
                  r = e[w >> 2] | 0;
                  m = 16;
                  n = e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] | 0;
                }
                a = 5;
                do {
                  h = (8 - (n & 7)) | 0;
                  f = (a | 0) < (h | 0) ? a : h;
                  a = (a - f) | 0;
                  r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                  i[r >> 0] = ((m >> a) << (h - f)) | (o[r >> 0] | 0);
                  n = (f + n) | 0;
                  r = e[w >> 2] | 0;
                } while ((a | 0) > 0);
                e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                d = e[(u + 304 + ((p * 5252) | 0) + 4824) >> 2] | 0;
                a = 4;
                do {
                  h = (8 - (n & 7)) | 0;
                  f = (a | 0) < (h | 0) ? a : h;
                  a = (a - f) | 0;
                  r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                  i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                  n = (f + n) | 0;
                  r = e[w >> 2] | 0;
                } while ((a | 0) > 0);
                e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                d = e[(u + 304 + ((p * 5252) | 0) + 4828) >> 2] | 0;
                a = 3;
                do {
                  h = (8 - (n & 7)) | 0;
                  f = (a | 0) < (h | 0) ? a : h;
                  a = (a - f) | 0;
                  r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                  i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                  n = (f + n) | 0;
                  r = e[w >> 2] | 0;
                } while ((a | 0) > 0);
                e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
              } else {
                a = 1;
                do {
                  h = (8 - (n & 7)) | 0;
                  f = (a | 0) < (h | 0) ? a : h;
                  a = (a - f) | 0;
                  r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                  i[r >> 0] = ((1 >>> a) << (h - f)) | (o[r >> 0] | 0);
                  n = (f + n) | 0;
                  r = e[w >> 2] | 0;
                } while ((a | 0) > 0);
                e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                d = e[d >> 2] | 0;
                a = 2;
                do {
                  h = (8 - (n & 7)) | 0;
                  f = (a | 0) < (h | 0) ? a : h;
                  a = (a - f) | 0;
                  r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                  i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                  n = (f + n) | 0;
                  r = e[w >> 2] | 0;
                } while ((a | 0) > 0);
                e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                d = e[(u + 304 + ((p * 5252) | 0) + 4792) >> 2] | 0;
                a = 1;
                do {
                  h = (8 - (n & 7)) | 0;
                  f = (a | 0) < (h | 0) ? a : h;
                  a = (a - f) | 0;
                  r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                  i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                  n = (f + n) | 0;
                  r = e[w >> 2] | 0;
                } while ((a | 0) > 0);
                e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                d = (u + 304 + ((p * 5252) | 0) + 4796) | 0;
                m = e[d >> 2] | 0;
                if ((m | 0) == 14) {
                  e[d >> 2] = 16;
                  r = e[w >> 2] | 0;
                  n = e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] | 0;
                  m = 16;
                }
                a = 5;
                do {
                  h = (8 - (n & 7)) | 0;
                  f = (a | 0) < (h | 0) ? a : h;
                  a = (a - f) | 0;
                  r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                  i[r >> 0] = ((m >> a) << (h - f)) | (o[r >> 0] | 0);
                  n = (f + n) | 0;
                  r = e[w >> 2] | 0;
                } while ((a | 0) > 0);
                e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                d = (u + 304 + ((p * 5252) | 0) + 4800) | 0;
                m = e[d >> 2] | 0;
                if ((m | 0) == 14) {
                  e[d >> 2] = 16;
                  r = e[w >> 2] | 0;
                  n = e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] | 0;
                  m = 16;
                }
                a = 5;
                do {
                  h = (8 - (n & 7)) | 0;
                  f = (a | 0) < (h | 0) ? a : h;
                  a = (a - f) | 0;
                  r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                  i[r >> 0] = ((m >> a) << (h - f)) | (o[r >> 0] | 0);
                  n = (f + n) | 0;
                  r = e[w >> 2] | 0;
                } while ((a | 0) > 0);
                e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                d = e[(u + 304 + ((p * 5252) | 0) + 4808) >> 2] | 0;
                a = 3;
                do {
                  h = (8 - (n & 7)) | 0;
                  f = (a | 0) < (h | 0) ? a : h;
                  a = (a - f) | 0;
                  r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                  i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                  n = (f + n) | 0;
                  r = e[w >> 2] | 0;
                } while ((a | 0) > 0);
                e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                d = e[(u + 304 + ((p * 5252) | 0) + 4812) >> 2] | 0;
                a = 3;
                do {
                  h = (8 - (n & 7)) | 0;
                  f = (a | 0) < (h | 0) ? a : h;
                  a = (a - f) | 0;
                  r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                  i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                  n = (f + n) | 0;
                  r = e[w >> 2] | 0;
                } while ((a | 0) > 0);
                e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                d = e[(u + 304 + ((p * 5252) | 0) + 4816) >> 2] | 0;
                a = 3;
                do {
                  h = (8 - (n & 7)) | 0;
                  f = (a | 0) < (h | 0) ? a : h;
                  a = (a - f) | 0;
                  r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                  i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                  n = (f + n) | 0;
                  r = e[w >> 2] | 0;
                } while ((a | 0) > 0);
                e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
              }
              d = e[(u + 304 + ((p * 5252) | 0) + 4836) >> 2] | 0;
              a = 1;
              do {
                h = (8 - (n & 7)) | 0;
                f = (a | 0) < (h | 0) ? a : h;
                a = (a - f) | 0;
                r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                n = (f + n) | 0;
                r = e[w >> 2] | 0;
              } while ((a | 0) > 0);
              e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
              d = e[(u + 304 + ((p * 5252) | 0) + 4840) >> 2] | 0;
              a = 1;
              do {
                h = (8 - (n & 7)) | 0;
                f = (a | 0) < (h | 0) ? a : h;
                a = (a - f) | 0;
                r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                n = (f + n) | 0;
                r = e[w >> 2] | 0;
              } while ((a | 0) > 0);
              e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
              d = (p + 1) | 0;
              if ((d | 0) < (e[C >> 2] | 0)) p = d;
              else break;
            }
          }
        } else {
          d = 9;
          do {
            h = (8 - (n & 7)) | 0;
            f = (d | 0) < (h | 0) ? d : h;
            d = (d - f) | 0;
            r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
            i[r >> 0] = ((a >> d) << (h - f)) | (o[r >> 0] | 0);
            n = (f + n) | 0;
            r = e[w >> 2] | 0;
          } while ((d | 0) > 0);
          e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
          C = (u + 72) | 0;
          a = e[(u + 21316) >> 2] | 0;
          if ((e[C >> 2] | 0) == 2) {
            d = 3;
            do {
              h = (8 - (n & 7)) | 0;
              f = (d | 0) < (h | 0) ? d : h;
              d = (d - f) | 0;
              r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
              i[r >> 0] = ((a >> d) << (h - f)) | (o[r >> 0] | 0);
              n = (f + n) | 0;
              r = e[w >> 2] | 0;
            } while ((d | 0) > 0);
            e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
          } else {
            d = 5;
            do {
              h = (8 - (n & 7)) | 0;
              f = (d | 0) < (h | 0) ? d : h;
              d = (d - f) | 0;
              r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
              i[r >> 0] = ((a >> d) << (h - f)) | (o[r >> 0] | 0);
              n = (f + n) | 0;
              r = e[w >> 2] | 0;
            } while ((d | 0) > 0);
            e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
          }
          m = e[C >> 2] | 0;
          if ((m | 0) > 0) {
            d = 0;
            do {
              m = e[(u + 21328 + (d << 4)) >> 2] | 0;
              a = 1;
              do {
                h = (8 - (n & 7)) | 0;
                f = (a | 0) < (h | 0) ? a : h;
                a = (a - f) | 0;
                r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                i[r >> 0] = ((m >> a) << (h - f)) | (o[r >> 0] | 0);
                n = (f + n) | 0;
                r = e[w >> 2] | 0;
              } while ((a | 0) > 0);
              e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
              m = e[(u + 21328 + (d << 4) + 4) >> 2] | 0;
              a = 1;
              do {
                h = (8 - (n & 7)) | 0;
                f = (a | 0) < (h | 0) ? a : h;
                a = (a - f) | 0;
                r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                i[r >> 0] = ((m >> a) << (h - f)) | (o[r >> 0] | 0);
                n = (f + n) | 0;
                r = e[w >> 2] | 0;
              } while ((a | 0) > 0);
              e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
              m = e[(u + 21328 + (d << 4) + 8) >> 2] | 0;
              a = 1;
              do {
                h = (8 - (n & 7)) | 0;
                f = (a | 0) < (h | 0) ? a : h;
                a = (a - f) | 0;
                r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                i[r >> 0] = ((m >> a) << (h - f)) | (o[r >> 0] | 0);
                n = (f + n) | 0;
                r = e[w >> 2] | 0;
              } while ((a | 0) > 0);
              e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
              m = e[(u + 21328 + (d << 4) + 12) >> 2] | 0;
              a = 1;
              do {
                h = (8 - (n & 7)) | 0;
                f = (a | 0) < (h | 0) ? a : h;
                a = (a - f) | 0;
                r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                i[r >> 0] = ((m >> a) << (h - f)) | (o[r >> 0] | 0);
                n = (f + n) | 0;
                r = e[w >> 2] | 0;
              } while ((a | 0) > 0);
              e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
              d = (d + 1) | 0;
              m = e[C >> 2] | 0;
            } while ((d | 0) < (m | 0));
            n = m;
            p = 0;
          } else {
            n = m;
            p = 0;
          }
          do {
            if ((n | 0) > 0) {
              n = e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] | 0;
              m = 0;
              while (1) {
                d =
                  ((e[(u + 304 + ((p * 10504) | 0) + ((m * 5252) | 0) + 4844) >> 2] | 0) +
                    (e[(u + 304 + ((p * 10504) | 0) + ((m * 5252) | 0) + 4768) >> 2] | 0)) |
                  0;
                a = 12;
                do {
                  h = (8 - (n & 7)) | 0;
                  f = (a | 0) < (h | 0) ? a : h;
                  a = (a - f) | 0;
                  r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                  i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                  n = (f + n) | 0;
                  r = e[w >> 2] | 0;
                } while ((a | 0) > 0);
                e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                d = ((e[(u + 304 + ((p * 10504) | 0) + ((m * 5252) | 0) + 4772) >> 2] | 0) / 2) | 0;
                a = 9;
                do {
                  h = (8 - (n & 7)) | 0;
                  f = (a | 0) < (h | 0) ? a : h;
                  a = (a - f) | 0;
                  r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                  i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                  n = (f + n) | 0;
                  r = e[w >> 2] | 0;
                } while ((a | 0) > 0);
                e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                d = e[(u + 304 + ((p * 10504) | 0) + ((m * 5252) | 0) + 4780) >> 2] | 0;
                a = 8;
                do {
                  h = (8 - (n & 7)) | 0;
                  f = (a | 0) < (h | 0) ? a : h;
                  a = (a - f) | 0;
                  r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                  i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                  n = (f + n) | 0;
                  r = e[w >> 2] | 0;
                } while ((a | 0) > 0);
                e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                d = e[(u + 304 + ((p * 10504) | 0) + ((m * 5252) | 0) + 4784) >> 2] | 0;
                a = 4;
                do {
                  h = (8 - (n & 7)) | 0;
                  f = (a | 0) < (h | 0) ? a : h;
                  a = (a - f) | 0;
                  r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                  i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                  n = (f + n) | 0;
                  r = e[w >> 2] | 0;
                } while ((a | 0) > 0);
                a = (u + 39840 + ((r * 48) | 0) + 4) | 0;
                e[a >> 2] = n;
                d = (u + 304 + ((p * 10504) | 0) + ((m * 5252) | 0) + 4788) | 0;
                if (!(e[d >> 2] | 0)) {
                  d = 1;
                  do {
                    f = (8 - (n & 7)) | 0;
                    f = (d | 0) < (f | 0) ? d : f;
                    d = (d - f) | 0;
                    n = (f + n) | 0;
                  } while ((d | 0) > 0);
                  e[a >> 2] = n;
                  d = (u + 304 + ((p * 10504) | 0) + ((m * 5252) | 0) + 4796) | 0;
                  a = e[d >> 2] | 0;
                  if ((a | 0) == 14) {
                    e[d >> 2] = 16;
                    r = e[w >> 2] | 0;
                    n = e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] | 0;
                    a = 16;
                  }
                  d = 5;
                  do {
                    h = (8 - (n & 7)) | 0;
                    f = (d | 0) < (h | 0) ? d : h;
                    d = (d - f) | 0;
                    r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                    i[r >> 0] = ((a >> d) << (h - f)) | (o[r >> 0] | 0);
                    n = (f + n) | 0;
                    r = e[w >> 2] | 0;
                  } while ((d | 0) > 0);
                  e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                  d = (u + 304 + ((p * 10504) | 0) + ((m * 5252) | 0) + 4800) | 0;
                  a = e[d >> 2] | 0;
                  if ((a | 0) == 14) {
                    e[d >> 2] = 16;
                    r = e[w >> 2] | 0;
                    n = e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] | 0;
                    a = 16;
                  }
                  d = 5;
                  do {
                    h = (8 - (n & 7)) | 0;
                    f = (d | 0) < (h | 0) ? d : h;
                    d = (d - f) | 0;
                    r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                    i[r >> 0] = ((a >> d) << (h - f)) | (o[r >> 0] | 0);
                    n = (f + n) | 0;
                    r = e[w >> 2] | 0;
                  } while ((d | 0) > 0);
                  e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                  d = (u + 304 + ((p * 10504) | 0) + ((m * 5252) | 0) + 4804) | 0;
                  a = e[d >> 2] | 0;
                  if ((a | 0) == 14) {
                    e[d >> 2] = 16;
                    r = e[w >> 2] | 0;
                    n = e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] | 0;
                    a = 16;
                  }
                  d = 5;
                  do {
                    h = (8 - (n & 7)) | 0;
                    f = (d | 0) < (h | 0) ? d : h;
                    d = (d - f) | 0;
                    r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                    i[r >> 0] = ((a >> d) << (h - f)) | (o[r >> 0] | 0);
                    n = (f + n) | 0;
                    r = e[w >> 2] | 0;
                  } while ((d | 0) > 0);
                  e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                  d = e[(u + 304 + ((p * 10504) | 0) + ((m * 5252) | 0) + 4824) >> 2] | 0;
                  a = 4;
                  do {
                    h = (8 - (n & 7)) | 0;
                    f = (a | 0) < (h | 0) ? a : h;
                    a = (a - f) | 0;
                    r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                    i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                    n = (f + n) | 0;
                    r = e[w >> 2] | 0;
                  } while ((a | 0) > 0);
                  e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                  d = e[(u + 304 + ((p * 10504) | 0) + ((m * 5252) | 0) + 4828) >> 2] | 0;
                  a = 3;
                  do {
                    h = (8 - (n & 7)) | 0;
                    f = (a | 0) < (h | 0) ? a : h;
                    a = (a - f) | 0;
                    r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                    i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                    n = (f + n) | 0;
                    r = e[w >> 2] | 0;
                  } while ((a | 0) > 0);
                  e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                } else {
                  a = 1;
                  do {
                    h = (8 - (n & 7)) | 0;
                    f = (a | 0) < (h | 0) ? a : h;
                    a = (a - f) | 0;
                    r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                    i[r >> 0] = ((1 >>> a) << (h - f)) | (o[r >> 0] | 0);
                    n = (f + n) | 0;
                    r = e[w >> 2] | 0;
                  } while ((a | 0) > 0);
                  e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                  d = e[d >> 2] | 0;
                  a = 2;
                  do {
                    h = (8 - (n & 7)) | 0;
                    f = (a | 0) < (h | 0) ? a : h;
                    a = (a - f) | 0;
                    r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                    i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                    n = (f + n) | 0;
                    r = e[w >> 2] | 0;
                  } while ((a | 0) > 0);
                  e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                  d = e[(u + 304 + ((p * 10504) | 0) + ((m * 5252) | 0) + 4792) >> 2] | 0;
                  a = 1;
                  do {
                    h = (8 - (n & 7)) | 0;
                    f = (a | 0) < (h | 0) ? a : h;
                    a = (a - f) | 0;
                    r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                    i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                    n = (f + n) | 0;
                    r = e[w >> 2] | 0;
                  } while ((a | 0) > 0);
                  e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                  d = (u + 304 + ((p * 10504) | 0) + ((m * 5252) | 0) + 4796) | 0;
                  a = e[d >> 2] | 0;
                  if ((a | 0) == 14) {
                    e[d >> 2] = 16;
                    r = e[w >> 2] | 0;
                    n = e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] | 0;
                    a = 16;
                  }
                  d = 5;
                  do {
                    h = (8 - (n & 7)) | 0;
                    f = (d | 0) < (h | 0) ? d : h;
                    d = (d - f) | 0;
                    r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                    i[r >> 0] = ((a >> d) << (h - f)) | (o[r >> 0] | 0);
                    n = (f + n) | 0;
                    r = e[w >> 2] | 0;
                  } while ((d | 0) > 0);
                  e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                  d = (u + 304 + ((p * 10504) | 0) + ((m * 5252) | 0) + 4800) | 0;
                  a = e[d >> 2] | 0;
                  if ((a | 0) == 14) {
                    e[d >> 2] = 16;
                    r = e[w >> 2] | 0;
                    n = e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] | 0;
                    a = 16;
                  }
                  d = 5;
                  do {
                    h = (8 - (n & 7)) | 0;
                    f = (d | 0) < (h | 0) ? d : h;
                    d = (d - f) | 0;
                    r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                    i[r >> 0] = ((a >> d) << (h - f)) | (o[r >> 0] | 0);
                    n = (f + n) | 0;
                    r = e[w >> 2] | 0;
                  } while ((d | 0) > 0);
                  e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                  d = e[(u + 304 + ((p * 10504) | 0) + ((m * 5252) | 0) + 4808) >> 2] | 0;
                  a = 3;
                  do {
                    h = (8 - (n & 7)) | 0;
                    f = (a | 0) < (h | 0) ? a : h;
                    a = (a - f) | 0;
                    r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                    i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                    n = (f + n) | 0;
                    r = e[w >> 2] | 0;
                  } while ((a | 0) > 0);
                  e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                  d = e[(u + 304 + ((p * 10504) | 0) + ((m * 5252) | 0) + 4812) >> 2] | 0;
                  a = 3;
                  do {
                    h = (8 - (n & 7)) | 0;
                    f = (a | 0) < (h | 0) ? a : h;
                    a = (a - f) | 0;
                    r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                    i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                    n = (f + n) | 0;
                    r = e[w >> 2] | 0;
                  } while ((a | 0) > 0);
                  e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                  d = e[(u + 304 + ((p * 10504) | 0) + ((m * 5252) | 0) + 4816) >> 2] | 0;
                  a = 3;
                  do {
                    h = (8 - (n & 7)) | 0;
                    f = (a | 0) < (h | 0) ? a : h;
                    a = (a - f) | 0;
                    r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                    i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                    n = (f + n) | 0;
                    r = e[w >> 2] | 0;
                  } while ((a | 0) > 0);
                  e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                }
                d = e[(u + 304 + ((p * 10504) | 0) + ((m * 5252) | 0) + 4832) >> 2] | 0;
                a = 1;
                do {
                  h = (8 - (n & 7)) | 0;
                  f = (a | 0) < (h | 0) ? a : h;
                  a = (a - f) | 0;
                  r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                  i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                  n = (f + n) | 0;
                  r = e[w >> 2] | 0;
                } while ((a | 0) > 0);
                e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                d = e[(u + 304 + ((p * 10504) | 0) + ((m * 5252) | 0) + 4836) >> 2] | 0;
                a = 1;
                do {
                  h = (8 - (n & 7)) | 0;
                  f = (a | 0) < (h | 0) ? a : h;
                  a = (a - f) | 0;
                  r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                  i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                  n = (f + n) | 0;
                  r = e[w >> 2] | 0;
                } while ((a | 0) > 0);
                e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = n;
                d = e[(u + 304 + ((p * 10504) | 0) + ((m * 5252) | 0) + 4840) >> 2] | 0;
                a = 1;
                do {
                  h = (8 - (n & 7)) | 0;
                  f = (a | 0) < (h | 0) ? a : h;
                  a = (a - f) | 0;
                  r = ((n >> 3) + (u + 39840 + ((r * 48) | 0) + 8)) | 0;
                  i[r >> 0] = ((d >> a) << (h - f)) | (o[r >> 0] | 0);
                  n = (f + n) | 0;
                  r = e[w >> 2] | 0;
                } while ((a | 0) > 0);
                d = n;
                e[(u + 39840 + ((r * 48) | 0) + 4) >> 2] = d;
                m = (m + 1) | 0;
                n = e[C >> 2] | 0;
                if ((m | 0) < (n | 0)) n = d;
                else break;
              }
            }
            p = (p + 1) | 0;
          } while ((p | 0) != 2);
        }
      while (0);
      if (e[I >> 2] | 0) {
        wt(u, (u + 39840 + ((r * 48) | 0) + 8) | 0);
        r = e[w >> 2] | 0;
      }
      p = (r + 1) & 255;
      e[w >> 2] = p;
      e[(u + 39840 + ((p * 48) | 0)) >> 2] = (e[(u + 39840 + ((r * 48) | 0)) >> 2] | 0) + W;
      p = (u + 52132) | 0;
      if ((e[w >> 2] | 0) == (e[p >> 2] | 0)) M(u, 1112, V);
      C = e[N >> 2] << 3;
      I = (u + 72) | 0;
      do
        if ((e[A >> 2] | 0) == 1) {
          P = (u + 300) | 0;
          v = (u + 296) | 0;
          k = (u + 292) | 0;
          T = (u + 284) | 0;
          x = (u + 21464) | 0;
          d = e[I >> 2] | 0;
          b = 0;
          n = 0;
          do {
            if ((d | 0) > 0) {
              S = 0;
              do {
                F = (u + 304 + ((b * 10504) | 0) + ((S * 5252) | 0)) | 0;
                D = e[(u + 304 + ((b * 10504) | 0) + ((S * 5252) | 0) + 4784) >> 2] | 0;
                R = e[(88648 + (D << 2)) >> 2] | 0;
                D = e[(88712 + (D << 2)) >> 2] | 0;
                g = (u + 304 + ((b * 10504) | 0) + ((S * 5252) | 0) + 4868) | 0;
                r = e[g >> 2] | 0;
                e: do
                  if ((r | 0) > 0) {
                    if ((R | 0) > 0) {
                      a = r;
                      d = 0;
                      r = 0;
                    } else {
                      d = 0;
                      a = 0;
                      while (1) {
                        d =
                          (((e[
                            (u + 304 + ((b * 10504) | 0) + ((S * 5252) | 0) + 4608 + (a << 2)) >> 2
                          ] |
                            0) ==
                          -1
                            ? 0
                            : R) +
                            d) |
                          0;
                        a = (a + 1) | 0;
                        if ((a | 0) == (r | 0)) break e;
                      }
                    }
                    do {
                      E =
                        e[(u + 304 + ((b * 10504) | 0) + ((S * 5252) | 0) + 4608 + (r << 2)) >> 2] |
                        0;
                      if ((E | 0) != -1) {
                        _ = R;
                        do {
                          a = e[P >> 2] | 0;
                          if (!a) {
                            e[P >> 2] = 8;
                            a = ((e[v >> 2] | 0) + 1) | 0;
                            e[v >> 2] = a;
                            m = e[p >> 2] | 0;
                            if ((e[(u + 39840 + ((m * 48) | 0)) >> 2] | 0) == (e[k >> 2] | 0)) {
                              l(
                                ((e[T >> 2] | 0) + a) | 0,
                                (u + 39840 + ((m * 48) | 0) + 8) | 0,
                                e[N >> 2] | 0
                              ) | 0;
                              f = e[N >> 2] | 0;
                              a = ((e[v >> 2] | 0) + f) | 0;
                              e[v >> 2] = a;
                              e[k >> 2] = (e[k >> 2] | 0) + (f << 3);
                              e[p >> 2] = ((e[p >> 2] | 0) + 1) & 255;
                            }
                            i[((e[T >> 2] | 0) + a) >> 0] = 0;
                            a = e[P >> 2] | 0;
                          }
                          f = (_ | 0) < (a | 0) ? _ : a;
                          _ = (_ - f) | 0;
                          y = (a - f) | 0;
                          e[P >> 2] = y;
                          h = ((e[T >> 2] | 0) + (e[v >> 2] | 0)) | 0;
                          i[h >> 0] = ((E >> _) << y) | (o[h >> 0] | 0);
                          e[k >> 2] = (e[k >> 2] | 0) + f;
                        } while ((_ | 0) > 0);
                        a = e[g >> 2] | 0;
                        d = (d + R) | 0;
                      }
                      r = (r + 1) | 0;
                    } while ((r | 0) < (a | 0));
                  } else {
                    d = 0;
                    r = 0;
                  }
                while (0);
                g = (u + 304 + ((b * 10504) | 0) + ((S * 5252) | 0) + 4860) | 0;
                a = e[g >> 2] | 0;
                if ((r | 0) < (a | 0)) {
                  R = (D | 0) > 0;
                  do {
                    E =
                      e[(u + 304 + ((b * 10504) | 0) + ((S * 5252) | 0) + 4608 + (r << 2)) >> 2] |
                      0;
                    if ((E | 0) != -1) {
                      if (R) {
                        _ = D;
                        do {
                          a = e[P >> 2] | 0;
                          if (!a) {
                            e[P >> 2] = 8;
                            a = ((e[v >> 2] | 0) + 1) | 0;
                            e[v >> 2] = a;
                            m = e[p >> 2] | 0;
                            if ((e[(u + 39840 + ((m * 48) | 0)) >> 2] | 0) == (e[k >> 2] | 0)) {
                              l(
                                ((e[T >> 2] | 0) + a) | 0,
                                (u + 39840 + ((m * 48) | 0) + 8) | 0,
                                e[N >> 2] | 0
                              ) | 0;
                              f = e[N >> 2] | 0;
                              a = ((e[v >> 2] | 0) + f) | 0;
                              e[v >> 2] = a;
                              e[k >> 2] = (e[k >> 2] | 0) + (f << 3);
                              e[p >> 2] = ((e[p >> 2] | 0) + 1) & 255;
                            }
                            i[((e[T >> 2] | 0) + a) >> 0] = 0;
                            a = e[P >> 2] | 0;
                          }
                          f = (_ | 0) < (a | 0) ? _ : a;
                          _ = (_ - f) | 0;
                          y = (a - f) | 0;
                          e[P >> 2] = y;
                          h = ((e[T >> 2] | 0) + (e[v >> 2] | 0)) | 0;
                          i[h >> 0] = ((E >> _) << y) | (o[h >> 0] | 0);
                          e[k >> 2] = (e[k >> 2] | 0) + f;
                        } while ((_ | 0) > 0);
                        a = e[g >> 2] | 0;
                      }
                      d = (d + D) | 0;
                    }
                    r = (r + 1) | 0;
                  } while ((r | 0) < (a | 0));
                }
                if ((e[(u + 304 + ((b * 10504) | 0) + ((S * 5252) | 0) + 4788) >> 2] | 0) == 2) {
                  h = ((e[x >> 2] | 0) * 3) | 0;
                  f = (u + 304 + ((b * 10504) | 0) + ((S * 5252) | 0) + 4772) | 0;
                  a = e[f >> 2] | 0;
                  h = (h | 0) > (a | 0) ? a : h;
                  a =
                    O(
                      u,
                      e[(u + 304 + ((b * 10504) | 0) + ((S * 5252) | 0) + 4796) >> 2] | 0,
                      0,
                      h,
                      F
                    ) | 0;
                  a =
                    ((O(
                      u,
                      e[(u + 304 + ((b * 10504) | 0) + ((S * 5252) | 0) + 4800) >> 2] | 0,
                      h,
                      e[f >> 2] | 0,
                      F
                    ) |
                      0) +
                      a) |
                    0;
                } else {
                  a = e[(u + 304 + ((b * 10504) | 0) + ((S * 5252) | 0) + 4772) >> 2] | 0;
                  f = e[(u + 304 + ((b * 10504) | 0) + ((S * 5252) | 0) + 4824) >> 2] | 0;
                  y = e[(u + 21360 + ((f + 1) << 2)) >> 2] | 0;
                  f =
                    e[
                      (u +
                        21360 +
                        ((f +
                          2 +
                          (e[(u + 304 + ((b * 10504) | 0) + ((S * 5252) | 0) + 4828) >> 2] | 0)) <<
                          2)) >>
                        2
                    ] | 0;
                  y = (y | 0) > (a | 0) ? a : y;
                  f = (f | 0) > (a | 0) ? a : f;
                  h =
                    O(
                      u,
                      e[(u + 304 + ((b * 10504) | 0) + ((S * 5252) | 0) + 4796) >> 2] | 0,
                      0,
                      y,
                      F
                    ) | 0;
                  h =
                    ((O(
                      u,
                      e[(u + 304 + ((b * 10504) | 0) + ((S * 5252) | 0) + 4800) >> 2] | 0,
                      y,
                      f,
                      F
                    ) |
                      0) +
                      h) |
                    0;
                  a =
                    (h +
                      (O(
                        u,
                        e[(u + 304 + ((b * 10504) | 0) + ((S * 5252) | 0) + 4804) >> 2] | 0,
                        f,
                        a,
                        F
                      ) |
                        0)) |
                    0;
                }
                n = (d + n + a + (lr(u, F) | 0)) | 0;
                S = (S + 1) | 0;
                d = e[I >> 2] | 0;
              } while ((S | 0) < (d | 0));
            }
            b = (b + 1) | 0;
          } while ((b | 0) != 2);
        } else {
          if ((e[I >> 2] | 0) <= 0) {
            k = (u + 292) | 0;
            n = 0;
            break;
          }
          y = (u + 300) | 0;
          h = (u + 296) | 0;
          k = (u + 292) | 0;
          f = (u + 284) | 0;
          V = (u + 21464) | 0;
          A = 0;
          n = 0;
          do {
            H = (u + 304 + ((A * 5252) | 0)) | 0;
            b = (u + 304 + ((A * 5252) | 0) + 5188) | 0;
            if ((e[(u + 304 + ((A * 5252) | 0) + 4788) >> 2] | 0) == 2) {
              a = 0;
              d = 0;
              F = 0;
              do {
                S = e[((e[b >> 2] | 0) + (F << 2)) >> 2] | 0;
                r = ((S | 0) / 3) | 0;
                T = e[(u + 304 + ((A * 5252) | 0) + 5192 + (F << 2)) >> 2] | 0;
                if ((S | 0) > 2) {
                  x = (T | 0) > 0;
                  S = (r | 0) > 1 ? r : 1;
                  P = 0;
                  D = d;
                  while (1) {
                    m = (D * 3) | 0;
                    g = e[(u + 304 + ((A * 5252) | 0) + 4608 + (m << 2)) >> 2] | 0;
                    g = (g | 0) > 0 ? g : 0;
                    if (x) {
                      R = T;
                      do {
                        E = e[y >> 2] | 0;
                        if (!E) {
                          e[y >> 2] = 8;
                          E = ((e[h >> 2] | 0) + 1) | 0;
                          e[h >> 2] = E;
                          _ = e[p >> 2] | 0;
                          if ((e[(u + 39840 + ((_ * 48) | 0)) >> 2] | 0) == (e[k >> 2] | 0)) {
                            l(
                              ((e[f >> 2] | 0) + E) | 0,
                              (u + 39840 + ((_ * 48) | 0) + 8) | 0,
                              e[N >> 2] | 0
                            ) | 0;
                            v = e[N >> 2] | 0;
                            E = ((e[h >> 2] | 0) + v) | 0;
                            e[h >> 2] = E;
                            e[k >> 2] = (e[k >> 2] | 0) + (v << 3);
                            e[p >> 2] = ((e[p >> 2] | 0) + 1) & 255;
                          }
                          i[((e[f >> 2] | 0) + E) >> 0] = 0;
                          E = e[y >> 2] | 0;
                        }
                        _ = (R | 0) < (E | 0) ? R : E;
                        R = (R - _) | 0;
                        E = (E - _) | 0;
                        e[y >> 2] = E;
                        v = ((e[f >> 2] | 0) + (e[h >> 2] | 0)) | 0;
                        i[v >> 0] = ((g >> R) << E) | (o[v >> 0] | 0);
                        _ = ((e[k >> 2] | 0) + _) | 0;
                        e[k >> 2] = _;
                      } while ((R | 0) > 0);
                      R = e[(u + 304 + ((A * 5252) | 0) + 4608 + ((m + 1) << 2)) >> 2] | 0;
                      R = (R | 0) > 0 ? R : 0;
                      g = T;
                      do {
                        E = e[y >> 2] | 0;
                        if (!E) {
                          e[y >> 2] = 8;
                          E = ((e[h >> 2] | 0) + 1) | 0;
                          e[h >> 2] = E;
                          v = e[p >> 2] | 0;
                          if ((e[(u + 39840 + ((v * 48) | 0)) >> 2] | 0) == (_ | 0)) {
                            l(
                              ((e[f >> 2] | 0) + E) | 0,
                              (u + 39840 + ((v * 48) | 0) + 8) | 0,
                              e[N >> 2] | 0
                            ) | 0;
                            v = e[N >> 2] | 0;
                            E = ((e[h >> 2] | 0) + v) | 0;
                            e[h >> 2] = E;
                            e[k >> 2] = (e[k >> 2] | 0) + (v << 3);
                            e[p >> 2] = ((e[p >> 2] | 0) + 1) & 255;
                          }
                          i[((e[f >> 2] | 0) + E) >> 0] = 0;
                          E = e[y >> 2] | 0;
                        }
                        _ = (g | 0) < (E | 0) ? g : E;
                        g = (g - _) | 0;
                        E = (E - _) | 0;
                        e[y >> 2] = E;
                        v = ((e[f >> 2] | 0) + (e[h >> 2] | 0)) | 0;
                        i[v >> 0] = ((R >> g) << E) | (o[v >> 0] | 0);
                        _ = ((e[k >> 2] | 0) + _) | 0;
                        e[k >> 2] = _;
                      } while ((g | 0) > 0);
                      R = e[(u + 304 + ((A * 5252) | 0) + 4608 + ((m + 2) << 2)) >> 2] | 0;
                      R = (R | 0) > 0 ? R : 0;
                      g = T;
                      v = _;
                      do {
                        _ = e[y >> 2] | 0;
                        if (!_) {
                          e[y >> 2] = 8;
                          _ = ((e[h >> 2] | 0) + 1) | 0;
                          e[h >> 2] = _;
                          E = e[p >> 2] | 0;
                          if ((e[(u + 39840 + ((E * 48) | 0)) >> 2] | 0) == (v | 0)) {
                            l(
                              ((e[f >> 2] | 0) + _) | 0,
                              (u + 39840 + ((E * 48) | 0) + 8) | 0,
                              e[N >> 2] | 0
                            ) | 0;
                            v = e[N >> 2] | 0;
                            _ = ((e[h >> 2] | 0) + v) | 0;
                            e[h >> 2] = _;
                            e[k >> 2] = (e[k >> 2] | 0) + (v << 3);
                            e[p >> 2] = ((e[p >> 2] | 0) + 1) & 255;
                          }
                          i[((e[f >> 2] | 0) + _) >> 0] = 0;
                          _ = e[y >> 2] | 0;
                        }
                        v = (g | 0) < (_ | 0) ? g : _;
                        g = (g - v) | 0;
                        _ = (_ - v) | 0;
                        e[y >> 2] = _;
                        m = ((e[f >> 2] | 0) + (e[h >> 2] | 0)) | 0;
                        i[m >> 0] = ((R >> g) << _) | (o[m >> 0] | 0);
                        v = ((e[k >> 2] | 0) + v) | 0;
                        e[k >> 2] = v;
                      } while ((g | 0) > 0);
                    }
                    P = (P + 1) | 0;
                    if ((P | 0) >= (r | 0)) break;
                    else D = (D + 1) | 0;
                  }
                  a = ((s((T * 3) | 0, S) | 0) + a) | 0;
                  d = (S + d) | 0;
                }
                F = (F + 1) | 0;
              } while ((F | 0) != 4);
              F = ((e[V >> 2] | 0) * 3) | 0;
              b = (u + 304 + ((A * 5252) | 0) + 4772) | 0;
              d = e[b >> 2] | 0;
              F = (F | 0) > (d | 0) ? d : F;
              d = O(u, e[(u + 304 + ((A * 5252) | 0) + 4796) >> 2] | 0, 0, F, H) | 0;
              d =
                ((O(u, e[(u + 304 + ((A * 5252) | 0) + 4800) >> 2] | 0, F, e[b >> 2] | 0, H) | 0) +
                  d) |
                0;
            } else {
              a = 0;
              d = 0;
              g = 0;
              do {
                R = e[((e[b >> 2] | 0) + (g << 2)) >> 2] | 0;
                T = e[(u + 304 + ((A * 5252) | 0) + 5192 + (g << 2)) >> 2] | 0;
                if ((R | 0) > 0) {
                  if ((T | 0) > 0) {
                    x = 0;
                    v = d;
                    while (1) {
                      _ = e[(u + 304 + ((A * 5252) | 0) + 4608 + (v << 2)) >> 2] | 0;
                      _ = (_ | 0) > 0 ? _ : 0;
                      E = T;
                      do {
                        r = e[y >> 2] | 0;
                        if (!r) {
                          e[y >> 2] = 8;
                          r = ((e[h >> 2] | 0) + 1) | 0;
                          e[h >> 2] = r;
                          m = e[p >> 2] | 0;
                          if ((e[(u + 39840 + ((m * 48) | 0)) >> 2] | 0) == (e[k >> 2] | 0)) {
                            l(
                              ((e[f >> 2] | 0) + r) | 0,
                              (u + 39840 + ((m * 48) | 0) + 8) | 0,
                              e[N >> 2] | 0
                            ) | 0;
                            F = e[N >> 2] | 0;
                            r = ((e[h >> 2] | 0) + F) | 0;
                            e[h >> 2] = r;
                            e[k >> 2] = (e[k >> 2] | 0) + (F << 3);
                            e[p >> 2] = ((e[p >> 2] | 0) + 1) & 255;
                          }
                          i[((e[f >> 2] | 0) + r) >> 0] = 0;
                          r = e[y >> 2] | 0;
                        }
                        F = (E | 0) < (r | 0) ? E : r;
                        E = (E - F) | 0;
                        D = (r - F) | 0;
                        e[y >> 2] = D;
                        S = ((e[f >> 2] | 0) + (e[h >> 2] | 0)) | 0;
                        i[S >> 0] = ((_ >> E) << D) | (o[S >> 0] | 0);
                        e[k >> 2] = (e[k >> 2] | 0) + F;
                      } while ((E | 0) > 0);
                      x = (x + 1) | 0;
                      if ((x | 0) == (R | 0)) break;
                      else v = (v + 1) | 0;
                    }
                  }
                  a = ((s(T, R) | 0) + a) | 0;
                  d = (R + d) | 0;
                }
                g = (g + 1) | 0;
              } while ((g | 0) != 4);
              d = e[(u + 304 + ((A * 5252) | 0) + 4772) >> 2] | 0;
              b = e[(u + 304 + ((A * 5252) | 0) + 4824) >> 2] | 0;
              S = e[(u + 21360 + ((b + 1) << 2)) >> 2] | 0;
              b =
                e[
                  (u +
                    21360 +
                    ((b + 2 + (e[(u + 304 + ((A * 5252) | 0) + 4828) >> 2] | 0)) << 2)) >>
                    2
                ] | 0;
              S = (S | 0) > (d | 0) ? d : S;
              b = (b | 0) > (d | 0) ? d : b;
              F = O(u, e[(u + 304 + ((A * 5252) | 0) + 4796) >> 2] | 0, 0, S, H) | 0;
              F = ((O(u, e[(u + 304 + ((A * 5252) | 0) + 4800) >> 2] | 0, S, b, H) | 0) + F) | 0;
              d = (F + (O(u, e[(u + 304 + ((A * 5252) | 0) + 4804) >> 2] | 0, b, d, H) | 0)) | 0;
            }
            n = (a + n + d + (lr(u, H) | 0)) | 0;
            A = (A + 1) | 0;
          } while ((A | 0) < (e[I >> 2] | 0));
        }
      while (0);
      d = (u + 21324) | 0;
      Re(u, e[d >> 2] | 0);
      a = (n + C + (e[d >> 2] | 0)) | 0;
      e[U >> 2] = (e[U >> 2] | 0) + ((((W - a) | 0) / 8) | 0);
      m = e[p >> 2] | 0;
      n = e[w >> 2] | 0;
      n = (n | 0) == 0 ? 255 : (n + -1) | 0;
      r = ((e[(u + 39840 + ((n * 48) | 0)) >> 2] | 0) - (e[k >> 2] | 0)) | 0;
      if ((r | 0) > -1) {
        f = (n + (1 - m)) | 0;
        m = (r - (s(((n | 0) < (m | 0) ? (f + 256) | 0 : f) << 3, e[N >> 2] | 0) | 0)) | 0;
      } else m = r;
      n = e[Y >> 2] | 0;
      if (!n) {
        r = e[z >> 2] | 0;
        n = (u + 120) | 0;
      } else {
        f = e[z >> 2] | 0;
        r = f;
        n = (83944 + (f << 6) + (n << 2)) | 0;
      }
      m =
        ((((((s((((r * 72e3) | 0) + 72e3) | 0, e[n >> 2] | 0) | 0) / (e[j >> 2] | 0)) | 0) +
          (e[q >> 2] | 0)) <<
          3) +
          m) |
        0;
      if ((m | 0) < 0) M(u, 1072, G);
      n = (u + 52140) | 0;
      if ((m | 0) != (e[n >> 2] | 0)) {
        M(u, 1168, Q);
        m = e[n >> 2] | 0;
      }
      r = e[U >> 2] << 3;
      if ((r | 0) != (m | 0)) {
        h = e[d >> 2] | 0;
        y = e[K >> 2] | 0;
        f = e[N >> 2] << 3;
        e[B >> 2] = r;
        e[(B + 4) >> 2] = m;
        e[(B + 8) >> 2] = h;
        e[(B + 12) >> 2] = y;
        e[(B + 16) >> 2] = f;
        e[(B + 20) >> 2] = a - h - f;
        e[(B + 24) >> 2] = a;
        e[(B + 28) >> 2] = (a | 0) % 8 | 0;
        e[(B + 32) >> 2] = W;
        M(u, 1224, B);
        M(u, 1504, $);
        M(u, 1560, X);
        M(u, 1640, Z);
        M(u, 1680, J);
        e[n >> 2] = e[U >> 2] << 3;
      }
      m = e[k >> 2] | 0;
      if ((m | 0) > 1e9) r = 0;
      else {
        t = L;
        return 0;
      }
      do {
        f = (u + 39840 + ((r * 48) | 0)) | 0;
        e[f >> 2] = (e[f >> 2] | 0) - m;
        r = (r + 1) | 0;
      } while ((r | 0) != 256);
      e[k >> 2] = 0;
      t = L;
      return 0;
    }
    function $(i, w, a, f) {
      i = i | 0;
      w = w | 0;
      a = a | 0;
      f = f | 0;
      var s = 0,
        m = 0,
        u = 0,
        n = 0,
        p = 0,
        E = 0,
        _ = 0,
        o = 0,
        h = 0,
        c = 0,
        d = 0;
      d = t;
      t = (t + 9216) | 0;
      h = d;
      s = (i + 296) | 0;
      m = e[s >> 2] | 0;
      c = (m + 1) | 0;
      if ((m | 0) < 0) {
        o = 0;
        t = d;
        return o | 0;
      }
      if (!(((a | 0) == 0) | ((m | 0) < (a | 0)))) {
        o = -1;
        t = d;
        return o | 0;
      }
      l(w | 0, e[(i + 284) >> 2] | 0, c | 0) | 0;
      e[s >> 2] = -1;
      e[(i + 300) >> 2] = 0;
      if (!f) {
        o = c;
        t = d;
        return o | 0;
      }
      ct((i + 85752) | 0, w, c);
      o = (i + 85788) | 0;
      e[o >> 2] = (e[o >> 2] | 0) + c;
      if (!(e[(i + 136) >> 2] | 0)) {
        o = c;
        t = d;
        return o | 0;
      }
      m = (i + 85808) | 0;
      s = (h + 4608) | 0;
      p = (i + 132) | 0;
      E = (i + 128) | 0;
      _ = (i + 85676) | 0;
      o = (i + 72) | 0;
      f = (i + 85684) | 0;
      a = c;
      while (1) {
        a = pi(e[m >> 2] | 0, w | 0, a | 0, h | 0, s | 0) | 0;
        a = (a | 0) == -1 ? 0 : a;
        if ((a | 0) > 0) {
          if (e[p >> 2] | 0) {
            u = +r[f >> 2];
            i = 0;
            do {
              n = +r[(h + (i << 2)) >> 2];
              if (!(n > u)) {
                n = -n;
                if (u < n) {
                  r[f >> 2] = n;
                  u = n;
                }
              } else {
                r[f >> 2] = n;
                u = n;
              }
              i = (i + 1) | 0;
            } while ((i | 0) != (a | 0));
            if ((e[o >> 2] | 0) > 1) {
              i = 0;
              do {
                n = +r[(h + 4608 + (i << 2)) >> 2];
                if (!(n > u)) {
                  n = -n;
                  if (u < n) {
                    r[f >> 2] = n;
                    u = n;
                  }
                } else {
                  r[f >> 2] = n;
                  u = n;
                }
                i = (i + 1) | 0;
              } while ((i | 0) != (a | 0));
            }
          }
          if (
            (e[E >> 2] | 0) != 0
              ? (Ye(e[_ >> 2] | 0, h | 0, s | 0, a | 0, e[o >> 2] | 0) | 0) == 0
              : 0
          ) {
            s = 24;
            break;
          }
        }
        if (!a) {
          s = 23;
          break;
        } else a = 0;
      }
      if ((s | 0) == 23) {
        o = c;
        t = d;
        return o | 0;
      } else if ((s | 0) == 24) {
        o = -6;
        t = d;
        return o | 0;
      }
      return 0;
    }
    function St(r) {
      r = r | 0;
      e[(r + 52132) >> 2] = 0;
      e[(r + 52128) >> 2] = 0;
      e[(r + 39840) >> 2] = 0;
      e[(r + 284) >> 2] = W(147456) | 0;
      e[(r + 288) >> 2] = 147456;
      e[(r + 296) >> 2] = -1;
      e[(r + 300) >> 2] = 0;
      e[(r + 292) >> 2] = 0;
      return;
    }
    function Re(u, w) {
      u = u | 0;
      w = w | 0;
      var r = 0,
        a = 0,
        t = 0,
        n = 0,
        s = 0,
        d = 0,
        f = 0,
        h = 0,
        c = 0,
        m = 0,
        p = 0,
        E = 0,
        _ = 0;
      if ((w | 0) > 7) {
        d = (u + 300) | 0;
        f = (u + 296) | 0;
        h = (u + 52132) | 0;
        c = (u + 292) | 0;
        m = (u + 284) | 0;
        _ = (u + 24) | 0;
        t = 8;
        do {
          r = e[d >> 2] | 0;
          if (!r) {
            e[d >> 2] = 8;
            r = ((e[f >> 2] | 0) + 1) | 0;
            e[f >> 2] = r;
            a = e[h >> 2] | 0;
            if ((e[(u + 39840 + ((a * 48) | 0)) >> 2] | 0) == (e[c >> 2] | 0)) {
              l(((e[m >> 2] | 0) + r) | 0, (u + 39840 + ((a * 48) | 0) + 8) | 0, e[_ >> 2] | 0) | 0;
              s = e[_ >> 2] | 0;
              r = ((e[f >> 2] | 0) + s) | 0;
              e[f >> 2] = r;
              e[c >> 2] = (e[c >> 2] | 0) + (s << 3);
              e[h >> 2] = ((e[h >> 2] | 0) + 1) & 255;
            }
            i[((e[m >> 2] | 0) + r) >> 0] = 0;
            r = e[d >> 2] | 0;
          }
          s = (t | 0) < (r | 0) ? t : r;
          t = (t - s) | 0;
          n = (r - s) | 0;
          e[d >> 2] = n;
          r = ((e[m >> 2] | 0) + (e[f >> 2] | 0)) | 0;
          i[r >> 0] = ((76 >>> t) << n) | o[r >> 0];
          r = ((e[c >> 2] | 0) + s) | 0;
          e[c >> 2] = r;
        } while ((t | 0) > 0);
        a = r;
        r = (w + -8) | 0;
        if ((r | 0) > 7) {
          s = 8;
          while (1) {
            r = e[d >> 2] | 0;
            if (!r) {
              e[d >> 2] = 8;
              r = ((e[f >> 2] | 0) + 1) | 0;
              e[f >> 2] = r;
              t = e[h >> 2] | 0;
              if ((e[(u + 39840 + ((t * 48) | 0)) >> 2] | 0) == (a | 0)) {
                l(((e[m >> 2] | 0) + r) | 0, (u + 39840 + ((t * 48) | 0) + 8) | 0, e[_ >> 2] | 0) |
                  0;
                n = e[_ >> 2] | 0;
                r = ((e[f >> 2] | 0) + n) | 0;
                e[f >> 2] = r;
                e[c >> 2] = (e[c >> 2] | 0) + (n << 3);
                e[h >> 2] = ((e[h >> 2] | 0) + 1) & 255;
              }
              i[((e[m >> 2] | 0) + r) >> 0] = 0;
              r = e[d >> 2] | 0;
            }
            n = (s | 0) < (r | 0) ? s : r;
            s = (s - n) | 0;
            t = (r - n) | 0;
            e[d >> 2] = t;
            r = ((e[m >> 2] | 0) + (e[f >> 2] | 0)) | 0;
            i[r >> 0] = ((65 >>> s) << t) | o[r >> 0];
            r = ((e[c >> 2] | 0) + n) | 0;
            e[c >> 2] = r;
            if ((s | 0) <= 0) {
              a = r;
              break;
            } else a = r;
          }
          r = (w + -16) | 0;
          if ((r | 0) > 7) {
            s = 8;
            while (1) {
              r = e[d >> 2] | 0;
              if (!r) {
                e[d >> 2] = 8;
                r = ((e[f >> 2] | 0) + 1) | 0;
                e[f >> 2] = r;
                t = e[h >> 2] | 0;
                if ((e[(u + 39840 + ((t * 48) | 0)) >> 2] | 0) == (a | 0)) {
                  l(
                    ((e[m >> 2] | 0) + r) | 0,
                    (u + 39840 + ((t * 48) | 0) + 8) | 0,
                    e[_ >> 2] | 0
                  ) | 0;
                  n = e[_ >> 2] | 0;
                  r = ((e[f >> 2] | 0) + n) | 0;
                  e[f >> 2] = r;
                  e[c >> 2] = (e[c >> 2] | 0) + (n << 3);
                  e[h >> 2] = ((e[h >> 2] | 0) + 1) & 255;
                }
                i[((e[m >> 2] | 0) + r) >> 0] = 0;
                r = e[d >> 2] | 0;
              }
              n = (s | 0) < (r | 0) ? s : r;
              s = (s - n) | 0;
              t = (r - n) | 0;
              e[d >> 2] = t;
              r = ((e[m >> 2] | 0) + (e[f >> 2] | 0)) | 0;
              i[r >> 0] = ((77 >>> s) << t) | o[r >> 0];
              r = ((e[c >> 2] | 0) + n) | 0;
              e[c >> 2] = r;
              if ((s | 0) <= 0) {
                a = r;
                break;
              } else a = r;
            }
            r = (w + -24) | 0;
            if ((r | 0) > 7) {
              n = 8;
              do {
                r = e[d >> 2] | 0;
                if (!r) {
                  e[d >> 2] = 8;
                  r = ((e[f >> 2] | 0) + 1) | 0;
                  e[f >> 2] = r;
                  t = e[h >> 2] | 0;
                  if ((e[(u + 39840 + ((t * 48) | 0)) >> 2] | 0) == (a | 0)) {
                    l(
                      ((e[m >> 2] | 0) + r) | 0,
                      (u + 39840 + ((t * 48) | 0) + 8) | 0,
                      e[_ >> 2] | 0
                    ) | 0;
                    s = e[_ >> 2] | 0;
                    r = ((e[f >> 2] | 0) + s) | 0;
                    e[f >> 2] = r;
                    e[c >> 2] = (e[c >> 2] | 0) + (s << 3);
                    e[h >> 2] = ((e[h >> 2] | 0) + 1) & 255;
                  }
                  i[((e[m >> 2] | 0) + r) >> 0] = 0;
                  r = e[d >> 2] | 0;
                }
                a = (n | 0) < (r | 0) ? n : r;
                n = (n - a) | 0;
                t = (r - a) | 0;
                e[d >> 2] = t;
                s = ((e[m >> 2] | 0) + (e[f >> 2] | 0)) | 0;
                i[s >> 0] = ((69 >>> n) << t) | o[s >> 0];
                a = ((e[c >> 2] | 0) + a) | 0;
                e[c >> 2] = a;
              } while ((n | 0) > 0);
              r = (w + -32) | 0;
              if ((r | 0) > 31) {
                E = Qi() | 0;
                if ((D(E | 0) | 0) > 0) {
                  w = 0;
                  do {
                    s = i[(E + w) >> 0] | 0;
                    n = 8;
                    do {
                      t = e[d >> 2] | 0;
                      if (!t) {
                        e[d >> 2] = 8;
                        t = ((e[f >> 2] | 0) + 1) | 0;
                        e[f >> 2] = t;
                        a = e[h >> 2] | 0;
                        if ((e[(u + 39840 + ((a * 48) | 0)) >> 2] | 0) == (e[c >> 2] | 0)) {
                          l(
                            ((e[m >> 2] | 0) + t) | 0,
                            (u + 39840 + ((a * 48) | 0) + 8) | 0,
                            e[_ >> 2] | 0
                          ) | 0;
                          a = e[_ >> 2] | 0;
                          t = ((e[f >> 2] | 0) + a) | 0;
                          e[f >> 2] = t;
                          e[c >> 2] = (e[c >> 2] | 0) + (a << 3);
                          e[h >> 2] = ((e[h >> 2] | 0) + 1) & 255;
                        }
                        i[((e[m >> 2] | 0) + t) >> 0] = 0;
                        t = e[d >> 2] | 0;
                      }
                      a = (n | 0) < (t | 0) ? n : t;
                      n = (n - a) | 0;
                      p = (t - a) | 0;
                      e[d >> 2] = p;
                      t = ((e[m >> 2] | 0) + (e[f >> 2] | 0)) | 0;
                      i[t >> 0] = ((s >> n) << p) | o[t >> 0];
                      e[c >> 2] = (e[c >> 2] | 0) + a;
                    } while ((n | 0) > 0);
                    r = (r + -8) | 0;
                    w = (w + 1) | 0;
                  } while (((r | 0) > 7) & ((w | 0) < (D(E | 0) | 0)));
                  p = 2;
                }
              } else p = 2;
            } else p = 2;
          } else p = 2;
        } else p = 2;
      } else {
        r = w;
        p = 2;
      }
      if ((p | 0) == 2) if ((r | 0) <= 0) return;
      d = (u + 52136) | 0;
      f = (u + 300) | 0;
      h = (u + 296) | 0;
      c = (u + 52132) | 0;
      m = (u + 292) | 0;
      p = (u + 284) | 0;
      E = (u + 24) | 0;
      w = (u + 144) | 0;
      s = e[d >> 2] | 0;
      while (1) {
        n = 1;
        do {
          t = e[f >> 2] | 0;
          if (!t) {
            e[f >> 2] = 8;
            t = ((e[h >> 2] | 0) + 1) | 0;
            e[h >> 2] = t;
            a = e[c >> 2] | 0;
            if ((e[(u + 39840 + ((a * 48) | 0)) >> 2] | 0) == (e[m >> 2] | 0)) {
              l(((e[p >> 2] | 0) + t) | 0, (u + 39840 + ((a * 48) | 0) + 8) | 0, e[E >> 2] | 0) | 0;
              a = e[E >> 2] | 0;
              t = ((e[h >> 2] | 0) + a) | 0;
              e[h >> 2] = t;
              e[m >> 2] = (e[m >> 2] | 0) + (a << 3);
              e[c >> 2] = ((e[c >> 2] | 0) + 1) & 255;
            }
            i[((e[p >> 2] | 0) + t) >> 0] = 0;
            t = e[f >> 2] | 0;
          }
          a = (n | 0) < (t | 0) ? n : t;
          n = (n - a) | 0;
          _ = (t - a) | 0;
          e[f >> 2] = _;
          t = ((e[p >> 2] | 0) + (e[h >> 2] | 0)) | 0;
          i[t >> 0] = ((s >> n) << _) | o[t >> 0];
          e[m >> 2] = (e[m >> 2] | 0) + a;
        } while ((n | 0) > 0);
        s = ((e[w >> 2] | 0) == 0) ^ e[d >> 2];
        e[d >> 2] = s;
        if ((r | 0) <= 1) break;
        else r = (r + -1) | 0;
      }
      return;
    }
    function O(c, w, E, k, g) {
      c = c | 0;
      w = w | 0;
      E = E | 0;
      k = k | 0;
      g = g | 0;
      var t = 0,
        n = 0,
        u = 0,
        a = 0,
        f = 0,
        d = 0,
        b = 0,
        p = 0,
        _ = 0,
        m = 0,
        S = 0,
        h = 0,
        v = 0,
        y = 0,
        F = 0,
        M = 0,
        O = 0,
        R = 0,
        A = 0;
      M = e[(82272 + (w << 4)) >> 2] | 0;
      if (!(((w | 0) != 0) & ((E | 0) < (k | 0)))) {
        k = 0;
        return k | 0;
      }
      O = w >>> 0 > 15;
      R = M & 65535;
      A = e[(82272 + (w << 4) + 12) >> 2] | 0;
      F = e[(82272 + (w << 4) + 8) >> 2] | 0;
      _ = (c + 300) | 0;
      m = (c + 296) | 0;
      S = (c + 52132) | 0;
      h = (c + 292) | 0;
      v = (c + 284) | 0;
      y = (c + 24) | 0;
      w = 0;
      do {
        n = e[(g + 2304 + (E << 2)) >> 2] | 0;
        b = (E + 1) | 0;
        f = e[(g + 2304 + (b << 2)) >> 2] | 0;
        if (!n) {
          d = 0;
          t = 0;
        } else {
          d = -1;
          t = (+r[(g + (E << 2)) >> 2] < 0) & 1;
        }
        if (O) {
          if (n >>> 0 > 14) {
            t = t | (((n << 1) + 131042) & 131070);
            n = 15;
            a = R;
          } else a = 0;
          if (f >>> 0 > 14) {
            t = (t << M) | ((f + 65521) & 65535);
            f = 15;
            a = ((a & 65535) + M) & 65535;
            u = 16;
            p = 11;
          } else {
            u = 16;
            p = 10;
          }
        } else {
          a = 0;
          u = M;
          p = 10;
        }
        if ((p | 0) == 10) {
          p = 0;
          if (!f) {
            b = t;
            f = 0;
            t = u;
          } else p = 11;
        }
        if ((p | 0) == 11) {
          d = ((d + -1) << 16) >> 16;
          b = (+r[(g + (b << 2)) >> 2] < 0) | (t << 1);
          t = u;
        }
        f = ((s(t, n) | 0) + f) | 0;
        d = (d << 16) >> 16;
        u = ((a & 65535) - d) | 0;
        d = ((o[(A + f) >> 0] | 0) + d) | 0;
        f = Nr[(F + (f << 1)) >> 1] | 0;
        if ((d | 0) > 0) {
          a = d;
          do {
            n = e[_ >> 2] | 0;
            if (!n) {
              e[_ >> 2] = 8;
              n = ((e[m >> 2] | 0) + 1) | 0;
              e[m >> 2] = n;
              t = e[S >> 2] | 0;
              if ((e[(c + 39840 + ((t * 48) | 0)) >> 2] | 0) == (e[h >> 2] | 0)) {
                l(((e[v >> 2] | 0) + n) | 0, (c + 39840 + ((t * 48) | 0) + 8) | 0, e[y >> 2] | 0) |
                  0;
                t = e[y >> 2] | 0;
                n = ((e[m >> 2] | 0) + t) | 0;
                e[m >> 2] = n;
                e[h >> 2] = (e[h >> 2] | 0) + (t << 3);
                e[S >> 2] = ((e[S >> 2] | 0) + 1) & 255;
              }
              i[((e[v >> 2] | 0) + n) >> 0] = 0;
              n = e[_ >> 2] | 0;
            }
            t = (a | 0) < (n | 0) ? a : n;
            a = (a - t) | 0;
            p = (n - t) | 0;
            e[_ >> 2] = p;
            n = ((e[v >> 2] | 0) + (e[m >> 2] | 0)) | 0;
            i[n >> 0] = ((f >>> a) << p) | (o[n >> 0] | 0);
            e[h >> 2] = (e[h >> 2] | 0) + t;
          } while ((a | 0) > 0);
        }
        a = u & 65535;
        if (a) {
          u = a;
          do {
            t = e[_ >> 2] | 0;
            if (!t) {
              e[_ >> 2] = 8;
              t = ((e[m >> 2] | 0) + 1) | 0;
              e[m >> 2] = t;
              n = e[S >> 2] | 0;
              if ((e[(c + 39840 + ((n * 48) | 0)) >> 2] | 0) == (e[h >> 2] | 0)) {
                l(((e[v >> 2] | 0) + t) | 0, (c + 39840 + ((n * 48) | 0) + 8) | 0, e[y >> 2] | 0) |
                  0;
                n = e[y >> 2] | 0;
                t = ((e[m >> 2] | 0) + n) | 0;
                e[m >> 2] = t;
                e[h >> 2] = (e[h >> 2] | 0) + (n << 3);
                e[S >> 2] = ((e[S >> 2] | 0) + 1) & 255;
              }
              i[((e[v >> 2] | 0) + t) >> 0] = 0;
              t = e[_ >> 2] | 0;
            }
            n = (u | 0) < (t | 0) ? u : t;
            u = (u - n) | 0;
            f = (t - n) | 0;
            e[_ >> 2] = f;
            t = ((e[v >> 2] | 0) + (e[m >> 2] | 0)) | 0;
            i[t >> 0] = ((b >> u) << f) | (o[t >> 0] | 0);
            e[h >> 2] = (e[h >> 2] | 0) + n;
          } while ((u | 0) > 0);
        }
        w = (a + w + d) | 0;
        E = (E + 2) | 0;
      } while ((E | 0) < (k | 0));
      return w | 0;
    }
    function lr(s, t) {
      s = s | 0;
      t = t | 0;
      var f = 0,
        n = 0,
        a = 0,
        S = 0,
        g = 0,
        c = 0,
        _ = 0,
        u = 0,
        p = 0,
        m = 0,
        d = 0,
        w = 0,
        h = 0,
        E = 0,
        b = 0,
        k = 0,
        v = 0;
      f = ((e[(t + 4840) >> 2] | 0) + 32) | 0;
      a = e[(t + 4772) >> 2] | 0;
      n = ((e[(t + 4776) >> 2] | 0) - a) | 0;
      if ((n | 0) <= 3) {
        p = 0;
        return p | 0;
      }
      k = e[(82272 + (f << 4) + 8) >> 2] | 0;
      p = e[(82272 + (f << 4) + 12) >> 2] | 0;
      m = (s + 300) | 0;
      d = (s + 296) | 0;
      w = (s + 52132) | 0;
      h = (s + 292) | 0;
      E = (s + 284) | 0;
      b = (s + 24) | 0;
      f = 0;
      _ = ((n | 0) / 4) | 0;
      u = (t + 2304 + (a << 2)) | 0;
      c = (t + (a << 2)) | 0;
      while (1) {
        if (e[u >> 2] | 0)
          if (+r[c >> 2] < 0) {
            n = 1;
            t = 8;
          } else {
            n = 0;
            t = 8;
          }
        else {
          n = 0;
          t = 0;
        }
        if (e[(u + 4) >> 2] | 0) {
          t = t | 4;
          n = n << 1;
          if (+r[(c + 4) >> 2] < 0) n = n | 1;
        }
        if (e[(u + 8) >> 2] | 0) {
          t = (t + 2) | 0;
          n = n << 1;
          if (+r[(c + 8) >> 2] < 0) n = n | 1;
        }
        if (e[(u + 12) >> 2] | 0) {
          t = (t + 1) | 0;
          n = n << 1;
          if (+r[(c + 12) >> 2] < 0) n = n | 1;
        }
        u = (u + 16) | 0;
        c = (c + 16) | 0;
        g = ((Nr[(k + (t << 1)) >> 1] | 0) + n) | 0;
        S = (p + t) | 0;
        a = i[S >> 0] | 0;
        if (!((a << 24) >> 24)) n = 0;
        else {
          n = a & 255;
          do {
            t = e[m >> 2] | 0;
            if (!t) {
              e[m >> 2] = 8;
              t = ((e[d >> 2] | 0) + 1) | 0;
              e[d >> 2] = t;
              a = e[w >> 2] | 0;
              if ((e[(s + 39840 + ((a * 48) | 0)) >> 2] | 0) == (e[h >> 2] | 0)) {
                l(((e[E >> 2] | 0) + t) | 0, (s + 39840 + ((a * 48) | 0) + 8) | 0, e[b >> 2] | 0) |
                  0;
                a = e[b >> 2] | 0;
                t = ((e[d >> 2] | 0) + a) | 0;
                e[d >> 2] = t;
                e[h >> 2] = (e[h >> 2] | 0) + (a << 3);
                e[w >> 2] = ((e[w >> 2] | 0) + 1) & 255;
              }
              i[((e[E >> 2] | 0) + t) >> 0] = 0;
              t = e[m >> 2] | 0;
            }
            a = (n | 0) < (t | 0) ? n : t;
            n = (n - a) | 0;
            v = (t - a) | 0;
            e[m >> 2] = v;
            t = ((e[E >> 2] | 0) + (e[d >> 2] | 0)) | 0;
            i[t >> 0] = ((g >> n) << v) | (o[t >> 0] | 0);
            e[h >> 2] = (e[h >> 2] | 0) + a;
          } while ((n | 0) > 0);
          n = i[S >> 0] | 0;
        }
        f = ((n & 255) + f) | 0;
        if ((_ | 0) <= 1) break;
        else _ = (_ + -1) | 0;
      }
      return f | 0;
    }
    function sr(a, g, A, G, Y) {
      a = a | 0;
      g = g | 0;
      A = A | 0;
      G = G | 0;
      Y = Y | 0;
      var u = 0,
        m = 0,
        w = 0,
        d = 0,
        i = 0,
        o = 0,
        h = 0,
        _ = 0,
        v = 0,
        F = 0,
        O = 0,
        ae = 0,
        oe = 0,
        ne = 0,
        te = 0,
        X = 0,
        R = 0,
        re = 0,
        ee = 0,
        Q = 0,
        J = 0,
        se = 0,
        ie = 0,
        Z = 0,
        C = 0,
        U = 0,
        S = 0,
        T = 0,
        N = 0,
        B = 0,
        y = 0,
        P = 0,
        D = 0,
        M = 0,
        x = 0,
        L = 0,
        b = 0,
        E = 0,
        p = 0,
        q = 0,
        z = 0,
        I = 0,
        k = 0,
        W = 0,
        j = 0,
        V = 0,
        K = 0;
      k = t;
      t = (t + 20112) | 0;
      T = (k + 12056) | 0;
      N = (k + 4e3) | 0;
      x = (k + 2048) | 0;
      L = (k + 96) | 0;
      I = (k + 88) | 0;
      D = (k + 56) | 0;
      q = (k + 8) | 0;
      b = (k + 40) | 0;
      E = (k + 24) | 0;
      P = k;
      y = (k + 16) | 0;
      o = q;
      e[o >> 2] = 1056964608;
      e[(o + 4) >> 2] = 1056964608;
      e[b >> 2] = 0;
      e[(b + 4) >> 2] = 0;
      e[(b + 8) >> 2] = 0;
      e[(b + 12) >> 2] = 0;
      e[E >> 2] = 0;
      e[(E + 4) >> 2] = 0;
      e[(E + 8) >> 2] = 0;
      e[(E + 12) >> 2] = 0;
      e[I >> 2] = g;
      e[(I + 4) >> 2] = A;
      o = (a + 4) | 0;
      if (!(e[o >> 2] | 0)) {
        S = (a + 76) | 0;
        i = e[S >> 2] | 0;
        u = (i * 576) | 0;
        e[o >> 2] = 1;
        c(T | 0, 0, 8056) | 0;
        c(N | 0, 0, 8056) | 0;
        d = (u + 862) | 0;
        if ((d | 0) > 0) {
          w = (a + 72) | 0;
          m = 0;
          o = 0;
          do {
            if ((m | 0) < (u | 0)) {
              r[(T + (m << 2)) >> 2] = 0;
              if ((e[w >> 2] | 0) == 2) r[(N + (m << 2)) >> 2] = 0;
            } else {
              e[(T + (m << 2)) >> 2] = e[(g + (o << 2)) >> 2];
              if ((e[w >> 2] | 0) == 2) e[(N + (m << 2)) >> 2] = e[(A + (o << 2)) >> 2];
              o = (o + 1) | 0;
            }
            m = (m + 1) | 0;
          } while ((m | 0) != (d | 0));
        }
        if ((i | 0) > 0) {
          w = (a + 72) | 0;
          o = e[w >> 2] | 0;
          d = 0;
          do {
            if ((o | 0) > 0) {
              i = 0;
              do {
                e[(a + 304 + ((d * 10504) | 0) + ((i * 5252) | 0) + 4788) >> 2] = 2;
                i = (i + 1) | 0;
                o = e[w >> 2] | 0;
              } while ((i | 0) < (o | 0));
              i = e[S >> 2] | 0;
            }
            d = (d + 1) | 0;
          } while ((d | 0) < (i | 0));
        }
        Ge(a, T, N);
      }
      o = (a + 84752) | 0;
      e[o >> 2] = 0;
      i = (a + 39836) | 0;
      d = ((e[i >> 2] | 0) - (e[(a + 39832) >> 2] | 0)) | 0;
      e[i >> 2] = d;
      if ((d | 0) < 0) {
        e[i >> 2] = (e[(a + 64) >> 2] | 0) + d;
        e[o >> 2] = 1;
      }
      S = P;
      e[S >> 2] = 0;
      e[(S + 4) >> 2] = 0;
      S = (a + 76) | 0;
      o = e[S >> 2] | 0;
      e: do
        if ((o | 0) > 0) {
          w = (a + 72) | 0;
          m = (a + 180) | 0;
          u = 0;
          while (1) {
            o = e[w >> 2] | 0;
            if ((o | 0) > 0) {
              i = (((u * 576) | 0) + 304) | 0;
              d = 0;
              do {
                e[(P + (d << 2)) >> 2] = (e[(I + (d << 2)) >> 2] | 0) + (i << 2);
                d = (d + 1) | 0;
              } while ((d | 0) < (o | 0));
            }
            if (
              ei(a, P, u, x, L, (b + (u << 3)) | 0, (E + (u << 3)) | 0, (D + (u << 4)) | 0, y) | 0
            ) {
              u = -4;
              break;
            }
            if (
              (e[m >> 2] | 0) == 1
                ? ((U = +r[(D + (u << 4) + 12) >> 2]),
                  (C = U + +r[(D + (u << 4) + 8) >> 2]),
                  (B = (q + (u << 2)) | 0),
                  (r[B >> 2] = C),
                  C > 0)
                : 0
            )
              r[B >> 2] = U / C;
            o = e[w >> 2] | 0;
            if ((o | 0) > 0) {
              i = 0;
              do {
                e[(a + 304 + ((u * 10504) | 0) + ((i * 5252) | 0) + 4788) >> 2] =
                  e[(y + (i << 2)) >> 2];
                e[(a + 304 + ((u * 10504) | 0) + ((i * 5252) | 0) + 4792) >> 2] = 0;
                i = (i + 1) | 0;
              } while ((i | 0) < (o | 0));
            }
            u = (u + 1) | 0;
            o = e[S >> 2] | 0;
            if ((u | 0) >= (o | 0)) break e;
          }
          t = k;
          return u | 0;
        }
      while (0);
      d = e[(a + 85796) >> 2] | 0;
      do
        if (!(e[d >> 2] | 0)) r[(d + 8) >> 2] = 1;
        else {
          _ = +r[(a + 27804) >> 2];
          O = +r[(a + 27812) >> 2];
          if ((e[(a + 72) >> 2] | 0) == 2) {
            F = +r[(a + 27808) >> 2];
            v = +r[(a + 27816) >> 2];
          } else {
            F = _;
            v = O;
          }
          R = O + v;
          _ = _ + F;
          _ = +r[(d + 4) >> 2] * 0.5 * ((o | 0) == 2 ? (_ > R ? _ : R) : _);
          if (_ > 0.03125) {
            i = (d + 8) | 0;
            _ = +r[i >> 2];
            if (!(_ >= 1)) {
              o = (d + 12) | 0;
              v = +r[o >> 2];
              if (_ < v) r[i >> 2] = v;
            } else {
              r[i >> 2] = 1;
              o = (d + 12) | 0;
            }
            r[o >> 2] = 1;
            break;
          }
          v = _ * 31.98 + 625e-6;
          o = (d + 8) | 0;
          _ = +r[o >> 2];
          do
            if (!(_ >= v)) {
              F = +r[(d + 12) >> 2];
              if (F >= v) {
                r[o >> 2] = v;
                break;
              }
              if (_ < F) r[o >> 2] = F;
            } else {
              R = _ * (v * 0.075 + 0.925);
              r[o >> 2] = R;
              if (R < v) r[o >> 2] = v;
            }
          while (0);
          r[(d + 12) >> 2] = v;
        }
      while (0);
      Ge(a, e[I >> 2] | 0, A);
      y = (a + 84756) | 0;
      e[y >> 2] = 0;
      do
        if (!(e[(a + 80) >> 2] | 0))
          if ((e[(a + 180) >> 2] | 0) == 1) {
            d = e[S >> 2] | 0;
            if ((d | 0) > 0 ? ((M = e[(a + 72) >> 2] | 0), (M | 0) > 0) : 0) {
              i = 0;
              _ = 0;
              v = 0;
              do {
                o = 0;
                do {
                  v = +r[(E + (i << 3) + (o << 2)) >> 2] + v;
                  _ = +r[(b + (i << 3) + (o << 2)) >> 2] + _;
                  o = (o + 1) | 0;
                } while ((o | 0) < (M | 0));
                i = (i + 1) | 0;
              } while ((i | 0) < (d | 0));
              if (!(v <= _)) {
                o = 0;
                break;
              }
            }
            M = (d + -1) | 0;
            if (
              (e[(a + 5092) >> 2] | 0) == (e[(a + 10344) >> 2] | 0)
                ? (e[(a + 304 + ((M * 10504) | 0) + 4788) >> 2] | 0) ==
                  (e[(a + 304 + ((M * 10504) | 0) + 10040) >> 2] | 0)
                : 0
            ) {
              e[y >> 2] = 2;
              o = 1;
            } else o = 0;
          } else o = 0;
        else {
          e[y >> 2] = 2;
          o = 1;
        }
      while (0);
      P = o ? L : x;
      m = o ? E : b;
      D = (a + 140) | 0;
      if (
        ((e[D >> 2] | 0) != 0
        ? ((p = (a + 85804) | 0), (e[p >> 2] | 0) != 0)
        : 0)
          ? ((h = e[S >> 2] | 0), (h | 0) > 0)
          : 0
      ) {
        d = (a + 72) | 0;
        o = e[d >> 2] | 0;
        i = 0;
        do {
          if ((o | 0) > 0) {
            _ = +r[(q + (i << 2)) >> 2];
            h = 0;
            do {
              E = e[p >> 2] | 0;
              f[(E + 90904 + (i << 3)) >> 3] = 0;
              f[(E + 90920 + (i << 3)) >> 3] = _;
              e[(E + 203288 + (i << 3) + (h << 2)) >> 2] =
                e[(a + 304 + ((i * 10504) | 0) + ((h * 5252) | 0) + 4788) >> 2];
              f[(E + 189240 + (i << 5) + (h << 3)) >> 3] = +r[(m + (i << 3) + (h << 2)) >> 2];
              l(
                (E + 54040 + ((i * 9216) | 0) + ((h * 4608) | 0)) | 0,
                (a + 304 + ((i * 10504) | 0) + ((h * 5252) | 0)) | 0,
                2304
              ) | 0;
              if ((e[y >> 2] | 0) == 2) {
                E = (h + 2) | 0;
                b = e[p >> 2] | 0;
                f[(b + 197144 + (i << 5) + (h << 3)) >> 3] = +f[
                  (b + 197144 + (i << 5) + (E << 3)) >> 3
                ];
                l(
                  (b + 123704 + (i << 15) + (h << 13)) | 0,
                  (b + 123704 + (i << 15) + (E << 13)) | 0,
                  8192
                ) | 0;
              }
              h = (h + 1) | 0;
              o = e[d >> 2] | 0;
            } while ((h | 0) < (o | 0));
            h = e[S >> 2] | 0;
          }
          i = (i + 1) | 0;
        } while ((i | 0) < (h | 0));
      }
      p = e[(a + 104) >> 2] | 0;
      if (((p | 0) == 3) | ((p | 0) == 0)) {
        u = (a + 39760) | 0;
        V = e[u >> 2] | 0;
        e[(a + 39756) >> 2] = V;
        i = (a + 39764) | 0;
        j = e[i >> 2] | 0;
        e[u >> 2] = j;
        u = (a + 39768) | 0;
        T = e[u >> 2] | 0;
        e[i >> 2] = T;
        i = (a + 39772) | 0;
        h = e[i >> 2] | 0;
        e[u >> 2] = h;
        u = (a + 39776) | 0;
        w = e[u >> 2] | 0;
        e[i >> 2] = w;
        i = (a + 39780) | 0;
        B = e[i >> 2] | 0;
        e[u >> 2] = B;
        u = (a + 39784) | 0;
        x = e[u >> 2] | 0;
        e[i >> 2] = x;
        i = (a + 39788) | 0;
        b = e[i >> 2] | 0;
        e[u >> 2] = b;
        u = (a + 39792) | 0;
        p = e[u >> 2] | 0;
        e[i >> 2] = p;
        i = (a + 39796) | 0;
        K = e[i >> 2] | 0;
        e[u >> 2] = K;
        u = (a + 39800) | 0;
        g = e[u >> 2] | 0;
        e[i >> 2] = g;
        i = (a + 39804) | 0;
        E = e[i >> 2] | 0;
        e[u >> 2] = E;
        u = (a + 39808) | 0;
        L = e[u >> 2] | 0;
        e[i >> 2] = L;
        i = (a + 39812) | 0;
        M = e[i >> 2] | 0;
        e[u >> 2] = M;
        u = (a + 39816) | 0;
        A = e[u >> 2] | 0;
        e[i >> 2] = A;
        i = (a + 39820) | 0;
        N = e[i >> 2] | 0;
        e[u >> 2] = N;
        u = (a + 39824) | 0;
        o = e[u >> 2] | 0;
        e[i >> 2] = o;
        i = (a + 39828) | 0;
        W = e[i >> 2] | 0;
        e[u >> 2] = W;
        u = e[S >> 2] | 0;
        d = (u | 0) > 0;
        F = ((e[n >> 2] = K), +r[n >> 2]);
        v = ((e[n >> 2] = V), +r[n >> 2]);
        _ = ((e[n >> 2] = j), +r[n >> 2]);
        ae = ((e[n >> 2] = W), +r[n >> 2]);
        oe = ((e[n >> 2] = T), +r[n >> 2]);
        ne = ((e[n >> 2] = o), +r[n >> 2]);
        te = ((e[n >> 2] = h), +r[n >> 2]);
        X = ((e[n >> 2] = N), +r[n >> 2]);
        R = ((e[n >> 2] = w), +r[n >> 2]);
        re = ((e[n >> 2] = A), +r[n >> 2]);
        ee = ((e[n >> 2] = B), +r[n >> 2]);
        Q = ((e[n >> 2] = M), +r[n >> 2]);
        J = ((e[n >> 2] = x), +r[n >> 2]);
        se = ((e[n >> 2] = L), +r[n >> 2]);
        ie = ((e[n >> 2] = b), +r[n >> 2]);
        Z = ((e[n >> 2] = E), +r[n >> 2]);
        C = ((e[n >> 2] = p), +r[n >> 2]);
        U = ((e[n >> 2] = g), +r[n >> 2]);
        g = e[(a + 72) >> 2] | 0;
        if (d & ((g | 0) > 0)) {
          O = 0;
          o = 0;
          do {
            h = 0;
            do {
              O = +r[(m + (o << 3) + (h << 2)) >> 2] + O;
              h = (h + 1) | 0;
            } while ((h | 0) < (g | 0));
            o = (o + 1) | 0;
          } while ((o | 0) < (u | 0));
        } else O = 0;
        r[i >> 2] = O;
        _ =
          +(s((u * 3350) | 0, g) | 0) /
          ((U + C) * 0.9354900121688843 +
            ((Z + ie) * 0.7568249702453613 +
              ((se + J) * 0.5045499801635742 +
                ((Q + ee) * 0.23387250304222107 +
                  ((re + R) * 3.8980449615198e-17 +
                    ((X + te) * -0.1559150069952011 +
                      ((ne + oe) * -0.21623599529266357 +
                        ((ae + _) * -0.18920649588108063 +
                          ((O + v) * -0.10394349694252014 + F)))))))));
        if (d & ((g | 0) > 0)) {
          o = 0;
          do {
            h = 0;
            do {
              p = (m + (o << 3) + (h << 2)) | 0;
              r[p >> 2] = +r[p >> 2] * _;
              h = (h + 1) | 0;
            } while ((h | 0) < (g | 0));
            o = (o + 1) | 0;
          } while ((o | 0) < (u | 0));
        }
      }
      H[e[(a + 85812) >> 2] & 7](a, m, q, P);
      Et(a) | 0;
      u = $(a, G, Y, 1) | 0;
      if (e[(a + 156) >> 2] | 0) lt(a);
      if ((e[D >> 2] | 0) != 0 ? ((z = e[(a + 85804) >> 2] | 0), (z | 0) != 0) : 0) {
        d = ((e[S >> 2] | 0) * 576) | 0;
        i = e[(a + 72) >> 2] | 0;
        if ((i | 0) > 0) {
          o = 0;
          do {
            w = 0;
            do {
              f[(z + 24 + ((o * 12800) | 0) + (w << 3)) >> 3] = +f[
                (z + 24 + ((o * 12800) | 0) + ((w + d) << 3)) >> 3
              ];
              w = (w + 1) | 0;
            } while ((w | 0) != 272);
            w = e[(I + (o << 2)) >> 2] | 0;
            m = 272;
            do {
              f[(z + 24 + ((o * 12800) | 0) + (m << 3)) >> 3] = +r[(w + ((m + -272) << 2)) >> 2];
              m = (m + 1) | 0;
            } while ((m | 0) != 1600);
            o = (o + 1) | 0;
          } while ((o | 0) < (i | 0));
        }
        r[(a + 84908) >> 2] = 1;
        Ur(a, P);
      }
      d = (a + 84748) | 0;
      e[d >> 2] = (e[d >> 2] | 0) + 1;
      d = (a + 84744) | 0;
      h = (a + 84040 + (((e[d >> 2] | 0) * 20) | 0) + 16) | 0;
      e[h >> 2] = (e[h >> 2] | 0) + 1;
      h = (a + 84356) | 0;
      e[h >> 2] = (e[h >> 2] | 0) + 1;
      h = (a + 72) | 0;
      if ((e[h >> 2] | 0) == 2) {
        p = (a + 84040 + (((e[d >> 2] | 0) * 20) | 0) + (e[y >> 2] << 2)) | 0;
        e[p >> 2] = (e[p >> 2] | 0) + 1;
        p = (a + 84340 + (e[y >> 2] << 2)) | 0;
        e[p >> 2] = (e[p >> 2] | 0) + 1;
      }
      m = e[S >> 2] | 0;
      if ((m | 0) <= 0) {
        p = u;
        t = k;
        return p | 0;
      }
      i = (a + 84740) | 0;
      w = e[h >> 2] | 0;
      o = 0;
      do {
        if ((w | 0) > 0) {
          m = 0;
          do {
            w =
              (e[(a + 304 + ((o * 10504) | 0) + ((m * 5252) | 0) + 4792) >> 2] | 0) == 0
                ? e[(a + 304 + ((o * 10504) | 0) + ((m * 5252) | 0) + 4788) >> 2] | 0
                : 4;
            p = (a + 84360 + (((e[d >> 2] | 0) * 24) | 0) + (w << 2)) | 0;
            e[p >> 2] = (e[p >> 2] | 0) + 1;
            p = (a + 84360 + (((e[d >> 2] | 0) * 24) | 0) + 20) | 0;
            e[p >> 2] = (e[p >> 2] | 0) + 1;
            w = (a + 84720 + (w << 2)) | 0;
            e[w >> 2] = (e[w >> 2] | 0) + 1;
            e[i >> 2] = (e[i >> 2] | 0) + 1;
            m = (m + 1) | 0;
            w = e[h >> 2] | 0;
          } while ((m | 0) < (w | 0));
          m = e[S >> 2] | 0;
        }
        o = (o + 1) | 0;
      } while ((o | 0) < (m | 0));
      t = k;
      return u | 0;
    }
    function Mt(i, E, _, p) {
      i = i | 0;
      E = E | 0;
      _ = _ | 0;
      p = p | 0;
      var m = 0,
        v = 0,
        w = 0,
        d = 0,
        S = 0,
        c = 0,
        h = 0,
        n = 0,
        t = 0,
        f = 0,
        u = 0,
        a = 0,
        l = 0;
      S = (p + (_ << 2)) | 0;
      _ = (i + 85820) | 0;
      m = 0;
      v = E;
      while (1) {
        d = m;
        m = (m + 1) | 0;
        p = (s(m, 12582912) | 0) >> 16;
        i = e[S >> 2] | 0;
        w = 31;
        d = (E + (d << 10) + 512) | 0;
        while (1) {
          a = o[(1720 + (w << 2)) >> 0] | 0;
          l = (a + p) | 0;
          u = +r[(i + (l << 2)) >> 2] * +r[(1848 + (a << 2)) >> 2];
          n = +r[(i + ((l + 128) << 2)) >> 2] * +r[(1848 + ((127 - a) << 2)) >> 2];
          t = u - n;
          u = n + u;
          n = +r[(i + ((l + 64) << 2)) >> 2] * +r[(1848 + ((a + 64) << 2)) >> 2];
          h = +r[(i + ((l + 192) << 2)) >> 2] * +r[(1848 + ((63 - a) << 2)) >> 2];
          f = n - h;
          n = h + n;
          c = d;
          d = (d + -16) | 0;
          r[d >> 2] = n + u;
          r[(c + -8) >> 2] = u - n;
          r[(c + -12) >> 2] = f + t;
          r[(c + -4) >> 2] = t - f;
          f = +r[(i + ((l + 1) << 2)) >> 2] * +r[(1848 + ((a + 1) << 2)) >> 2];
          t = +r[(i + ((l + 129) << 2)) >> 2] * +r[(1848 + ((126 - a) << 2)) >> 2];
          n = f - t;
          f = t + f;
          t = +r[(i + ((l + 65) << 2)) >> 2] * +r[(1848 + ((a + 65) << 2)) >> 2];
          u = +r[(i + ((l + 193) << 2)) >> 2] * +r[(1848 + ((62 - a) << 2)) >> 2];
          h = t - u;
          t = u + t;
          r[(c + 496) >> 2] = t + f;
          r[(c + 504) >> 2] = f - t;
          r[(c + 500) >> 2] = h + n;
          r[(c + 508) >> 2] = n - h;
          if ((w | 0) <= 0) break;
          else w = (w + -1) | 0;
        }
        K[e[_ >> 2] & 3](v, 128);
        if ((m | 0) == 3) break;
        else v = (v + 1024) | 0;
      }
      return;
    }
    function Ft(w, m, c, n) {
      w = w | 0;
      m = m | 0;
      c = c | 0;
      n = n | 0;
      var h = 0,
        i = 0,
        d = 0,
        a = 0,
        s = 0,
        u = 0,
        l = 0,
        t = 0,
        f = 0;
      n = e[(n + (c << 2)) >> 2] | 0;
      c = (m + 2048) | 0;
      h = 127;
      while (1) {
        t = o[(1720 + h) >> 0] | 0;
        l = +r[(n + (t << 2)) >> 2] * +r[(2360 + (t << 2)) >> 2];
        i = t | 512;
        a = +r[(n + (i << 2)) >> 2] * +r[(2360 + (i << 2)) >> 2];
        s = l - a;
        l = a + l;
        i = t | 256;
        a = +r[(n + (i << 2)) >> 2] * +r[(2360 + (i << 2)) >> 2];
        i = t | 768;
        d = +r[(n + (i << 2)) >> 2] * +r[(2360 + (i << 2)) >> 2];
        u = a - d;
        a = d + a;
        i = c;
        c = (c + -16) | 0;
        r[c >> 2] = a + l;
        r[(i + -8) >> 2] = l - a;
        r[(i + -12) >> 2] = u + s;
        r[(i + -4) >> 2] = s - u;
        f = (t + 1) | 0;
        u = +r[(n + (f << 2)) >> 2] * +r[(2360 + (f << 2)) >> 2];
        f = (t + 513) | 0;
        s = +r[(n + (f << 2)) >> 2] * +r[(2360 + (f << 2)) >> 2];
        a = u - s;
        u = s + u;
        f = (t + 257) | 0;
        s = +r[(n + (f << 2)) >> 2] * +r[(2360 + (f << 2)) >> 2];
        t = (t + 769) | 0;
        l = +r[(n + (t << 2)) >> 2] * +r[(2360 + (t << 2)) >> 2];
        d = s - l;
        s = l + s;
        r[(i + 2032) >> 2] = s + u;
        r[(i + 2040) >> 2] = u - s;
        r[(i + 2036) >> 2] = d + a;
        r[(i + 2044) >> 2] = a - d;
        if ((h | 0) <= 0) break;
        else h = (h + -1) | 0;
      }
      K[e[(w + 85820) >> 2] & 3](m, 512);
      return;
    }
    function Ot(t) {
      t = t | 0;
      var i = 0,
        n = 0;
      i = 0;
      do {
        n = +(i | 0) + 0.5;
        r[(2360 + (i << 2)) >> 2] =
          0.42 - +N(+(n * 0.006135923151542565)) * 0.5 + +N(+(n * 0.01227184630308513)) * 0.08;
        i = (i + 1) | 0;
      } while ((i | 0) != 1024);
      i = 0;
      do {
        r[(1848 + (i << 2)) >> 2] = (1 - +N(+((+(i | 0) + 0.5) * 0.02454369260617026))) * 0.5;
        i = (i + 1) | 0;
      } while ((i | 0) != 128);
      e[(t + 85820) >> 2] = 1;
      return;
    }
    function Rt(w, n) {
      w = w | 0;
      n = n | 0;
      var o = 0,
        s = 0,
        t = 0,
        a = 0,
        h = 0,
        e = 0,
        l = 0,
        f = 0,
        A = 0,
        O = 0,
        T = 0,
        y = 0,
        g = 0,
        u = 0,
        p = 0,
        _ = 0,
        d = 0,
        v = 0,
        M = 0,
        b = 0,
        k = 0,
        D = 0,
        S = 0,
        F = 0,
        i = 0,
        R = 0,
        c = 0,
        E = 0,
        N = 0,
        m = 0;
      A = n << 1;
      O = (w + (A << 2)) | 0;
      u = 4;
      _ = 6456;
      while (1) {
        T = u >> 1;
        y = u << 1;
        g = (u * 3) | 0;
        p = u;
        u = u << 2;
        n = w;
        o = (w + (T << 2)) | 0;
        while (1) {
          s = +r[n >> 2];
          l = (n + (p << 2)) | 0;
          e = +r[l >> 2];
          a = s - e;
          s = e + s;
          d = (n + (y << 2)) | 0;
          e = +r[d >> 2];
          h = (n + (g << 2)) | 0;
          f = +r[h >> 2];
          t = e - f;
          e = f + e;
          r[d >> 2] = s - e;
          r[n >> 2] = e + s;
          r[h >> 2] = a - t;
          r[l >> 2] = t + a;
          a = +r[o >> 2];
          l = (o + (p << 2)) | 0;
          t = +r[l >> 2];
          s = a - t;
          a = t + a;
          h = (o + (g << 2)) | 0;
          t = +r[h >> 2] * 1.4142135623730951;
          d = (o + (y << 2)) | 0;
          e = +r[d >> 2] * 1.4142135623730951;
          r[d >> 2] = a - e;
          r[o >> 2] = e + a;
          r[h >> 2] = s - t;
          r[l >> 2] = t + s;
          n = (n + (u << 2)) | 0;
          if (n >>> 0 >= O >>> 0) break;
          else o = (o + (u << 2)) | 0;
        }
        h = (_ + 4) | 0;
        if ((p | 0) > 2) {
          e = +r[_ >> 2];
          l = 1;
          f = +r[h >> 2];
          while (1) {
            t = f * 2;
            a = 1 - t * f;
            t = t * e;
            o = (w + (l << 2)) | 0;
            n = (w + ((p - l) << 2)) | 0;
            while (1) {
              d = (o + (p << 2)) | 0;
              i = +r[d >> 2];
              F = (n + (p << 2)) | 0;
              c = +r[F >> 2];
              b = i * t - c * a;
              i = c * t + i * a;
              c = +r[o >> 2];
              s = c - i;
              c = i + c;
              i = +r[n >> 2];
              v = i - b;
              b = i + b;
              M = (o + (g << 2)) | 0;
              i = +r[M >> 2];
              R = (n + (g << 2)) | 0;
              m = +r[R >> 2];
              S = i * t - m * a;
              i = m * t + i * a;
              N = (o + (y << 2)) | 0;
              m = +r[N >> 2];
              k = m - i;
              m = i + m;
              D = (n + (y << 2)) | 0;
              i = +r[D >> 2];
              E = i - S;
              S = i + S;
              i = m * f - E * e;
              E = m * e + E * f;
              r[N >> 2] = c - E;
              r[o >> 2] = E + c;
              r[R >> 2] = v - i;
              r[F >> 2] = i + v;
              v = S * e - k * f;
              k = S * f + k * e;
              r[D >> 2] = b - k;
              r[n >> 2] = k + b;
              r[M >> 2] = s - v;
              r[d >> 2] = v + s;
              o = (o + (u << 2)) | 0;
              if (o >>> 0 >= O >>> 0) break;
              else n = (n + (u << 2)) | 0;
            }
            s = +r[_ >> 2];
            t = +r[h >> 2];
            a = t * e + s * f;
            l = (l + 1) | 0;
            if ((l | 0) >= (T | 0)) break;
            else {
              e = s * e - t * f;
              f = a;
            }
          }
        }
        if ((u | 0) >= (A | 0)) break;
        else _ = (_ + 8) | 0;
      }
      return;
    }
    function or(u, p, d) {
      u = u | 0;
      p = p | 0;
      d = d | 0;
      var a = 0,
        s = 0,
        r = 0,
        f = 0,
        y = 0,
        n = 0,
        o = 0,
        l = 0,
        h = 0,
        m = 0,
        w = 0,
        E = 0,
        F = 0,
        k = 0,
        _ = 0,
        M = 0,
        g = 0,
        v = 0,
        b = 0;
      v = t;
      t = (t + 1040) | 0;
      a = v;
      m = (v + 8) | 0;
      if (!u) {
        u = 0;
        t = v;
        return u | 0;
      }
      s = (u + 288) | 0;
      _ = e[s >> 2] | 0;
      if (!_) {
        u = 0;
        t = v;
        return u | 0;
      }
      E = (_ + 85696) | 0;
      r = e[E >> 2] | 0;
      if (r & 4) {
        u = 0;
        t = v;
        return u | 0;
      }
      n = e[(_ + 85704) >> 2] | 0;
      if (!n) f = 0;
      else f = D(n | 0) | 0;
      n = e[(_ + 85708) >> 2] | 0;
      if (!n) h = 0;
      else h = D(n | 0) | 0;
      o = e[(_ + 85712) >> 2] | 0;
      if (!o) o = 0;
      else o = D(o | 0) | 0;
      l = e[(_ + 85716) >> 2] | 0;
      if (!l) l = 0;
      else l = D(l | 0) | 0;
      if (
        !((f >>> 0 > 30) | (h >>> 0 > 30) | (o >>> 0 > 30) | (l >>> 0 > 30))
          ? (((r & 10) | 0) == 0) & ((l >>> 0 < 29) | ((e[(_ + 85720) >> 2] | 0) == 0))
          : 0
      ) {
        u = 0;
        t = v;
        return u | 0;
      }
      f = e[(u + 4) >> 2] | 0;
      if ((f | 0) != -1) {
        y = (+(f >>> 0) * 1e3) / +(e[(_ + 60) >> 2] | 0);
        if (!(y > 4294967295))
          if (y < 0) f = 0;
          else f = ~~y >>> 0;
        else f = -1;
        e[a >> 2] = f;
        gr(m, 6496, a) | 0;
        f = e[s >> 2] | 0;
        if (f) {
          h = (f + 85696) | 0;
          l = e[h >> 2] | 0;
          Pt(u, 1414284622, 6488, 0, m) | 0;
          e[h >> 2] = l;
        }
      }
      F = (_ + 85728) | 0;
      do
        if ((e[F >> 2] | 0) != 0 ? ((w = e[(_ + 85732) >> 2] | 0), (w | 0) != 0) : 0) {
          f = e[(_ + 85740) >> 2] | 0;
          if ((f | 0) == 2) f = 6504;
          else if ((f | 0) == 3) f = 6520;
          else if ((f | 0) == 1) f = 6536;
          else {
            k = 0;
            f = 10;
            break;
          }
          k = f;
          f = ((D(f | 0) | 0) + 24 + w) | 0;
        } else {
          k = 0;
          f = 10;
        }
      while (0);
      u = (_ + 85744) | 0;
      r = e[u >> 2] | 0;
      if (r)
        do {
          s = e[(r + 4) >> 2] | 0;
          do
            if (((s | 0) == 1431520594) | ((s | 0) == 1129270605)) {
              s = e[(r + 16) >> 2] | 0;
              s = (e[(r + 20) >> 2] | 0) == 1 ? ((s << 1) + 16) | 0 : (s + 15) | 0;
              n = e[(r + 28) >> 2] | 0;
              if ((e[(r + 32) >> 2] | 0) == 1) {
                s = (s + (n << 1)) | 0;
                break;
              } else {
                s = (s + n) | 0;
                break;
              }
            } else {
              m = s & -16777216;
              if (!(((m | 0) == 0) | ((m | 0) == 1459617792))) {
                o = e[(r + 16) >> 2] | 0;
                n = (o | 0) != 0;
                s = e[(r + 28) >> 2] | 0;
                if ((e[(r + 32) >> 2] | 0) == 1) {
                  s = ((n ? ((o << 1) + 13) | 0 : 11) + (s << 1)) | 0;
                  break;
                } else {
                  s = ((n ? (o + 12) | 0 : 11) + s) | 0;
                  break;
                }
              }
              s = e[(r + 16) >> 2] | 0;
              do
                if (s)
                  if ((e[(r + 20) >> 2] | 0) == 1) {
                    s = ((s << 1) + 13) | 0;
                    break;
                  } else {
                    s = (s + 12) | 0;
                    break;
                  }
                else s = 10;
              while (0);
              n = e[(r + 28) >> 2] | 0;
              if (n)
                if ((e[(r + 32) >> 2] | 0) == 1) {
                  s = (s + -1 + n) | 0;
                  break;
                } else {
                  s = (n + s) | 0;
                  break;
                }
            }
          while (0);
          f = (s + f) | 0;
          r = e[r >> 2] | 0;
        } while ((r | 0) != 0);
      if (!(e[E >> 2] & 32)) E = f;
      else E = ((e[(_ + 85736) >> 2] | 0) + f) | 0;
      if (E >>> 0 > d >>> 0) {
        u = E;
        t = v;
        return u | 0;
      }
      if (!p) {
        u = 0;
        t = v;
        return u | 0;
      }
      i[p >> 0] = 73;
      i[(p + 1) >> 0] = 68;
      i[(p + 2) >> 0] = 51;
      i[(p + 3) >> 0] = 3;
      i[(p + 4) >> 0] = 0;
      i[(p + 5) >> 0] = 0;
      f = (E + -10) | 0;
      i[(p + 6) >> 0] = (f >>> 21) & 127;
      i[(p + 7) >> 0] = (f >>> 14) & 127;
      i[(p + 8) >> 0] = (f >>> 7) & 127;
      a = (p + 10) | 0;
      i[(p + 9) >> 0] = f & 127;
      f = e[u >> 2] | 0;
      if (f) {
        d = a;
        while (1) {
          u = e[(f + 4) >> 2] | 0;
          do
            if (((u | 0) == 1431520594) | ((u | 0) == 1129270605)) {
              h = (f + 20) | 0;
              r = (f + 16) | 0;
              o = e[r >> 2] | 0;
              s = (f + 32) | 0;
              m = (f + 28) | 0;
              o =
                ((e[m >> 2] << (((e[s >> 2] | 0) == 1) & 1)) +
                  ((e[h >> 2] | 0) == 1 ? ((o << 1) + 16) | 0 : (o + 15) | 0)) |
                0;
              if (o >>> 0 > 10) {
                i[(d + 3) >> 0] = u;
                i[(d + 2) >> 0] = u >>> 8;
                i[(d + 1) >> 0] = u >>> 16;
                i[d >> 0] = u >>> 24;
                w = (o + -10) | 0;
                i[(d + 7) >> 0] = w;
                i[(d + 6) >> 0] = w >>> 8;
                i[(d + 5) >> 0] = w >>> 16;
                i[(d + 4) >> 0] = w >>> 24;
                i[(d + 8) >> 0] = 0;
                i[(d + 9) >> 0] = 0;
                w = (f + 24) | 0;
                i[(d + 10) >> 0] = ((e[s >> 2] | 0) == 1) & 1;
                i[(d + 11) >> 0] = i[(f + 8) >> 0] | 0;
                i[(d + 12) >> 0] = i[(f + 9) >> 0] | 0;
                n = (d + 14) | 0;
                i[(d + 13) >> 0] = i[(f + 10) >> 0] | 0;
                l = (f + 12) | 0;
                if ((e[h >> 2] | 0) == 1) {
                  h = e[l >> 2] | 0;
                  l = e[r >> 2] | 0;
                  if (!l) {
                    l = 15;
                    o = 16;
                  } else {
                    a = S[h >> 1] | 0;
                    o = (a << 16) >> 16 == -2;
                    r = l << 1;
                    l = (l + -1) | 0;
                    u = (a & 65535) >>> 8;
                    i[n >> 0] = o ? u : a;
                    i[(d + 15) >> 0] = o ? -2 : u & 255;
                    if (l)
                      do {
                        h = (h + 2) | 0;
                        u = n;
                        n = (n + 2) | 0;
                        b = S[h >> 1] | 0;
                        l = (l + -1) | 0;
                        a = (b & 65535) >>> 8;
                        i[n >> 0] = o ? a : b;
                        i[(u + 3) >> 0] = o ? b : a;
                      } while ((l | 0) != 0);
                    n = (d + (r + 14)) | 0;
                    l = (r + 15) | 0;
                    o = (r + 16) | 0;
                  }
                  i[n >> 0] = 0;
                  i[(d + l) >> 0] = 0;
                } else {
                  h = e[r >> 2] | 0;
                  if (!h) o = 15;
                  else {
                    l = e[l >> 2] | 0;
                    o = h;
                    while (1) {
                      o = (o + -1) | 0;
                      i[n >> 0] = i[l >> 0] | 0;
                      if (!o) break;
                      else {
                        l = (l + 1) | 0;
                        n = (n + 1) | 0;
                      }
                    }
                    n = (d + (h + 14)) | 0;
                    o = (h + 15) | 0;
                  }
                  i[n >> 0] = 0;
                }
                a = (d + o) | 0;
                if ((e[s >> 2] | 0) == 1) {
                  l = e[w >> 2] | 0;
                  n = e[m >> 2] | 0;
                  if (!n) break;
                  m = S[l >> 1] | 0;
                  h = (m << 16) >> 16 == -2;
                  r = n << 1;
                  n = (n + -1) | 0;
                  u = (m & 65535) >>> 8;
                  i[a >> 0] = h ? u : m;
                  i[(d + (o + 1)) >> 0] = h ? -2 : u & 255;
                  if (n)
                    do {
                      l = (l + 2) | 0;
                      u = a;
                      a = (a + 2) | 0;
                      s = S[l >> 1] | 0;
                      n = (n + -1) | 0;
                      m = (s & 65535) >>> 8;
                      i[a >> 0] = h ? m : s;
                      i[(u + 3) >> 0] = h ? s : m;
                    } while ((n | 0) != 0);
                  a = (d + (r + o)) | 0;
                  break;
                } else {
                  l = e[m >> 2] | 0;
                  if (!l) break;
                  r = e[w >> 2] | 0;
                  n = l;
                  while (1) {
                    n = (n + -1) | 0;
                    i[a >> 0] = i[r >> 0] | 0;
                    if (!n) break;
                    else {
                      r = (r + 1) | 0;
                      a = (a + 1) | 0;
                    }
                  }
                  a = (d + (l + o)) | 0;
                  break;
                }
              } else a = d;
            } else {
              m = u & -16777216;
              if (!(((m | 0) == 0) | ((m | 0) == 1459617792))) {
                w = (f + 32) | 0;
                h = (f + 16) | 0;
                l = e[h >> 2] | 0;
                o = (l | 0) != 0;
                s = (f + 28) | 0;
                n = e[s >> 2] | 0;
                if ((e[w >> 2] | 0) == 1) o = ((o ? ((l << 1) + 13) | 0 : 11) + (n << 1)) | 0;
                else o = ((o ? (l + 12) | 0 : 11) + n) | 0;
                if (o >>> 0 <= 10) {
                  a = d;
                  break;
                }
                i[(d + 3) >> 0] = u;
                i[(d + 2) >> 0] = u >>> 8;
                i[(d + 1) >> 0] = u >>> 16;
                i[d >> 0] = u >>> 24;
                u = (o + -10) | 0;
                i[(d + 7) >> 0] = u;
                i[(d + 6) >> 0] = u >>> 8;
                i[(d + 5) >> 0] = u >>> 16;
                i[(d + 4) >> 0] = u >>> 24;
                i[(d + 8) >> 0] = 0;
                i[(d + 9) >> 0] = 0;
                u = (f + 24) | 0;
                a = (d + 11) | 0;
                i[(d + 10) >> 0] = ((e[w >> 2] | 0) == 1) & 1;
                h = e[h >> 2] | 0;
                do
                  if (h) {
                    o = (f + 12) | 0;
                    if ((e[(f + 20) >> 2] | 0) == 1) {
                      l = e[o >> 2] | 0;
                      r = S[l >> 1] | 0;
                      o = (r << 16) >> 16 == -2;
                      n = h << 1;
                      h = (h + -1) | 0;
                      m = (r & 65535) >>> 8;
                      i[a >> 0] = o ? m : r;
                      i[(d + 12) >> 0] = o ? -2 : m & 255;
                      if (h)
                        do {
                          l = (l + 2) | 0;
                          m = a;
                          a = (a + 2) | 0;
                          b = S[l >> 1] | 0;
                          h = (h + -1) | 0;
                          r = (b & 65535) >>> 8;
                          i[a >> 0] = o ? r : b;
                          i[(m + 3) >> 0] = o ? b : r;
                        } while ((h | 0) != 0);
                      i[(d + (n + 11)) >> 0] = 0;
                      i[(d + (n + 12)) >> 0] = 0;
                      a = (d + (n + 13)) | 0;
                      break;
                    } else {
                      l = e[o >> 2] | 0;
                      o = h;
                      while (1) {
                        o = (o + -1) | 0;
                        i[a >> 0] = i[l >> 0] | 0;
                        if (!o) break;
                        else {
                          l = (l + 1) | 0;
                          a = (a + 1) | 0;
                        }
                      }
                      i[(d + (h + 11)) >> 0] = 0;
                      a = (d + (h + 12)) | 0;
                      break;
                    }
                  }
                while (0);
                if ((e[w >> 2] | 0) == 1) {
                  l = e[u >> 2] | 0;
                  n = e[s >> 2] | 0;
                  if (!n) break;
                  m = S[l >> 1] | 0;
                  h = (m << 16) >> 16 == -2;
                  s = n << 1;
                  o = (n + -1) | 0;
                  u = (m & 65535) >>> 8;
                  i[a >> 0] = h ? u : m;
                  i[(a + 1) >> 0] = h ? -2 : u & 255;
                  if (o) {
                    r = a;
                    n = l;
                    do {
                      n = (n + 2) | 0;
                      u = r;
                      r = (r + 2) | 0;
                      l = S[n >> 1] | 0;
                      o = (o + -1) | 0;
                      m = (l & 65535) >>> 8;
                      i[r >> 0] = h ? m : l;
                      i[(u + 3) >> 0] = h ? l : m;
                    } while ((o | 0) != 0);
                  }
                  a = (a + s) | 0;
                  break;
                } else {
                  o = e[s >> 2] | 0;
                  if (!o) break;
                  r = e[u >> 2] | 0;
                  s = a;
                  n = o;
                  while (1) {
                    n = (n + -1) | 0;
                    i[s >> 0] = i[r >> 0] | 0;
                    if (!n) break;
                    else {
                      r = (r + 1) | 0;
                      s = (s + 1) | 0;
                    }
                  }
                  a = (a + o) | 0;
                  break;
                }
              }
              h = (f + 16) | 0;
              r = e[h >> 2] | 0;
              do
                if (r)
                  if ((e[(f + 20) >> 2] | 0) == 1) {
                    n = ((r << 1) + 13) | 0;
                    break;
                  } else {
                    n = (r + 12) | 0;
                    break;
                  }
                else n = 10;
              while (0);
              w = (f + 28) | 0;
              r = e[w >> 2] | 0;
              do
                if (r)
                  if ((e[(f + 32) >> 2] | 0) == 1) {
                    n = (n + -1 + r) | 0;
                    break;
                  } else {
                    n = (r + n) | 0;
                    break;
                  }
              while (0);
              if (n >>> 0 <= 10) {
                a = d;
                break;
              }
              i[(d + 3) >> 0] = u;
              i[(d + 2) >> 0] = u >>> 8;
              i[(d + 1) >> 0] = u >>> 16;
              i[d >> 0] = u >>> 24;
              a = (n + -10) | 0;
              i[(d + 7) >> 0] = a;
              i[(d + 6) >> 0] = a >>> 8;
              i[(d + 5) >> 0] = a >>> 16;
              i[(d + 4) >> 0] = a >>> 24;
              i[(d + 8) >> 0] = 0;
              a = (d + 10) | 0;
              i[(d + 9) >> 0] = 0;
              do
                if (e[h >> 2] | 0) {
                  u = (f + 20) | 0;
                  s = (d + 11) | 0;
                  i[a >> 0] = ((e[u >> 2] | 0) == 1) & 1;
                  n = (f + 12) | 0;
                  if ((e[u >> 2] | 0) == 1) {
                    l = e[n >> 2] | 0;
                    o = e[h >> 2] | 0;
                    if (!o) {
                      r = 12;
                      n = 13;
                    } else {
                      m = S[l >> 1] | 0;
                      h = (m << 16) >> 16 == -2;
                      n = o << 1;
                      o = (o + -1) | 0;
                      u = (m & 65535) >>> 8;
                      i[s >> 0] = h ? u : m;
                      i[(d + 12) >> 0] = h ? -2 : u & 255;
                      if (o)
                        do {
                          l = (l + 2) | 0;
                          u = s;
                          s = (s + 2) | 0;
                          r = S[l >> 1] | 0;
                          o = (o + -1) | 0;
                          m = (r & 65535) >>> 8;
                          i[s >> 0] = h ? m : r;
                          i[(u + 3) >> 0] = h ? r : m;
                        } while ((o | 0) != 0);
                      s = (d + (n + 11)) | 0;
                      r = (n + 12) | 0;
                      n = (n + 13) | 0;
                    }
                    i[s >> 0] = 0;
                    i[(d + r) >> 0] = 0;
                    a = (d + n) | 0;
                    break;
                  } else {
                    l = e[h >> 2] | 0;
                    if (!l) r = 12;
                    else {
                      o = e[n >> 2] | 0;
                      n = l;
                      while (1) {
                        n = (n + -1) | 0;
                        i[s >> 0] = i[o >> 0] | 0;
                        if (!n) break;
                        else {
                          o = (o + 1) | 0;
                          s = (s + 1) | 0;
                        }
                      }
                      s = (d + (l + 11)) | 0;
                      r = (l + 12) | 0;
                    }
                    i[s >> 0] = 0;
                    a = (d + r) | 0;
                    break;
                  }
                }
              while (0);
              r = (f + 24) | 0;
              if ((e[(f + 32) >> 2] | 0) != 1) {
                o = e[w >> 2] | 0;
                if (!o) break;
                r = e[r >> 2] | 0;
                s = a;
                n = o;
                while (1) {
                  n = (n + -1) | 0;
                  i[s >> 0] = i[r >> 0] | 0;
                  if (!n) break;
                  else {
                    r = (r + 1) | 0;
                    s = (s + 1) | 0;
                  }
                }
                a = (a + o) | 0;
                break;
              }
              o = e[r >> 2] | 0;
              n = e[w >> 2] | 0;
              if (!n) break;
              r = S[o >> 1] | 0;
              if (((r << 16) >> 16 == -257) | ((r << 16) >> 16 == -2)) {
                n = (n + -1) | 0;
                if (!n) break;
                else o = (o + 2) | 0;
              }
              h = (r << 16) >> 16 == -2;
              s = a;
              l = n;
              while (1) {
                l = (l + -1) | 0;
                r = S[o >> 1] | 0;
                if (h) {
                  r = r & 65535;
                  r = ((r << 8) | (r >>> 8)) & 65535;
                }
                i[s >> 0] = ((r + -32) & 65535) > 223 ? 32 : r & 255;
                if (!l) break;
                else {
                  o = (o + 2) | 0;
                  s = (s + 1) | 0;
                }
              }
              a = (a + n) | 0;
            }
          while (0);
          f = e[f >> 2] | 0;
          if (!f) break;
          else d = a;
        }
      }
      if (
        (k | 0) != 0
          ? ((M = e[F >> 2] | 0), (g = e[(_ + 85732) >> 2] | 0), ((M | 0) != 0) & ((g | 0) != 0))
          : 0
      ) {
        i[(a + 3) >> 0] = 67;
        i[(a + 2) >> 0] = 73;
        i[(a + 1) >> 0] = 80;
        i[a >> 0] = 65;
        f = (g + 4 + (D(k | 0) | 0)) | 0;
        i[(a + 7) >> 0] = f;
        i[(a + 6) >> 0] = f >>> 8;
        i[(a + 5) >> 0] = f >>> 16;
        i[(a + 4) >> 0] = f >>> 24;
        i[(a + 8) >> 0] = 0;
        i[(a + 9) >> 0] = 0;
        f = (a + 11) | 0;
        i[(a + 10) >> 0] = 0;
        r = i[k >> 0] | 0;
        if ((r << 24) >> 24) {
          a = k;
          s = f;
          while (1) {
            a = (a + 1) | 0;
            f = (s + 1) | 0;
            i[s >> 0] = r;
            r = i[a >> 0] | 0;
            if (!((r << 24) >> 24)) break;
            else s = f;
          }
        }
        i[f >> 0] = 0;
        i[(f + 1) >> 0] = 0;
        i[(f + 2) >> 0] = 0;
        a = M;
        s = g;
        r = (f + 3) | 0;
        while (1) {
          s = (s + -1) | 0;
          i[r >> 0] = i[a >> 0] | 0;
          if (!s) break;
          else {
            a = (a + 1) | 0;
            r = (r + 1) | 0;
          }
        }
        a = (f + (g + 3)) | 0;
      }
      c(a | 0, 0, (E + p - a) | 0) | 0;
      u = E;
      t = v;
      return u | 0;
    }
    function Tt(r) {
      r = r | 0;
      var o = 0,
        n = 0,
        a = 0,
        t = 0;
      a = e[(r + 288) >> 2] | 0;
      if (((e[(a + 85696) >> 2] & 5) | 0) != 1) {
        r = 0;
        return r | 0;
      }
      o = or(r, 0, 0) | 0;
      t = k(o, 1) | 0;
      if (!t) {
        r = -1;
        return r | 0;
      }
      n = or(r, t, o) | 0;
      if (n >>> 0 > o >>> 0) {
        _(t);
        r = -1;
        return r | 0;
      }
      if (n) {
        r = 0;
        do {
          Pe(a, i[(t + r) >> 0] | 0, 1);
          r = (r + 1) | 0;
        } while ((r | 0) != (n | 0));
      }
      _(t);
      r = n;
      return r | 0;
    }
    function Nt(r, o, a) {
      r = r | 0;
      o = o | 0;
      a = a | 0;
      var n = 0,
        s = 0,
        f = 0,
        _ = 0,
        h = 0,
        E = 0,
        l = 0,
        m = 0,
        w = 0,
        d = 0,
        p = 0,
        u = 0,
        c = 0;
      c = t;
      t = (t + 16) | 0;
      l = c;
      m = (c + 4) | 0;
      if (!r) {
        l = 0;
        t = c;
        return l | 0;
      }
      if (a >>> 0 < 128) {
        l = 128;
        t = c;
        return l | 0;
      }
      u = e[(r + 288) >> 2] | 0;
      if (((o | 0) == 0) | ((u | 0) == 0)) {
        l = 0;
        t = c;
        return l | 0;
      }
      r = e[(u + 85696) >> 2] | 0;
      if (((r & 9) | 0) != 1) {
        l = 0;
        t = c;
        return l | 0;
      }
      i[o >> 0] = 84;
      i[(o + 1) >> 0] = 65;
      i[(o + 2) >> 0] = 71;
      d = (r << 1) & 32;
      n = (o + 3) | 0;
      f = e[(u + 85704) >> 2] | 0;
      r = 30;
      e: while (1) {
        a = (f | 0) == 0;
        s = n;
        while (1) {
          r = (r + -1) | 0;
          if (!a ? ((_ = i[f >> 0] | 0), (_ << 24) >> 24 != 0) : 0) {
            a = _;
            break;
          }
          n = (s + 1) | 0;
          i[s >> 0] = d;
          if (!r) break e;
          else s = n;
        }
        n = (s + 1) | 0;
        i[s >> 0] = a;
        if (!r) break;
        else f = (f + 1) | 0;
      }
      f = e[(u + 85708) >> 2] | 0;
      r = 30;
      e: while (1) {
        s = (f | 0) == 0;
        while (1) {
          r = (r + -1) | 0;
          if (!s ? ((h = i[f >> 0] | 0), (h << 24) >> 24 != 0) : 0) {
            o = n;
            a = h;
            break;
          }
          a = (n + 1) | 0;
          i[n >> 0] = d;
          if (!r) {
            n = a;
            break e;
          } else n = a;
        }
        n = (o + 1) | 0;
        i[o >> 0] = a;
        if (!r) break;
        else f = (f + 1) | 0;
      }
      s = e[(u + 85712) >> 2] | 0;
      r = 30;
      e: while (1) {
        o = (s | 0) == 0;
        while (1) {
          r = (r + -1) | 0;
          if (!o ? ((E = i[s >> 0] | 0), (E << 24) >> 24 != 0) : 0) {
            o = n;
            a = E;
            break;
          }
          a = (n + 1) | 0;
          i[n >> 0] = d;
          if (!r) {
            n = a;
            break e;
          } else n = a;
        }
        n = (o + 1) | 0;
        i[o >> 0] = a;
        if (!r) break;
        else s = (s + 1) | 0;
      }
      s = (u + 85700) | 0;
      e[l >> 2] = e[s >> 2];
      gr(m, 6552, l) | 0;
      s = (e[s >> 2] | 0) != 0 ? m : 0;
      a = 4;
      e: while (1) {
        o = (s | 0) == 0;
        while (1) {
          a = (a + -1) | 0;
          if (!o ? ((w = i[s >> 0] | 0), (w << 24) >> 24 != 0) : 0) {
            o = n;
            r = w;
            break;
          }
          r = (n + 1) | 0;
          i[n >> 0] = d;
          if (!a) {
            n = r;
            break e;
          } else n = r;
        }
        n = (o + 1) | 0;
        i[o >> 0] = r;
        if (!a) break;
        else s = (s + 1) | 0;
      }
      f = (u + 85720) | 0;
      s = e[(u + 85716) >> 2] | 0;
      a = (e[f >> 2] | 0) != 0 ? 28 : 30;
      e: while (1) {
        r = (s | 0) == 0;
        o = n;
        while (1) {
          a = (a + -1) | 0;
          if (!r ? ((p = i[s >> 0] | 0), (p << 24) >> 24 != 0) : 0) {
            r = p;
            break;
          }
          n = (o + 1) | 0;
          i[o >> 0] = d;
          if (!a) break e;
          else o = n;
        }
        n = (o + 1) | 0;
        i[o >> 0] = r;
        if (!a) break;
        else s = (s + 1) | 0;
      }
      if (e[f >> 2] | 0) {
        i[n >> 0] = 0;
        i[(o + 2) >> 0] = e[f >> 2];
        n = (o + 3) | 0;
      }
      i[n >> 0] = e[(u + 85724) >> 2];
      l = 128;
      t = c;
      return l | 0;
    }
    function Dt(r) {
      r = r | 0;
      var n = 0,
        s = 0,
        a = 0,
        o = 0;
      o = t;
      t = (t + 128) | 0;
      a = o;
      s = e[(r + 288) >> 2] | 0;
      r = Nt(r, a, 128) | 0;
      if (((r + -1) | 0) >>> 0 > 127) {
        r = 0;
        t = o;
        return r | 0;
      } else n = 0;
      do {
        Pe(s, i[(a + n) >> 0] | 0, 1);
        n = (n + 1) | 0;
      } while ((n | 0) != (r | 0));
      t = o;
      return r | 0;
    }
    function Pt(r, a, u, d, w) {
      r = r | 0;
      a = a | 0;
      u = u | 0;
      d = d | 0;
      w = w | 0;
      var t = 0,
        o = 0,
        n = 0,
        p = 0,
        E = 0,
        f = 0,
        s = 0,
        h = 0,
        m = 0;
      if (!r) {
        s = -255;
        return s | 0;
      }
      h = e[(r + 288) >> 2] | 0;
      if (!h) {
        s = -255;
        return s | 0;
      }
      p = (h + 85744) | 0;
      r = e[p >> 2] | 0;
      e: do
        if (!r) r = 0;
        else
          while (1) {
            if ((e[(r + 4) >> 2] | 0) == (a | 0)) break e;
            r = e[r >> 2] | 0;
            if (!r) {
              r = 0;
              break;
            }
          }
      while (0);
      e: do
        if (
          ((a | 0) == 1347570006) |
          ((a | 0) == 1196575044) |
          ((a | 0) == 1162756946) |
          ((a | 0) == 1279872587) |
          ((a | 0) == 1095061059) |
          ((a | 0) == 1346588244) |
          ((a | 0) == 1195724610) |
          ((a | 0) == 1095780675) |
          ((a | 0) == 1398361172) |
          ((a | 0) == 1129270605) |
          ((a | 0) == 1465407576) |
          ((a | 0) == 1415075928)
        )
          if (!r) f = 25;
          else {
            if (!d)
              r: while (1) {
                if ((tr((r + 8) | 0, u) | 0) != 0 ? (e[(r + 16) >> 2] | 0) == 0 : 0) {
                  n = r;
                  break e;
                }
                r = e[r >> 2] | 0;
                if (!r) {
                  f = 25;
                  break e;
                }
                while (1) {
                  if ((e[(r + 4) >> 2] | 0) == (a | 0)) continue r;
                  r = e[r >> 2] | 0;
                  if (!r) {
                    f = 25;
                    break e;
                  }
                }
              }
            r: while (1) {
              i: do
                if (tr((r + 8) | 0, u) | 0) {
                  n = e[(r + 16) >> 2] | 0;
                  o = (n | 0) == 0;
                  if ((e[(r + 20) >> 2] | 0) == 1)
                    if (o) {
                      n = r;
                      break e;
                    } else break;
                  if (o) {
                    n = r;
                    break e;
                  }
                  o = e[(r + 12) >> 2] | 0;
                  t = 0;
                  while (1) {
                    if ((i[(o + t) >> 0] | 0) != (i[(d + t) >> 0] | 0)) break i;
                    t = (t + 1) | 0;
                    if (t >>> 0 >= n >>> 0) {
                      f = 24;
                      break e;
                    }
                  }
                }
              while (0);
              r = e[((r | 0) == 0 ? p : r) >> 2] | 0;
              if (!r) {
                f = 25;
                break e;
              }
              while (1) {
                if ((e[(r + 4) >> 2] | 0) == (a | 0)) continue r;
                r = e[r >> 2] | 0;
                if (!r) {
                  f = 25;
                  break e;
                }
              }
            }
          }
        else f = 24;
      while (0);
      if ((f | 0) == 24)
        if (!r) f = 25;
        else n = r;
      if ((f | 0) == 25) {
        r = k(1, 36) | 0;
        if (!r) {
          s = -254;
          return s | 0;
        }
        o = (h + 85748) | 0;
        t = e[o >> 2] | 0;
        if ((t | 0) != 0 ? (e[p >> 2] | 0) != 0 : 0) e[t >> 2] = r;
        else e[p >> 2] = r;
        e[o >> 2] = r;
        n = r;
      }
      e[(n + 4) >> 2] = a;
      r = (n + 8) | 0;
      do
        if ((u | 0) != 0 ? ((E = i[u >> 0] | 0), (E << 24) >> 24 != 0) : 0) {
          i[r >> 0] = E;
          if (i[u >> 0] | 0) {
            i[(n + 9) >> 0] = i[(u + 1) >> 0] | 0;
            if (!(i[u >> 0] | 0)) o = 2;
            else {
              i[(n + 10) >> 0] = i[(u + 2) >> 0] | 0;
              break;
            }
          } else o = 1;
          c((n + 8 + o) | 0, 32, (o ^ 3) | 0) | 0;
        } else f = 33;
      while (0);
      if ((f | 0) == 33) {
        i[r >> 0] = 88;
        i[(n + 9) >> 0] = 88;
        i[(n + 10) >> 0] = 88;
      }
      r = (n + 12) | 0;
      _(e[r >> 2] | 0);
      e[r >> 2] = 0;
      if (d) {
        t = 0;
        while (1) {
          o = (t + 1) | 0;
          if (!(i[(d + t) >> 0] | 0)) break;
          else t = o;
        }
        if ((t | 0) != 0 ? ((s = k(o, 1) | 0), (e[r >> 2] = s), (s | 0) != 0) : 0) {
          l(s | 0, d | 0, t | 0) | 0;
          i[(s + t) >> 0] = 0;
        } else t = 0;
      } else t = 0;
      e[(n + 16) >> 2] = t;
      e[(n + 20) >> 2] = 0;
      r = (n + 24) | 0;
      _(e[r >> 2] | 0);
      e[r >> 2] = 0;
      if (w) {
        t = 0;
        while (1) {
          o = (t + 1) | 0;
          if (!(i[(w + t) >> 0] | 0)) break;
          else t = o;
        }
        if ((t | 0) != 0 ? ((m = k(o, 1) | 0), (e[r >> 2] = m), (m | 0) != 0) : 0) {
          l(m | 0, w | 0, t | 0) | 0;
          i[(m + t) >> 0] = 0;
        } else t = 0;
      } else t = 0;
      e[(n + 28) >> 2] = t;
      e[(n + 32) >> 2] = 0;
      s = (h + 85696) | 0;
      e[s >> 2] = e[s >> 2] | 3;
      s = 0;
      return s | 0;
    }
    function tr(n, r) {
      n = n | 0;
      r = r | 0;
      var e = 0,
        t = 0,
        o = 0;
      if ((r | 0) != 0 ? ((e = i[r >> 0] | 0), (e << 24) >> 24 != 0) : 0) {
        t = i[(r + 1) >> 0] | 0;
        r = i[(r + 2) >> 0] | 0;
      } else {
        e = 88;
        t = 88;
        r = 88;
      }
      o = q(i[n >> 0] | 0) | 0;
      e = q((e << 24) >> 24) | 0;
      if (((((e & 255) << 24) >> 24 < 32 ? 32 : e) ^ (((o & 255) << 24) >> 24 < 32 ? 32 : o)) & 255)
        return 0;
      e = q(i[(n + 1) >> 0] | 0) | 0;
      t = q((t << 24) >> 24) | 0;
      if (
        !(((((t & 255) << 24) >> 24 < 32 ? 32 : t) ^ (((e & 255) << 24) >> 24 < 32 ? 32 : e)) & 255)
      ) {
        e = q(i[(n + 2) >> 0] | 0) | 0;
        r = q((r << 24) >> 24) | 0;
        return (
          (((((((r & 255) << 24) >> 24 < 32 ? 32 : r) ^ (((e & 255) << 24) >> 24 < 32 ? 32 : e)) &
            255) |
            0) ==
            0) |
          0
        );
      } else return 0;
      return 0;
    }
    function w(r) {
      r = r | 0;
      if (!r) {
        r = 0;
        return r | 0;
      }
      r = ((e[r >> 2] | 0) == -487877) & 1;
      return r | 0;
    }
    function At(f) {
      f = f | 0;
      var w = 0,
        S = 0,
        _ = 0,
        F = 0,
        E = 0,
        u = 0,
        a = 0,
        l = 0,
        i = 0,
        m = 0,
        h = 0,
        x = 0,
        U = 0,
        T = 0,
        g = 0,
        z = 0,
        I = 0,
        D = 0,
        B = 0,
        R = 0,
        y = 0,
        L = 0,
        M = 0,
        H = 0,
        A = 0,
        v = 0,
        b = 0,
        O = 0,
        o = 0,
        P = 0,
        C = 0;
      C = t;
      t = (t + 16) | 0;
      R = C;
      O = (f + 288) | 0;
      o = e[O >> 2] | 0;
      P = (o + 16) | 0;
      e[o >> 2] = 0;
      e[(o + 124) >> 2] = e[(f + 180) >> 2];
      b = e[(f + 32) >> 2] | 0;
      e[(o + 140) >> 2] = b;
      if (b) e[(f + 36) >> 2] = 0;
      if (e[(o + 85804) >> 2] | 0) e[(f + 36) >> 2] = 0;
      z = (f + 272) | 0;
      e[(o + 85828) >> 2] = e[z >> 2];
      I = (f + 276) | 0;
      e[(o + 85832) >> 2] = e[I >> 2];
      D = (f + 280) | 0;
      e[(o + 85836) >> 2] = e[D >> 2];
      if (!(e[(f + 296) >> 2] | 0)) {
        b = (o + 85756) | 0;
        i = e[b >> 2] & -3;
        e[b >> 2] = i;
      } else {
        i = Yi() | 0;
        b = (o + 85756) | 0;
        i = (e[b >> 2] & -3) | ((i << 1) & 2);
        e[b >> 2] = i;
      }
      if (!(e[(f + 292) >> 2] | 0)) {
        i = i & -2;
        e[(o + 85756) >> 2] = i;
      } else {
        i = Wi() | 0;
        b = (o + 85756) | 0;
        i = (e[b >> 2] & -2) | (i & 1);
        e[b >> 2] = i;
      }
      if (!(e[(f + 300) >> 2] | 0)) e[(o + 85756) >> 2] = i & -13;
      else {
        v = Ki() | 0;
        b = (o + 85756) | 0;
        e[b >> 2] = (e[b >> 2] & -5) | ((v << 2) & 4);
        v = Gi() | 0;
        e[b >> 2] = (e[b >> 2] & -9) | ((v << 3) & 8);
      }
      H = (o + 85796) | 0;
      if ((e[H >> 2] | 0) == 0 ? ((b = k(1, 2772) | 0), (e[H >> 2] = b), (b | 0) == 0) : 0) {
        O = -2;
        t = C;
        return O | 0;
      }
      g = (o + 85676) | 0;
      if ((e[g >> 2] | 0) == 0 ? ((b = k(1, 134792) | 0), (e[g >> 2] = b), (b | 0) == 0) : 0) {
        Y(o);
        e[O >> 2] = 0;
        O = -2;
        t = C;
        return O | 0;
      }
      L = (o + 160) | 0;
      e[L >> 2] = e[(f + 120) >> 2];
      e[(o + 164) >> 2] = e[(f + 104) >> 2];
      e[(o + 168) >> 2] = e[(f + 108) >> 2];
      e[(o + 172) >> 2] = e[(f + 112) >> 2];
      e[(o + 176) >> 2] = e[(f + 116) >> 2];
      v = e[(f + 8) >> 2] | 0;
      b = (o + 68) | 0;
      e[b >> 2] = v;
      B = (f + 48) | 0;
      if ((v | 0) != 1) {
        v = (e[B >> 2] | 0) == 3;
        i = v ? 1 : 2;
        a = (o + 72) | 0;
        e[a >> 2] = i;
        if (v) A = 23;
        else {
          u = e[(f + 52) >> 2] | 0;
          v = a;
        }
      } else {
        e[B >> 2] = 3;
        a = (o + 72) | 0;
        e[a >> 2] = 1;
        i = 1;
        A = 23;
      }
      if ((A | 0) == 23) {
        e[(f + 52) >> 2] = 0;
        u = 0;
        v = a;
      }
      e[(o + 80) >> 2] = u;
      M = (f + 156) | 0;
      a = e[M >> 2] | 0;
      if (((a | 0) == 4) | ((a | 0) == 1)) A = 29;
      else if (!a) {
        a = e[(f + 168) >> 2] | 0;
        if ((a | 0) != 128 ? ((m = (f + 96) | 0), (e[m >> 2] | 0) == 0) : 0) e[m >> 2] = a;
        S = (o + 152) | 0;
        e[S >> 2] = e[(f + 56) >> 2];
        w = (f + 96) | 0;
        do
          if (!(e[w >> 2] | 0)) {
            a = (f + 100) | 0;
            l = +r[a >> 2];
            E = +p(+l);
            if ((l != l) | (0 != 0) | (l == 0)) {
              if (!(l == 0)) break;
            } else if (!(E <= E * 9.999999974752427e-7)) break;
            r[a >> 2] = 11.024999618530273;
          }
        while (0);
        a = (f + 100) | 0;
        l = +r[a >> 2];
        if (l > 0) {
          u = (f + 16) | 0;
          m = e[u >> 2] | 0;
          if (!m) {
            m = Ii(~~(+(e[(f + 12) >> 2] | 0) * 0.97)) | 0;
            e[u >> 2] = m;
            i = e[v >> 2] | 0;
            l = +r[a >> 2];
          }
          e[w >> 2] = ~~(+(s(m << 4, i) | 0) / (l * 1e3));
          e[(o + 20) >> 2] = _r(m, P) | 0;
          if (!(e[S >> 2] | 0)) e[w >> 2] = ie(e[w >> 2] | 0, e[P >> 2] | 0, e[u >> 2] | 0) | 0;
        }
      } else {
        e[(f + 56) >> 2] = 0;
        A = 29;
      }
      if ((A | 0) == 29) {
        S = (o + 152) | 0;
        e[S >> 2] = e[(f + 56) >> 2];
      }
      T = (f + 16) | 0;
      i = e[T >> 2] | 0;
      e: do
        if (!i) {
          y = e[M >> 2] | 0;
          if (((y | 0) == 4) | ((y | 0) == 1)) {
            w = (f + 164) | 0;
            h = (f + 160) | 0;
            F = +(e[w >> 2] | 0) + +r[h >> 2];
            a = e[(f + 12) >> 2] | 0;
            m = 2;
            while (1) {
              u = e[(6560 + ((m * 24) | 0)) >> 2] | 0;
              if ((a | 0) == (u | 0) ? ((_ = +r[(6560 + ((m * 24) | 0) + 4) >> 2]), F < _) : 0) {
                E = +r[(6560 + ((m * 24) | 0) + 12) >> 2] * (F / _);
                y = ~~E;
                e[w >> 2] = y;
                r[h >> 2] = E - +(y | 0);
              }
              if (
                ((a | 0) >= (u | 0)
                ? ((x = +r[(6560 + ((m * 24) | 0) + 4) >> 2]), x <= F)
                : 0)
                  ? ((U = +r[(6560 + ((m * 24) | 0) + 8) >> 2]), F < U)
                  : 0
              ) {
                E = x;
                l = U;
                break;
              }
              m = (m + 1) | 0;
              if ((m | 0) >= 9) break e;
            }
            _ = +r[(6560 + ((m * 24) | 0) + 12) >> 2];
            _ = ((+r[(6560 + ((m * 24) | 0) + 16) >> 2] - _) * (F - E)) / (l - E) + _;
            i = ~~_;
            e[w >> 2] = i;
            r[h >> 2] = _ - +(i | 0);
            e[T >> 2] = u;
            i = (f + 184) | 0;
            if (!(e[i >> 2] | 0)) {
              e[i >> 2] = -1;
              i = u;
            } else i = u;
          } else i = 0;
        } else {
          if ((i | 0) < 16e3) {
            y = (f + 168) | 0;
            w = e[y >> 2] | 0;
            w = (w | 0) > 8 ? w : 8;
            e[y >> 2] = (w | 0) < 64 ? w : 64;
            break;
          }
          a = (f + 168) | 0;
          u = e[a >> 2] | 0;
          if ((i | 0) < 32e3) {
            y = (u | 0) > 8 ? u : 8;
            e[a >> 2] = (y | 0) < 160 ? y : 160;
            break;
          } else {
            y = (u | 0) > 32 ? u : 32;
            e[a >> 2] = (y | 0) < 320 ? y : 320;
            break;
          }
        }
      while (0);
      h = (f + 184) | 0;
      a = e[h >> 2] | 0;
      if (!a) {
        switch (e[M >> 2] | 0) {
          case 0: {
            l = +(e[(6776 + ((Ue(e[(f + 96) >> 2] & 65535) | 0) << 3) + 4) >> 2] | 0);
            break;
          }
          case 3: {
            l = +(e[(6776 + ((Ue(e[(f + 168) >> 2] & 65535) | 0) << 3) + 4) >> 2] | 0);
            break;
          }
          case 2: {
            i = e[(f + 164) >> 2] | 0;
            if (i >>> 0 < 10) {
              l = +(e[(6912 + (i << 2)) >> 2] | 0);
              l = (+(e[(6912 + ((i + 1) << 2)) >> 2] | 0) - l) * +r[(f + 160) >> 2] + l;
            } else l = 19500;
            break;
          }
          case 1:
          case 4: {
            i = e[(f + 164) >> 2] | 0;
            if (i >>> 0 < 10) {
              l = +(e[(6960 + (i << 2)) >> 2] | 0);
              l = (+(e[(6960 + ((i + 1) << 2)) >> 2] | 0) - l) * +r[(f + 160) >> 2] + l;
            } else l = 21500;
            break;
          }
          default: {
            i = e[(f + 164) >> 2] | 0;
            if (i >>> 0 < 10) {
              l = +(e[(7008 + (i << 2)) >> 2] | 0);
              l = (+(e[(7008 + ((i + 1) << 2)) >> 2] | 0) - l) * +r[(f + 160) >> 2] + l;
            } else l = 19500;
          }
        }
        if ((e[B >> 2] | 0) == 3 ? ((y = e[M >> 2] | 0), ((y | 0) == 3) | ((y | 0) == 0)) : 0)
          l = l * 1.5;
        a = ~~l;
        e[h >> 2] = a;
        i = e[T >> 2] | 0;
      }
      if (!i) {
        u = e[(f + 12) >> 2] | 0;
        if (((a << 1) | 0) > (u | 0)) {
          a = ((u | 0) / 2) | 0;
          e[h >> 2] = a;
        }
        do
          if ((u | 0) <= 47999)
            if ((u | 0) <= 44099)
              if ((u | 0) <= 31999)
                if ((u | 0) <= 23999)
                  if ((u | 0) <= 22049)
                    if ((u | 0) > 15999) i = 16e3;
                    else {
                      if ((u | 0) > 11999) {
                        i = 12e3;
                        break;
                      }
                      if ((u | 0) > 11024) {
                        i = 11025;
                        break;
                      }
                      i = (u | 0) > 7999 ? 8e3 : 44100;
                    }
                  else i = 22050;
                else i = 24e3;
              else i = 32e3;
            else i = 44100;
          else i = 48e3;
        while (0);
        do
          if ((a | 0) != -1) {
            i =
              (a | 0) < 3971
                ? 8e3
                : (a | 0) < 4511
                ? 11025
                : (a | 0) < 5421
                ? 12e3
                : (a | 0) < 7231
                ? 16e3
                : (a | 0) < 9971
                ? 22050
                : (a | 0) < 11221
                ? 24e3
                : (a | 0) < 15251
                ? 32e3
                : (a | 0) < 15961
                ? 44100
                : i;
            if ((i | 0) > (u | 0))
              if ((u | 0) <= 44100)
                if ((u | 0) <= 32e3)
                  if ((u | 0) > 24e3) i = 32e3;
                  else {
                    if ((u | 0) > 22050) {
                      i = 24e3;
                      break;
                    }
                    if ((u | 0) > 16e3) {
                      i = 22050;
                      break;
                    }
                    if ((u | 0) > 12e3) {
                      i = 16e3;
                      break;
                    }
                    if ((u | 0) > 11025) {
                      i = 12e3;
                      break;
                    }
                    i = (u | 0) > 8e3 ? 11025 : 8e3;
                  }
                else i = 44100;
              else i = 48e3;
          }
        while (0);
        e[T >> 2] = i;
        m = i;
      } else m = i;
      i = e[M >> 2] | 0;
      do
        if (((i | 0) == 4) | ((i | 0) == 1)) {
          y = (a | 0) > 24e3 ? 24e3 : a;
          w = ((m | 0) / 2) | 0;
          e[h >> 2] = (w | 0) < (y | 0) ? w : y;
          if ((i | 0) == 3) A = 98;
        } else {
          y = (a | 0) > 20500 ? 20500 : a;
          w = ((m | 0) / 2) | 0;
          e[h >> 2] = (w | 0) < (y | 0) ? w : y;
          if ((i | 0) == 3) {
            A = 98;
            break;
          } else if (i) break;
          _ = +(s(m << 4, e[v >> 2] | 0) | 0);
          r[(f + 100) >> 2] = _ / (+(e[(f + 96) >> 2] | 0) * 1e3);
        }
      while (0);
      if ((A | 0) == 98) {
        _ = +(s(m << 4, e[v >> 2] | 0) | 0);
        r[(f + 100) >> 2] = _ / (+(e[(f + 168) >> 2] | 0) * 1e3);
      }
      y = (f + 36) | 0;
      i = (f + 60) | 0;
      if (e[y >> 2] | 0) {
        a = e[i >> 2] | 0;
        i = e[(f + 64) >> 2] | 0;
        e[(o + 128) >> 2] = a;
        u = (o + 136) | 0;
        e[u >> 2] = i;
        if (!i) i = 0;
        else e[(o + 132) >> 2] = 1;
        do
          if (a) {
            if (zi(e[g >> 2] | 0, m | 0) | 0) {
              i = e[u >> 2] | 0;
              break;
            }
            Y(o);
            e[O >> 2] = 0;
            O = -6;
            t = C;
            return O | 0;
          }
        while (0);
        if ((i | 0) != 0 ? (e[(f + 40) >> 2] | 0) == 0 : 0) {
          i = (o + 85808) | 0;
          a = e[i >> 2] | 0;
          if (a) vr(a | 0) | 0;
          w = ni() | 0;
          e[i >> 2] = w;
          gi(w | 0, e[D >> 2] | 0);
          ht(e[i >> 2] | 0, e[I >> 2] | 0);
          ai(e[i >> 2] | 0, e[z >> 2] | 0);
        }
      } else {
        e[i >> 2] = 0;
        e[(f + 64) >> 2] = 0;
        e[(o + 132) >> 2] = 0;
        e[(o + 128) >> 2] = 0;
        e[(o + 136) >> 2] = 0;
      }
      e[(o + 144) >> 2] = e[(f + 128) >> 2];
      h = e[h >> 2] | 0;
      e[(o + 52) >> 2] = h;
      m = e[(f + 188) >> 2] | 0;
      e[(o + 56) >> 2] = m;
      e[(o + 60) >> 2] = e[(f + 12) >> 2];
      u = e[T >> 2] | 0;
      D = (o + 64) | 0;
      e[D >> 2] = u;
      g = (o + 76) | 0;
      e[g >> 2] = (u | 0) < 24001 ? 1 : 2;
      e[(o + 84760) >> 2] = 576;
      i = e[M >> 2] | 0;
      if (((i | 0) == 4) | ((i | 0) == 2) | ((i | 0) == 1))
        e[(f + 100) >> 2] = e[(7056 + (e[(f + 164) >> 2] << 2)) >> 2];
      else if ((i | 0) == 3) {
        _ = +(s(u << 4, e[v >> 2] | 0) | 0);
        r[(f + 100) >> 2] = _ / (+(e[(f + 168) >> 2] | 0) * 1e3);
      } else {
        _ = +(s(u << 4, e[v >> 2] | 0) | 0);
        r[(f + 100) >> 2] = _ / (+(e[(f + 96) >> 2] | 0) * 1e3);
      }
      i = e[B >> 2] | 0;
      if ((i | 0) == 4) {
        e[B >> 2] = 1;
        i = 1;
      }
      B = (o + 180) | 0;
      e[B >> 2] = i;
      if ((m | 0) > 0) {
        E = +(m | 0) * 2;
        a = (o + 256) | 0;
        r[a >> 2] = E;
        i = e[(f + 196) >> 2] | 0;
        if ((i | 0) > -1) l = +((m + i) | 0) * 2;
        else l = E;
        _ = +(u | 0);
        r[a >> 2] = E / _;
        E = l / _;
        r[(o + 260) >> 2] = E;
      } else {
        r[(o + 256) >> 2] = 0;
        r[(o + 260) >> 2] = 0;
        E = 0;
      }
      T = (o + 248) | 0;
      r[T >> 2] = 0;
      w = (o + 252) | 0;
      r[w >> 2] = 0;
      if ((h | 0) > 0 ? (h | 0) < (((u | 0) / 2) | 0 | 0) : 0) {
        F = +(h | 0) * 2;
        r[w >> 2] = F;
        i = e[(f + 192) >> 2] | 0;
        if ((i | 0) > -1) {
          l = +((h - i) | 0) * 2;
          r[T >> 2] = l;
          if (l < 0) {
            r[T >> 2] = 0;
            l = 0;
          }
        } else {
          r[T >> 2] = F;
          l = F;
        }
        x = +(u | 0);
        _ = l / x;
        r[T >> 2] = _;
        l = F / x;
        r[w >> 2] = l;
        if (_ > 0) {
          m = 0;
          a = 32;
          i = 999;
          do {
            F = +(m | 0) * 0.03225806451612903;
            a = ((a | 0) < (m | 0)) | !(F >= l) ? a : m;
            i = (F < l) & (_ < F) ? ((i | 0) < (m | 0) ? i : m) : i;
            m = (m + 1) | 0;
          } while ((m | 0) != 32);
          r[T >> 2] = (+(((i | 0) == 999 ? a : i) | 0) + -0.75) * 0.03225806451612903;
          r[w >> 2] = +(a | 0) * 0.03225806451612903;
        }
      }
      h = (o + 260) | 0;
      u = (o + 256) | 0;
      if ((E > 0) & (E < 0.021774193548387097)) {
        r[u >> 2] = 0;
        r[h >> 2] = 0;
        Vi(o, 7096, R);
        E = +r[h >> 2];
      }
      do
        if (E > 0) {
          l = +r[u >> 2];
          m = 0;
          i = -1;
          a = -1;
          do {
            _ = +(m | 0) * 0.03225806451612903;
            i = ((i | 0) > (m | 0)) | !(_ <= l) ? i : m;
            a = (l < _) & (_ < E) ? ((a | 0) > (m | 0) ? a : m) : a;
            m = (m + 1) | 0;
          } while ((m | 0) != 32);
          l = +(i | 0);
          r[u >> 2] = l * 0.03225806451612903;
          if ((a | 0) == -1) {
            E = (l + 0.75) * 0.03225806451612903;
            r[h >> 2] = E;
            i = 0;
            break;
          } else {
            E = (+(a | 0) + 0.75) * 0.03225806451612903;
            r[h >> 2] = E;
            i = 0;
            break;
          }
        } else i = 0;
      while (0);
      while (1) {
        _ = +(i | 0) * 0.032258063554763794;
        l = +r[u >> 2];
        do
          if (E > l) {
            l = (E - _) / (E - l + 1e-20);
            if (l > 1) {
              F = 0;
              break;
            }
            if (l <= 0) {
              F = 1;
              break;
            }
            F = +N(+(l * 1.5707963267948966));
          } else F = 1;
        while (0);
        l = +r[w >> 2];
        E = +r[T >> 2];
        do
          if (l > E) {
            l = (_ - E) / (l - E + 1e-20);
            if (l > 1) {
              l = 0;
              break;
            }
            if (l <= 0) {
              l = 1;
              break;
            }
            l = +N(+(l * 1.5707963267948966));
          } else l = 1;
        while (0);
        r[(o + 37040 + (i << 2)) >> 2] = l * F;
        i = (i + 1) | 0;
        if ((i | 0) == 32) break;
        E = +r[h >> 2];
      }
      R = _r(e[D >> 2] | 0, P) | 0;
      i = (o + 20) | 0;
      e[i >> 2] = R;
      if ((R | 0) < 0) {
        Y(o);
        e[O >> 2] = 0;
        O = -1;
        t = C;
        return O | 0;
      }
      do
        if (!(e[M >> 2] | 0)) {
          if (e[S >> 2] | 0) {
            e[(o + 84744) >> 2] = 0;
            break;
          }
          I = (f + 96) | 0;
          R = ie(e[I >> 2] | 0, e[P >> 2] | 0, e[D >> 2] | 0) | 0;
          e[I >> 2] = R;
          R = re(R, e[P >> 2] | 0, e[D >> 2] | 0) | 0;
          e[(o + 84744) >> 2] = R;
          if ((R | 0) >= 1) break;
          Y(o);
          e[O >> 2] = 0;
          O = -1;
          t = C;
          return O | 0;
        } else e[(o + 84744) >> 2] = 1;
      while (0);
      St(o);
      a = ((((e[P >> 2] | 0) * 3) | 0) + (e[i >> 2] | 0) + ((e[D >> 2] | 0) < 16e3 ? 6 : 0)) | 0;
      e[(o + 21360) >> 2] = e[(12200 + ((a * 204) | 0)) >> 2];
      e[(o + 21364) >> 2] = e[(12200 + ((a * 204) | 0) + 4) >> 2];
      e[(o + 21368) >> 2] = e[(12200 + ((a * 204) | 0) + 8) >> 2];
      e[(o + 21372) >> 2] = e[(12200 + ((a * 204) | 0) + 12) >> 2];
      e[(o + 21376) >> 2] = e[(12200 + ((a * 204) | 0) + 16) >> 2];
      e[(o + 21380) >> 2] = e[(12200 + ((a * 204) | 0) + 20) >> 2];
      e[(o + 21384) >> 2] = e[(12200 + ((a * 204) | 0) + 24) >> 2];
      e[(o + 21388) >> 2] = e[(12200 + ((a * 204) | 0) + 28) >> 2];
      e[(o + 21392) >> 2] = e[(12200 + ((a * 204) | 0) + 32) >> 2];
      e[(o + 21396) >> 2] = e[(12200 + ((a * 204) | 0) + 36) >> 2];
      e[(o + 21400) >> 2] = e[(12200 + ((a * 204) | 0) + 40) >> 2];
      e[(o + 21404) >> 2] = e[(12200 + ((a * 204) | 0) + 44) >> 2];
      e[(o + 21408) >> 2] = e[(12200 + ((a * 204) | 0) + 48) >> 2];
      e[(o + 21412) >> 2] = e[(12200 + ((a * 204) | 0) + 52) >> 2];
      e[(o + 21416) >> 2] = e[(12200 + ((a * 204) | 0) + 56) >> 2];
      e[(o + 21420) >> 2] = e[(12200 + ((a * 204) | 0) + 60) >> 2];
      e[(o + 21424) >> 2] = e[(12200 + ((a * 204) | 0) + 64) >> 2];
      e[(o + 21428) >> 2] = e[(12200 + ((a * 204) | 0) + 68) >> 2];
      e[(o + 21432) >> 2] = e[(12200 + ((a * 204) | 0) + 72) >> 2];
      e[(o + 21436) >> 2] = e[(12200 + ((a * 204) | 0) + 76) >> 2];
      e[(o + 21440) >> 2] = e[(12200 + ((a * 204) | 0) + 80) >> 2];
      i = e[(12200 + ((a * 204) | 0) + 84) >> 2] | 0;
      e[(o + 21444) >> 2] = i;
      u = e[(12200 + ((a * 204) | 0) + 88) >> 2] | 0;
      e[(o + 21448) >> 2] = u;
      u = (((u - i) | 0) / 6) | 0;
      e[(o + 21508) >> 2] = i;
      e[(o + 21512) >> 2] = u + i;
      e[(o + 21516) >> 2] = (u << 1) + i;
      e[(o + 21520) >> 2] = ((u * 3) | 0) + i;
      e[(o + 21524) >> 2] = (u << 2) + i;
      e[(o + 21528) >> 2] = ((u * 5) | 0) + i;
      e[(o + 21532) >> 2] = 576;
      e[(o + 21452) >> 2] = e[(12200 + ((a * 204) | 0) + 92) >> 2];
      e[(o + 21456) >> 2] = e[(12200 + ((a * 204) | 0) + 96) >> 2];
      e[(o + 21460) >> 2] = e[(12200 + ((a * 204) | 0) + 100) >> 2];
      e[(o + 21464) >> 2] = e[(12200 + ((a * 204) | 0) + 104) >> 2];
      e[(o + 21468) >> 2] = e[(12200 + ((a * 204) | 0) + 108) >> 2];
      e[(o + 21472) >> 2] = e[(12200 + ((a * 204) | 0) + 112) >> 2];
      e[(o + 21476) >> 2] = e[(12200 + ((a * 204) | 0) + 116) >> 2];
      e[(o + 21480) >> 2] = e[(12200 + ((a * 204) | 0) + 120) >> 2];
      e[(o + 21484) >> 2] = e[(12200 + ((a * 204) | 0) + 124) >> 2];
      e[(o + 21488) >> 2] = e[(12200 + ((a * 204) | 0) + 128) >> 2];
      e[(o + 21492) >> 2] = e[(12200 + ((a * 204) | 0) + 132) >> 2];
      e[(o + 21496) >> 2] = e[(12200 + ((a * 204) | 0) + 136) >> 2];
      i = e[(12200 + ((a * 204) | 0) + 140) >> 2] | 0;
      e[(o + 21500) >> 2] = i;
      a = e[(12200 + ((a * 204) | 0) + 144) >> 2] | 0;
      e[(o + 21504) >> 2] = a;
      a = (((a - i) | 0) / 6) | 0;
      e[(o + 21536) >> 2] = i;
      e[(o + 21540) >> 2] = a + i;
      e[(o + 21544) >> 2] = (a << 1) + i;
      e[(o + 21548) >> 2] = ((a * 3) | 0) + i;
      e[(o + 21552) >> 2] = (a << 2) + i;
      e[(o + 21556) >> 2] = ((a * 5) | 0) + i;
      e[(o + 21560) >> 2] = 192;
      i = e[g >> 2] | 0;
      a = e[v >> 2] | 0;
      u = (a | 0) == 1;
      u = (i | 0) == 2 ? (u ? 21 : 36) : u ? 13 : 21;
      S = (o + 24) | 0;
      e[S >> 2] = u;
      if (e[L >> 2] | 0) e[S >> 2] = u | 2;
      e[o >> 2] = -487877;
      r[(o + 39756) >> 2] = +(s((i * 700) | 0, a) | 0);
      r[(o + 39760) >> 2] = +(s(((e[g >> 2] | 0) * 700) | 0, e[v >> 2] | 0) | 0);
      r[(o + 39764) >> 2] = +(s(((e[g >> 2] | 0) * 700) | 0, e[v >> 2] | 0) | 0);
      r[(o + 39768) >> 2] = +(s(((e[g >> 2] | 0) * 700) | 0, e[v >> 2] | 0) | 0);
      r[(o + 39772) >> 2] = +(s(((e[g >> 2] | 0) * 700) | 0, e[v >> 2] | 0) | 0);
      r[(o + 39776) >> 2] = +(s(((e[g >> 2] | 0) * 700) | 0, e[v >> 2] | 0) | 0);
      r[(o + 39780) >> 2] = +(s(((e[g >> 2] | 0) * 700) | 0, e[v >> 2] | 0) | 0);
      r[(o + 39784) >> 2] = +(s(((e[g >> 2] | 0) * 700) | 0, e[v >> 2] | 0) | 0);
      r[(o + 39788) >> 2] = +(s(((e[g >> 2] | 0) * 700) | 0, e[v >> 2] | 0) | 0);
      r[(o + 39792) >> 2] = +(s(((e[g >> 2] | 0) * 700) | 0, e[v >> 2] | 0) | 0);
      r[(o + 39796) >> 2] = +(s(((e[g >> 2] | 0) * 700) | 0, e[v >> 2] | 0) | 0);
      r[(o + 39800) >> 2] = +(s(((e[g >> 2] | 0) * 700) | 0, e[v >> 2] | 0) | 0);
      r[(o + 39804) >> 2] = +(s(((e[g >> 2] | 0) * 700) | 0, e[v >> 2] | 0) | 0);
      r[(o + 39808) >> 2] = +(s(((e[g >> 2] | 0) * 700) | 0, e[v >> 2] | 0) | 0);
      r[(o + 39812) >> 2] = +(s(((e[g >> 2] | 0) * 700) | 0, e[v >> 2] | 0) | 0);
      r[(o + 39816) >> 2] = +(s(((e[g >> 2] | 0) * 700) | 0, e[v >> 2] | 0) | 0);
      r[(o + 39820) >> 2] = +(s(((e[g >> 2] | 0) * 700) | 0, e[v >> 2] | 0) | 0);
      r[(o + 39824) >> 2] = +(s(((e[g >> 2] | 0) * 700) | 0, e[v >> 2] | 0) | 0);
      r[(o + 39828) >> 2] = +(s(((e[g >> 2] | 0) * 700) | 0, e[v >> 2] | 0) | 0);
      g = (f + 220) | 0;
      if ((e[g >> 2] | 0) == -1) e[g >> 2] = 4;
      a = e[M >> 2] | 0;
      do
        if (((a | 0) == 4) | ((a | 0) == 1)) {
          i = (f + 124) | 0;
          if ((e[i >> 2] | 0) < 0) e[i >> 2] = 2;
          i = (f + 244) | 0;
          if ((e[i >> 2] | 0) < 0) e[i >> 2] = 0;
          je(f, ((s(e[(f + 164) >> 2] | 0, -10) | 0) + 500) | 0, 0) | 0;
          i = (f + 44) | 0;
          a = e[i >> 2] | 0;
          do
            if ((a | 0) < 0) {
              e[i >> 2] = 3;
              A = 169;
            } else {
              if ((a | 0) < 5) {
                A = 169;
                break;
              }
              if ((a | 0) <= 7) break;
              e[i >> 2] = 7;
            }
          while (0);
          if ((A | 0) == 169) e[i >> 2] = 0;
          if (!(e[(f + 140) >> 2] | 0)) a = ((e[D >> 2] | 0) > 44e3) & 1;
          else a = 0;
          e[(o + 85092) >> 2] = a;
          e[(o + 85812) >> 2] = 1;
        } else if ((a | 0) != 2) {
          e[(o + 85092) >> 2] = 0;
          i = (f + 44) | 0;
          if ((e[i >> 2] | 0) < 0) e[i >> 2] = 3;
          u = (a | 0) == 0;
          if (u) _e(f, e[(f + 96) >> 2] | 0) | 0;
          je(f, e[(f + 168) >> 2] | 0, 0) | 0;
          e[M >> 2] = a;
          i = (o + 85812) | 0;
          if (u) {
            e[i >> 2] = 3;
            break;
          } else {
            e[i >> 2] = 4;
            break;
          }
        } else {
          je(f, ((s(e[(f + 164) >> 2] | 0, -10) | 0) + 500) | 0, 0) | 0;
          if (!(e[(f + 140) >> 2] | 0)) a = ((e[D >> 2] | 0) > 44e3) & 1;
          else a = 0;
          e[(o + 85092) >> 2] = a;
          i = (f + 44) | 0;
          a = e[i >> 2] | 0;
          do
            if ((a | 0) > 6) e[i >> 2] = 6;
            else {
              if ((a | 0) >= 0) break;
              e[i >> 2] = 3;
            }
          while (0);
          e[(o + 85812) >> 2] = 2;
        }
      while (0);
      i = e[(f + 200) >> 2] | 0;
      a = (o + 84912) | 0;
      e[a >> 2] = i;
      u = e[(f + 204) >> 2] | 0;
      S = (o + 84916) | 0;
      e[S >> 2] = u;
      if (e[(f + 256) >> 2] | 0) {
        F = ((e[n >> 2] = u), +r[n >> 2]);
        _ = +r[(f + 260) >> 2];
        r[a >> 2] = ((e[n >> 2] = i), +r[n >> 2]) + _;
        r[S >> 2] = F + _;
      }
      if (!(e[M >> 2] | 0)) {
        i = 0;
        a = e[(f + 168) >> 2] | 0;
      } else {
        S = (o + 112) | 0;
        e[S >> 2] = 1;
        w = (o + 116) | 0;
        i = e[D >> 2] | 0;
        e[w >> 2] = (i | 0) < 16e3 ? 8 : 14;
        m = (f + 172) | 0;
        a = e[m >> 2] | 0;
        do
          if (!a) i = 1;
          else {
            i = ie(a, e[P >> 2] | 0, i) | 0;
            e[m >> 2] = i;
            i = re(i, e[P >> 2] | 0, e[D >> 2] | 0) | 0;
            e[S >> 2] = i;
            if ((i | 0) < 0) w = -1;
            else break;
            t = C;
            return w | 0;
          }
        while (0);
        u = (f + 176) | 0;
        a = e[u >> 2] | 0;
        do
          if (a) {
            a = ie(a, e[P >> 2] | 0, e[D >> 2] | 0) | 0;
            e[u >> 2] = a;
            a = re(a, e[P >> 2] | 0, e[D >> 2] | 0) | 0;
            e[w >> 2] = a;
            if ((a | 0) < 0) {
              O = -1;
              t = C;
              return O | 0;
            } else {
              i = e[S >> 2] | 0;
              break;
            }
          } else a = e[w >> 2] | 0;
        while (0);
        R = e[P >> 2] | 0;
        L = e[(83944 + (R << 6) + (i << 2)) >> 2] | 0;
        e[m >> 2] = L;
        R = e[(83944 + (R << 6) + (a << 2)) >> 2] | 0;
        e[u >> 2] = R;
        i = (f + 168) | 0;
        a = e[i >> 2] | 0;
        a = (R | 0) < (a | 0) ? R : a;
        a = (L | 0) > (a | 0) ? L : a;
        e[i >> 2] = a;
        i = e[M >> 2] | 0;
      }
      e[(o + 100) >> 2] = e[(f + 152) >> 2];
      e[(o + 156) >> 2] = e[y >> 2];
      T = (o + 104) | 0;
      e[T >> 2] = i;
      e[(o + 85096) >> 2] = e[(f + 80) >> 2];
      e[(o + 28) >> 2] = e[(f + 84) >> 2];
      e[(o + 32) >> 2] = e[(f + 88) >> 2];
      e[(o + 36) >> 2] = e[(f + 92) >> 2];
      m = (o + 120) | 0;
      e[m >> 2] = e[(f + 96) >> 2];
      e[(o + 108) >> 2] = a;
      e[(o + 244) >> 2] = e[(f + 100) >> 2];
      h = e[O >> 2] | 0;
      i = (f + 44) | 0;
      switch (e[i >> 2] | 0) {
        case 5: {
          i = (h + 28) | 0;
          if (!(e[i >> 2] | 0)) e[i >> 2] = 1;
          e[(h + 40) >> 2] = 0;
          e[(h + 44) >> 2] = 0;
          i = (h + 32) | 0;
          if ((e[i >> 2] | 0) == -1) e[i >> 2] = 1;
          e[(h + 36) >> 2] = 0;
          e[(h + 48) >> 2] = 0;
          break;
        }
        case 8: {
          e[i >> 2] = 7;
          A = 203;
          break;
        }
        case 7: {
          A = 203;
          break;
        }
        case 6: {
          i = (h + 28) | 0;
          if (!(e[i >> 2] | 0)) e[i >> 2] = 1;
          e[(h + 40) >> 2] = 0;
          e[(h + 44) >> 2] = 0;
          i = (h + 32) | 0;
          if ((e[i >> 2] | 0) == -1) e[i >> 2] = 1;
          e[(h + 36) >> 2] = 0;
          e[(h + 48) >> 2] = 0;
          break;
        }
        case 2: {
          i = (h + 28) | 0;
          if (!(e[i >> 2] | 0)) e[i >> 2] = 1;
          i = (h + 85096) | 0;
          if (!(e[i >> 2] | 0)) e[i >> 2] = 2;
          e[(h + 40) >> 2] = 1;
          e[(h + 44) >> 2] = 1;
          i = (h + 32) | 0;
          if ((e[i >> 2] | 0) == -1) e[i >> 2] = 1;
          e[(h + 36) >> 2] = 1;
          e[(h + 48) >> 2] = 0;
          break;
        }
        case 4: {
          i = (h + 28) | 0;
          if (!(e[i >> 2] | 0)) e[i >> 2] = 1;
          e[(h + 40) >> 2] = 0;
          e[(h + 44) >> 2] = 0;
          i = (h + 32) | 0;
          if ((e[i >> 2] | 0) == -1) e[i >> 2] = 1;
          e[(h + 36) >> 2] = 1;
          e[(h + 48) >> 2] = 0;
          break;
        }
        case 3: {
          i = (h + 28) | 0;
          if (!(e[i >> 2] | 0)) e[i >> 2] = 1;
          e[(h + 40) >> 2] = 1;
          e[(h + 44) >> 2] = 1;
          i = (h + 32) | 0;
          if ((e[i >> 2] | 0) == -1) e[i >> 2] = 1;
          e[(h + 36) >> 2] = 1;
          e[(h + 48) >> 2] = 0;
          break;
        }
        case 0: {
          i = (h + 28) | 0;
          if (!(e[i >> 2] | 0)) e[i >> 2] = 1;
          i = (h + 85096) | 0;
          if (!(e[i >> 2] | 0)) e[i >> 2] = 2;
          e[(h + 40) >> 2] = 2;
          e[(h + 44) >> 2] = 1;
          i = (h + 32) | 0;
          if ((e[i >> 2] | 0) == -1) e[i >> 2] = 1;
          e[(h + 36) >> 2] = 1;
          e[(h + 48) >> 2] = 1;
          break;
        }
        case 1: {
          i = (h + 28) | 0;
          if (!(e[i >> 2] | 0)) e[i >> 2] = 1;
          i = (h + 85096) | 0;
          if (!(e[i >> 2] | 0)) e[i >> 2] = 2;
          e[(h + 40) >> 2] = 2;
          e[(h + 44) >> 2] = 1;
          i = (h + 32) | 0;
          if ((e[i >> 2] | 0) == -1) e[i >> 2] = 1;
          e[(h + 36) >> 2] = 1;
          e[(h + 48) >> 2] = 0;
          break;
        }
        default: {
          e[(h + 28) >> 2] = 0;
          M = (h + 36) | 0;
          e[M >> 2] = 0;
          e[(M + 4) >> 2] = 0;
          e[(M + 8) >> 2] = 0;
          e[(M + 12) >> 2] = 0;
        }
      }
      do
        if ((A | 0) == 203) {
          e[(h + 28) >> 2] = 0;
          L = (h + 36) | 0;
          e[L >> 2] = 0;
          e[(L + 4) >> 2] = 0;
          e[(L + 8) >> 2] = 0;
          e[(L + 12) >> 2] = 0;
          M = e[M >> 2] | 0;
          if (!(((M | 0) == 4) | ((M | 0) == 1))) break;
          e[(h + 48) >> 2] = -1;
        }
      while (0);
      S = e[(f + 232) >> 2] | 0;
      a = e[H >> 2] | 0;
      e[a >> 2] = (S | 0) < 0 ? 3 : S;
      r[(a + 4) >> 2] = +d(10, +(+r[(f + 236) >> 2] * -0.1));
      a = (f + 240) | 0;
      S = e[a >> 2] | 0;
      if ((S | 0) == -1) {
        e[a >> 2] = 0;
        A = 248;
      } else if (!S) A = 248;
      do
        if ((A | 0) == 248) {
          if ((e[B >> 2] | 0) >>> 0 >= 2) {
            S = 0;
            break;
          }
          e[a >> 2] = 1;
          S = 1;
        }
      while (0);
      e[(o + 184) >> 2] = S;
      if ((Be(f) | 0) < 0) Z(f, 1) | 0;
      if ((Ce(f) | 0) < 0) X(f, 0) | 0;
      if (+Ie(f) < 0) G(f, 0);
      ve(f, Ee(f) | 0 | 1) | 0;
      S = e[g >> 2] | 0;
      if ((S | 0) < 0) {
        e[g >> 2] = 4;
        S = 4;
      }
      w = (f + 224) | 0;
      _ = +r[w >> 2];
      u = ((r[n >> 2] = _), e[n >> 2] | 0);
      if (_ < 0) {
        r[w >> 2] = 4;
        u = 1082130432;
      }
      w = (f + 248) | 0;
      _ = +r[w >> 2];
      a = ((r[n >> 2] = _), e[n >> 2] | 0);
      if (_ < 0) {
        r[w >> 2] = 0;
        a = 0;
      }
      i = (f + 244) | 0;
      w = e[i >> 2] | 0;
      if ((w | 0) < 0) {
        e[i >> 2] = 1;
        w = 1;
      }
      e[(o + 188) >> 2] = a;
      e[(o + 192) >> 2] = e[(f + 252) >> 2];
      l = +r[(f + 228) >> 2];
      r[(o + 196) >> 2] = -l;
      r[(o + 200) >> 2] = +d(10, +(l * -0.10000000149011612));
      e[(o + 204) >> 2] = u;
      e[(o + 208) >> 2] = S;
      e[(o + 212) >> 2] = e[(f + 208) >> 2];
      e[(o + 216) >> 2] = e[(f + 212) >> 2];
      e[(o + 220) >> 2] = e[(f + 216) >> 2];
      e[(o + 84) >> 2] = e[(f + 132) >> 2];
      e[(o + 88) >> 2] = e[(f + 136) >> 2];
      e[(o + 92) >> 2] = w;
      M = e[(f + 148) >> 2] | 0;
      e[(o + 96) >> 2] = M & 2;
      l = +(((M >>> 2) & 63) | 0);
      r[(o + 232) >> 2] = (!(l >= 32) ? l : l + -64) * 0.25;
      l = +(((M >>> 8) & 63) | 0);
      r[(o + 228) >> 2] = (!(l >= 32) ? l : l + -64) * 0.25;
      l = +(((M >>> 14) & 63) | 0);
      l = !(l >= 32) ? l : l + -64;
      r[(o + 236) >> 2] = l * 0.25;
      _ = +(((M >>> 20) & 63) | 0);
      r[(o + 240) >> 2] = ((!(_ >= 32) ? _ : _ + -64) + l) * 0.25;
      l = +r[(f + 20) >> 2];
      _ = +r[(f + 24) >> 2] * l;
      l = +r[(f + 28) >> 2] * l;
      do
        if ((e[b >> 2] | 0) == 2) {
          if ((e[v >> 2] | 0) != 1) {
            F = _;
            E = l;
            _ = 0;
            break;
          }
          F = _ * 0.5;
          E = 0;
          _ = l * 0.5;
        } else {
          F = _;
          E = l;
          _ = 0;
        }
      while (0);
      r[(o + 264) >> 2] = F;
      r[(o + 268) >> 2] = _;
      r[(o + 272) >> 2] = 0;
      r[(o + 276) >> 2] = E;
      w = (o + 39832) | 0;
      e[w >> 2] = 0;
      S = (o + 39836) | 0;
      e[S >> 2] = 0;
      if (!(e[T >> 2] | 0)) {
        b = s(((((e[P >> 2] | 0) * 72e3) | 0) + 72e3) | 0, e[m >> 2] | 0) | 0;
        b = (b | 0) % (e[D >> 2] | 0) | 0;
        e[w >> 2] = b;
        e[S >> 2] = b;
      }
      do
        if ((e[f >> 2] | 0) == -487877) {
          w = e[O >> 2] | 0;
          if (!w) break;
          e[(w + 84748) >> 2] = 0;
          if (e[(f + 68) >> 2] | 0) Tt(f) | 0;
          r[(w + 85684) >> 2] = 0;
          c((w + 84040) | 0, 0, 704) | 0;
          if (!(e[(w + 156) >> 2] | 0)) break;
          ut(f) | 0;
        }
      while (0);
      zr(o);
      $r(f) | 0;
      e[(o + 148) >> 2] = Dr(P, e[(f + 124) >> 2] | 0) | 0;
      O = 0;
      t = C;
      return O | 0;
    }
    function gt(e, r, i, t, n, o) {
      e = e | 0;
      r = r | 0;
      i = i | 0;
      t = t | 0;
      n = n | 0;
      o = o | 0;
      return Qe(e, r, i, t, n, o, 3, 1, 32767) | 0;
    }
    function kt(l, d, u) {
      l = l | 0;
      d = d | 0;
      u = u | 0;
      var a = 0,
        o = 0,
        r = 0,
        w = 0,
        _ = 0,
        v = 0,
        b = 0,
        f = 0,
        p = 0,
        i = 0,
        h = 0,
        m = 0,
        n = 0,
        s = 0,
        E = 0,
        S = 0;
      s = t;
      t = (t + 4608) | 0;
      h = s;
      if (!l) {
        i = -3;
        t = s;
        return i | 0;
      }
      if ((e[l >> 2] | 0) != -487877) {
        i = -3;
        t = s;
        return i | 0;
      }
      n = e[(l + 288) >> 2] | 0;
      if (!n) {
        i = -3;
        t = s;
        return i | 0;
      }
      if ((e[n >> 2] | 0) != -487877) {
        i = -3;
        t = s;
        return i | 0;
      }
      m = (n + 84032) | 0;
      r = e[m >> 2] | 0;
      if ((r | 0) < 1) {
        i = 0;
        t = s;
        return i | 0;
      }
      o = ((e[(n + 76) >> 2] | 0) * 576) | 0;
      i = (o + 752) | 0;
      r = (r + -1152) | 0;
      c(h | 0, 0, 4608) | 0;
      if (!(Ui((n + 16) | 0) | 0)) p = 1;
      else {
        E = +(e[(n + 60) >> 2] | 0) / +(e[(n + 64) >> 2] | 0);
        p = E;
        r = ~~(16 / E + +(r | 0));
      }
      f = (o - ((r | 0) % (o | 0) | 0)) | 0;
      f = (((f | 0) < 576 ? o : 0) + f) | 0;
      e[(n + 84764) >> 2] = f;
      r = (((f + r) | 0) / (o | 0)) | 0;
      if ((r | 0) > 0) {
        _ = (n + 84748) | 0;
        v = (n + 84036) | 0;
        b = (u | 0) == 0;
        f = (h + 2304) | 0;
        w = e[_ >> 2] | 0;
        o = r;
        a = 0;
        do {
          r = ~~(+((i - (e[v >> 2] | 0)) | 0) * p);
          r = (r | 0) > 1152 ? 1152 : r;
          r = Qe(l, h, f, (r | 0) < 1 ? 1 : r, d, b ? 0 : (u - a) | 0, 0, 1, 1) | 0;
          d = (d + r) | 0;
          a = (r + a) | 0;
          S = w;
          w = e[_ >> 2] | 0;
          o = (o - (((S | 0) != (w | 0)) & 1)) | 0;
        } while (((o | 0) > 0) & ((r | 0) > -1));
        e[m >> 2] = 0;
        if ((r | 0) < 0) {
          i = r;
          t = s;
          return i | 0;
        }
      } else {
        e[m >> 2] = 0;
        a = 0;
      }
      o = (u | 0) == 0;
      pt(n);
      r = $(n, d, o ? 0 : (u - a) | 0, 1) | 0;
      mt(n);
      if ((r | 0) < 0) {
        i = r;
        t = s;
        return i | 0;
      }
      a = (r + a) | 0;
      if (!(e[(l + 68) >> 2] | 0)) {
        i = a;
        t = s;
        return i | 0;
      }
      Dt(l) | 0;
      i = $(n, (d + r) | 0, o ? 0 : (u - a) | 0, 0) | 0;
      i = (((i | 0) < 0 ? 0 : a) + i) | 0;
      t = s;
      return i | 0;
    }
    function bt(i) {
      i = i | 0;
      var r = 0,
        t = 0,
        n = 0;
      if (!i) {
        r = 0;
        return r | 0;
      }
      if ((e[i >> 2] | 0) != -487877) {
        r = 0;
        return r | 0;
      }
      r = (i + 288) | 0;
      t = e[r >> 2] | 0;
      e[i >> 2] = 0;
      if (!t) r = -3;
      else {
        n = (e[t >> 2] | 0) == -487877 ? 0 : -3;
        e[t >> 2] = 0;
        Y(t);
        e[r >> 2] = 0;
        r = n;
      }
      if (!(e[(i + 284) >> 2] | 0)) return r | 0;
      _(i);
      return r | 0;
    }
    function vt() {
      var i = 0,
        t = 0;
      Zi();
      i = k(1, 304) | 0;
      if (!i) {
        i = 0;
        return i | 0;
      }
      c(i | 0, 0, 304) | 0;
      e[i >> 2] = -487877;
      t = k(1, 85840) | 0;
      e[(i + 288) >> 2] = t;
      if (!t) {
        _(i);
        i = 0;
        return i | 0;
      } else {
        e[(i + 124) >> 2] = 2;
        e[(i + 48) >> 2] = 4;
        e[(i + 108) >> 2] = 1;
        e[(i + 12) >> 2] = 44100;
        e[(i + 8) >> 2] = 2;
        e[(i + 4) >> 2] = -1;
        e[(i + 36) >> 2] = 1;
        e[(i + 44) >> 2] = -1;
        e[(i + 240) >> 2] = -1;
        e[(i + 88) >> 2] = -1;
        e[(i + 184) >> 2] = 0;
        e[(i + 188) >> 2] = 0;
        e[(i + 192) >> 2] = -1;
        e[(i + 196) >> 2] = -1;
        e[(i + 156) >> 2] = 0;
        e[(i + 164) >> 2] = 4;
        r[(i + 224) >> 2] = -1;
        e[(i + 168) >> 2] = 128;
        e[(i + 172) >> 2] = 0;
        e[(i + 176) >> 2] = 0;
        e[(i + 180) >> 2] = 0;
        e[(t + 112) >> 2] = 1;
        e[(t + 116) >> 2] = 13;
        e[(i + 132) >> 2] = -1;
        e[(i + 136) >> 2] = -1;
        r[(i + 252) >> 2] = -1;
        e[(t + 84920) >> 2] = 180;
        e[(t + 84924) >> 2] = 180;
        e[(t + 84928) >> 2] = 4;
        e[(t + 84932) >> 2] = 4;
        r[(t + 84908) >> 2] = 1;
        r[(i + 264) >> 2] = -1;
        r[(i + 268) >> 2] = -1;
        r[(i + 20) >> 2] = 1;
        r[(i + 24) >> 2] = 1;
        r[(i + 28) >> 2] = 1;
        e[(i + 232) >> 2] = -1;
        e[(i + 220) >> 2] = -1;
        r[(i + 236) >> 2] = 0;
        e[(i + 244) >> 2] = -1;
        r[(i + 248) >> 2] = -1;
        e[(t + 84032) >> 2] = 1728;
        e[(t + 84764) >> 2] = 0;
        e[(t + 84036) >> 2] = 528;
        e[(i + 60) >> 2] = 0;
        e[(i + 64) >> 2] = 0;
        e[(t + 136) >> 2] = 0;
        e[(t + 128) >> 2] = 0;
        e[(t + 132) >> 2] = 0;
        e[(t + 85688) >> 2] = 0;
        e[(t + 85692) >> 2] = 0;
        r[(t + 85680) >> 2] = -1;
        e[(i + 292) >> 2] = 1;
        e[(i + 296) >> 2] = 1;
        e[(i + 300) >> 2] = 1;
        e[(i + 152) >> 2] = 0;
        e[(i + 68) >> 2] = 1;
        e[(i + 276) >> 2] = 2;
        e[(i + 280) >> 2] = 2;
        e[(i + 272) >> 2] = 2;
        e[(i + 284) >> 2] = 1;
        return i | 0;
      }
      return 0;
    }
    function Qe(r, a, u, l, p, S, g, w, D) {
      r = r | 0;
      a = a | 0;
      u = u | 0;
      l = l | 0;
      p = p | 0;
      S = S | 0;
      g = g | 0;
      w = w | 0;
      D = +D;
      var o = 0,
        i = 0,
        h = 0,
        N = 0,
        m = 0,
        d = 0,
        B = 0,
        A = 0,
        C = 0,
        L = 0,
        F = 0,
        E = 0,
        b = 0,
        f = 0,
        P = 0,
        R = 0,
        T = 0,
        v = 0,
        O = 0,
        y = 0,
        n = 0,
        c = 0;
      c = t;
      t = (t + 32) | 0;
      N = c;
      v = (c + 24) | 0;
      T = (c + 16) | 0;
      O = (c + 8) | 0;
      y = (c + 4) | 0;
      if (!r) {
        f = -3;
        t = c;
        return f | 0;
      }
      if ((e[r >> 2] | 0) != -487877) {
        f = -3;
        t = c;
        return f | 0;
      }
      n = e[(r + 288) >> 2] | 0;
      if (!n) {
        f = -3;
        t = c;
        return f | 0;
      }
      if ((e[n >> 2] | 0) != -487877) {
        f = -3;
        t = c;
        return f | 0;
      }
      if (!l) {
        f = 0;
        t = c;
        return f | 0;
      }
      d = (n + 52152) | 0;
      r = e[d >> 2] | 0;
      do
        if (r)
          if ((e[(n + 52148) >> 2] | 0) < (l | 0)) {
            _(r);
            h = 10;
            break;
          } else {
            o = (n + 52156) | 0;
            i = r;
            m = o;
            o = e[o >> 2] | 0;
            h = 13;
            break;
          }
        else h = 10;
      while (0);
      if ((h | 0) == 10) {
        r = (n + 52156) | 0;
        o = e[r >> 2] | 0;
        if (o) _(o);
        i = k(l, 4) | 0;
        e[d >> 2] = i;
        o = k(l, 4) | 0;
        e[r >> 2] = o;
        e[(n + 52148) >> 2] = l;
        if (i) {
          m = r;
          h = 13;
        }
      }
      do
        if ((h | 0) == 13) {
          if (!o) {
            _(i);
            r = m;
            o = e[m >> 2] | 0;
            break;
          }
          r = (a | 0) == 0;
          do
            if ((e[(n + 68) >> 2] | 0) > 1)
              if (r | ((u | 0) == 0)) {
                f = 0;
                t = c;
                return f | 0;
              } else {
                Ze(n, a, u, l, g, w, D);
                break;
              }
            else if (r) {
              f = 0;
              t = c;
              return f | 0;
            } else {
              Ze(n, a, a, l, g, w, D);
              break;
            }
          while (0);
          r = (n + 76) | 0;
          w = e[r >> 2] | 0;
          R = (w * 576) | 0;
          e: do
            if ((e[n >> 2] | 0) == -487877) {
              o = $(n, p, S, 0) | 0;
              if ((o | 0) >= 0) {
                a = (p + o) | 0;
                h = e[d >> 2] | 0;
                i = e[m >> 2] | 0;
                B = ((((e[r >> 2] | 0) * 576) | 0) + 752) | 0;
                e[v >> 2] = n + 52160;
                A = (v + 4) | 0;
                e[A >> 2] = n + 68096;
                C = (T + 4) | 0;
                L = (n + 128) | 0;
                F = (n + 72) | 0;
                E = (n + 84036) | 0;
                b = (n + 84032) | 0;
                f = (n + 136) | 0;
                P = (n + 85676) | 0;
                N = s(w, -576) | 0;
                if (!S) {
                  p = a;
                  r = h;
                  r: while (1) {
                    while (1) {
                      if ((l | 0) <= 0) break e;
                      e[O >> 2] = 0;
                      e[y >> 2] = 0;
                      e[T >> 2] = r;
                      e[C >> 2] = i;
                      pr(n, v, T, l, O, y);
                      if (
                        ((e[L >> 2] | 0) != 0
                        ? (e[f >> 2] | 0) == 0
                        : 0)
                          ? ((S = e[E >> 2] | 0),
                            (Ye(
                              e[P >> 2] | 0,
                              ((e[v >> 2] | 0) + (S << 2)) | 0,
                              ((e[A >> 2] | 0) + (S << 2)) | 0,
                              e[y >> 2] | 0,
                              e[F >> 2] | 0
                            ) |
                              0) ==
                              0)
                          : 0
                      ) {
                        o = -6;
                        break e;
                      }
                      a = e[O >> 2] | 0;
                      l = (l - a) | 0;
                      m = (r + (a << 2)) | 0;
                      i = (e[F >> 2] | 0) == 2 ? (i + (a << 2)) | 0 : i;
                      a = e[y >> 2] | 0;
                      h = ((e[E >> 2] | 0) + a) | 0;
                      e[E >> 2] = h;
                      r = e[b >> 2] | 0;
                      if ((r | 0) < 1) {
                        e[b >> 2] = 1728;
                        r = 1728;
                      }
                      e[b >> 2] = r + a;
                      if ((h | 0) < (B | 0)) r = m;
                      else {
                        d = i;
                        r = m;
                        break;
                      }
                    }
                    i = sr(n, e[v >> 2] | 0, e[A >> 2] | 0, p, 0) | 0;
                    if ((i | 0) < 0) {
                      o = i;
                      break e;
                    }
                    p = (p + i) | 0;
                    o = (i + o) | 0;
                    i = e[E >> 2] | 0;
                    S = (i - R) | 0;
                    e[E >> 2] = S;
                    e[b >> 2] = (e[b >> 2] | 0) - R;
                    m = e[F >> 2] | 0;
                    if (!(((S | 0) > 0) & ((m | 0) > 0))) {
                      i = d;
                      continue;
                    }
                    g = (N + i) | 0;
                    i = 0;
                    while (1) {
                      w = e[(v + (i << 2)) >> 2] | 0;
                      u = 0;
                      do {
                        e[(w + (u << 2)) >> 2] = e[(w + ((u + R) << 2)) >> 2];
                        u = (u + 1) | 0;
                      } while ((u | 0) != (g | 0));
                      i = (i + 1) | 0;
                      if ((i | 0) == (m | 0)) {
                        i = d;
                        continue r;
                      }
                    }
                  }
                } else {
                  p = a;
                  r: while (1) {
                    do {
                      if ((l | 0) <= 0) break e;
                      e[O >> 2] = 0;
                      e[y >> 2] = 0;
                      e[T >> 2] = h;
                      e[C >> 2] = i;
                      pr(n, v, T, l, O, y);
                      if (
                        ((e[L >> 2] | 0) != 0
                        ? (e[f >> 2] | 0) == 0
                        : 0)
                          ? ((d = e[E >> 2] | 0),
                            (Ye(
                              e[P >> 2] | 0,
                              ((e[v >> 2] | 0) + (d << 2)) | 0,
                              ((e[A >> 2] | 0) + (d << 2)) | 0,
                              e[y >> 2] | 0,
                              e[F >> 2] | 0
                            ) |
                              0) ==
                              0)
                          : 0
                      ) {
                        o = -6;
                        break e;
                      }
                      a = e[O >> 2] | 0;
                      l = (l - a) | 0;
                      h = (h + (a << 2)) | 0;
                      i = (e[F >> 2] | 0) == 2 ? (i + (a << 2)) | 0 : i;
                      a = e[y >> 2] | 0;
                      w = ((e[E >> 2] | 0) + a) | 0;
                      e[E >> 2] = w;
                      r = e[b >> 2] | 0;
                      if ((r | 0) < 1) {
                        e[b >> 2] = 1728;
                        r = 1728;
                      }
                      e[b >> 2] = r + a;
                    } while ((w | 0) < (B | 0));
                    r = sr(n, e[v >> 2] | 0, e[A >> 2] | 0, p, (S - o) | 0) | 0;
                    if ((r | 0) < 0) {
                      o = r;
                      break e;
                    }
                    p = (p + r) | 0;
                    o = (r + o) | 0;
                    r = e[E >> 2] | 0;
                    d = (r - R) | 0;
                    e[E >> 2] = d;
                    e[b >> 2] = (e[b >> 2] | 0) - R;
                    a = e[F >> 2] | 0;
                    if (!(((d | 0) > 0) & ((a | 0) > 0))) continue;
                    m = (N + r) | 0;
                    r = 0;
                    while (1) {
                      g = e[(v + (r << 2)) >> 2] | 0;
                      u = 0;
                      do {
                        e[(g + (u << 2)) >> 2] = e[(g + ((u + R) << 2)) >> 2];
                        u = (u + 1) | 0;
                      } while ((u | 0) != (m | 0));
                      r = (r + 1) | 0;
                      if ((r | 0) == (a | 0)) continue r;
                    }
                  }
                }
              }
            } else o = -3;
          while (0);
          f = o;
          t = c;
          return f | 0;
        }
      while (0);
      if (o) _(o);
      e[d >> 2] = 0;
      e[r >> 2] = 0;
      e[(n + 52148) >> 2] = 0;
      M(n, 7168, N);
      f = -2;
      t = c;
      return f | 0;
    }
    function mt(i) {
      i = i | 0;
      var t = 0,
        n = 0,
        o = 0,
        s = 0,
        a = 0;
      a = (i + 85680) | 0;
      do
        if (e[(i + 128) >> 2] | 0) {
          t = +yt(e[(i + 85676) >> 2] | 0);
          s = t;
          o = +p(+t);
          t = +p(+(t + 24601));
          if (o > 24601)
            if (!(t <= o * 9.999999974752427e-7)) n = 5;
            else n = 6;
          else if (!(t <= 0.024600999937888446)) n = 5;
          else n = 6;
          if ((n | 0) == 5) {
            e[(i + 85688) >> 2] = ~~+x(+(s * 10 + 0.5));
            break;
          } else if ((n | 0) == 6) {
            e[(i + 85688) >> 2] = 0;
            break;
          }
        }
      while (0);
      if (!(e[(i + 132) >> 2] | 0)) return;
      t = +r[(i + 85684) >> 2];
      n = ~~+hi(+(+Mr(t * 3051850947599719e-20) * 200));
      e[(i + 85692) >> 2] = n;
      if ((n | 0) > 0) {
        r[a >> 2] = +x(+(3276700 / t)) * 0.01;
        return;
      } else {
        r[a >> 2] = -1;
        return;
      }
    }
    function Ze(i, n, t, u, p, s, l) {
      i = i | 0;
      n = n | 0;
      t = t | 0;
      u = u | 0;
      p = p | 0;
      s = s | 0;
      l = +l;
      var w = 0,
        c = 0,
        d = 0,
        h = 0,
        m = 0,
        o = 0,
        a = 0;
      w = e[(i + 52152) >> 2] | 0;
      d = e[(i + 52156) >> 2] | 0;
      h = +r[(i + 264) >> 2] * l;
      m = +r[(i + 268) >> 2] * l;
      c = +r[(i + 272) >> 2] * l;
      l = +r[(i + 276) >> 2] * l;
      switch (p | 0) {
        case 0: {
          if ((u | 0) <= 0) return;
          i = 0;
          while (1) {
            o = +(S[n >> 1] | 0);
            a = +(S[t >> 1] | 0);
            r[(w + (i << 2)) >> 2] = a * m + o * h;
            r[(d + (i << 2)) >> 2] = a * l + o * c;
            i = (i + 1) | 0;
            if ((i | 0) == (u | 0)) break;
            else {
              n = (n + (s << 1)) | 0;
              t = (t + (s << 1)) | 0;
            }
          }
          return;
        }
        case 2: {
          if ((u | 0) <= 0) return;
          i = 0;
          while (1) {
            o = +(e[n >> 2] | 0);
            a = +(e[t >> 2] | 0);
            r[(w + (i << 2)) >> 2] = a * m + o * h;
            r[(d + (i << 2)) >> 2] = a * l + o * c;
            i = (i + 1) | 0;
            if ((i | 0) == (u | 0)) break;
            else {
              n = (n + (s << 2)) | 0;
              t = (t + (s << 2)) | 0;
            }
          }
          return;
        }
        case 3: {
          if ((u | 0) <= 0) return;
          i = 0;
          while (1) {
            o = +r[n >> 2];
            a = +r[t >> 2];
            r[(w + (i << 2)) >> 2] = a * m + o * h;
            r[(d + (i << 2)) >> 2] = a * l + o * c;
            i = (i + 1) | 0;
            if ((i | 0) == (u | 0)) break;
            else {
              n = (n + (s << 2)) | 0;
              t = (t + (s << 2)) | 0;
            }
          }
          return;
        }
        case 4: {
          if ((u | 0) <= 0) return;
          i = 0;
          while (1) {
            o = +f[n >> 3];
            a = +f[t >> 3];
            r[(w + (i << 2)) >> 2] = a * m + o * h;
            r[(d + (i << 2)) >> 2] = a * l + o * c;
            i = (i + 1) | 0;
            if ((i | 0) == (u | 0)) break;
            else {
              n = (n + (s << 3)) | 0;
              t = (t + (s << 3)) | 0;
            }
          }
          return;
        }
        case 1: {
          if ((u | 0) <= 0) return;
          i = 0;
          while (1) {
            o = +(e[n >> 2] | 0);
            a = +(e[t >> 2] | 0);
            r[(w + (i << 2)) >> 2] = a * m + o * h;
            r[(d + (i << 2)) >> 2] = a * l + o * c;
            i = (i + 1) | 0;
            if ((i | 0) == (u | 0)) break;
            else {
              n = (n + (s << 2)) | 0;
              t = (t + (s << 2)) | 0;
            }
          }
          return;
        }
        default:
          return;
      }
    }
    function Ge(s, i, J) {
      s = s | 0;
      i = i | 0;
      J = J | 0;
      var u = 0,
        o = 0,
        a = 0,
        n = 0,
        O = 0,
        ee = 0,
        re = 0,
        F = 0,
        c = 0,
        h = 0,
        P = 0,
        b = 0,
        G = 0,
        K = 0,
        z = 0,
        H = 0,
        x = 0,
        X = 0,
        $ = 0,
        U = 0,
        C = 0,
        Q = 0,
        Z = 0,
        L = 0,
        B = 0,
        W = 0,
        j = 0,
        V = 0,
        q = 0,
        I = 0,
        Y = 0,
        f = 0,
        w = 0,
        D = 0,
        k = 0,
        M = 0,
        N = 0,
        T = 0,
        A = 0,
        R = 0,
        p = 0,
        m = 0,
        _ = 0,
        S = 0,
        d = 0,
        v = 0,
        g = 0,
        E = 0,
        y = 0;
      D = t;
      t = (t + 80) | 0;
      w = D;
      G = (s + 72) | 0;
      if ((e[G >> 2] | 0) <= 0) {
        t = D;
        return;
      }
      B = (s + 76) | 0;
      W = (w + 68) | 0;
      j = (w + 36) | 0;
      V = (w + 60) | 0;
      q = (w + 44) | 0;
      I = (w + 56) | 0;
      Y = (w + 48) | 0;
      K = (w + 32) | 0;
      z = (w + 4) | 0;
      H = (w + 28) | 0;
      x = (w + 8) | 0;
      X = (w + 24) | 0;
      $ = (w + 12) | 0;
      U = (w + 20) | 0;
      C = (w + 16) | 0;
      Q = (w + 64) | 0;
      Z = (w + 40) | 0;
      L = (w + 52) | 0;
      f = 0;
      while (1) {
        if ((e[B >> 2] | 0) > 0) {
          b = 0;
          P = (i + 1144) | 0;
          while (1) {
            h = (1 - b) | 0;
            i = 0;
            u = (s + 27824 + ((f * 4608) | 0) + ((h * 2304) | 0)) | 0;
            o = P;
            while (1) {
              Ke(o, u);
              Ke((o + 128) | 0, (u + 128) | 0);
              n = (u + 132) | 0;
              r[n >> 2] = -+r[n >> 2];
              n = (u + 140) | 0;
              r[n >> 2] = -+r[n >> 2];
              n = (u + 148) | 0;
              r[n >> 2] = -+r[n >> 2];
              n = (u + 156) | 0;
              r[n >> 2] = -+r[n >> 2];
              n = (u + 164) | 0;
              r[n >> 2] = -+r[n >> 2];
              n = (u + 172) | 0;
              r[n >> 2] = -+r[n >> 2];
              n = (u + 180) | 0;
              r[n >> 2] = -+r[n >> 2];
              n = (u + 188) | 0;
              r[n >> 2] = -+r[n >> 2];
              n = (u + 196) | 0;
              r[n >> 2] = -+r[n >> 2];
              n = (u + 204) | 0;
              r[n >> 2] = -+r[n >> 2];
              n = (u + 212) | 0;
              r[n >> 2] = -+r[n >> 2];
              n = (u + 220) | 0;
              r[n >> 2] = -+r[n >> 2];
              n = (u + 228) | 0;
              r[n >> 2] = -+r[n >> 2];
              n = (u + 236) | 0;
              r[n >> 2] = -+r[n >> 2];
              n = (u + 244) | 0;
              r[n >> 2] = -+r[n >> 2];
              n = (u + 252) | 0;
              r[n >> 2] = -+r[n >> 2];
              i = (i + 1) | 0;
              if ((i | 0) == 9) break;
              else {
                u = (u + 256) | 0;
                o = (o + 256) | 0;
              }
            }
            ee = (s + 304 + ((b * 10504) | 0) + ((f * 5252) | 0) + 4788) | 0;
            re = (s + 304 + ((b * 10504) | 0) + ((f * 5252) | 0) + 4792) | 0;
            F = 0;
            c = (s + 304 + ((b * 10504) | 0) + ((f * 5252) | 0)) | 0;
            while (1) {
              n = e[(7208 + (F << 2)) >> 2] | 0;
              O = ((F | 0) < 2) & ((e[re >> 2] | 0) != 0) ? 0 : e[ee >> 2] | 0;
              o = (s + 37040 + (F << 2)) | 0;
              a = +r[o >> 2];
              do
                if (!(a < 1e-12)) {
                  if (a < 1) {
                    i = (s + 27824 + ((f * 4608) | 0) + ((h * 2304) | 0) + (n << 2)) | 0;
                    r[i >> 2] = +r[i >> 2] * a;
                    i = (s + 27824 + ((f * 4608) | 0) + ((h * 2304) | 0) + ((n + 32) << 2)) | 0;
                    r[i >> 2] = +r[i >> 2] * +r[o >> 2];
                    i = (s + 27824 + ((f * 4608) | 0) + ((h * 2304) | 0) + ((n + 64) << 2)) | 0;
                    r[i >> 2] = +r[i >> 2] * +r[o >> 2];
                    i = (s + 27824 + ((f * 4608) | 0) + ((h * 2304) | 0) + ((n + 96) << 2)) | 0;
                    r[i >> 2] = +r[i >> 2] * +r[o >> 2];
                    i = (s + 27824 + ((f * 4608) | 0) + ((h * 2304) | 0) + ((n + 128) << 2)) | 0;
                    r[i >> 2] = +r[i >> 2] * +r[o >> 2];
                    i = (s + 27824 + ((f * 4608) | 0) + ((h * 2304) | 0) + ((n + 160) << 2)) | 0;
                    r[i >> 2] = +r[i >> 2] * +r[o >> 2];
                    i = (s + 27824 + ((f * 4608) | 0) + ((h * 2304) | 0) + ((n + 192) << 2)) | 0;
                    r[i >> 2] = +r[i >> 2] * +r[o >> 2];
                    i = (s + 27824 + ((f * 4608) | 0) + ((h * 2304) | 0) + ((n + 224) << 2)) | 0;
                    r[i >> 2] = +r[i >> 2] * +r[o >> 2];
                    i = (s + 27824 + ((f * 4608) | 0) + ((h * 2304) | 0) + ((n + 256) << 2)) | 0;
                    r[i >> 2] = +r[i >> 2] * +r[o >> 2];
                    i = (s + 27824 + ((f * 4608) | 0) + ((h * 2304) | 0) + ((n + 288) << 2)) | 0;
                    r[i >> 2] = +r[i >> 2] * +r[o >> 2];
                    i = (s + 27824 + ((f * 4608) | 0) + ((h * 2304) | 0) + ((n + 320) << 2)) | 0;
                    r[i >> 2] = +r[i >> 2] * +r[o >> 2];
                    i = (s + 27824 + ((f * 4608) | 0) + ((h * 2304) | 0) + ((n + 352) << 2)) | 0;
                    r[i >> 2] = +r[i >> 2] * +r[o >> 2];
                    i = (s + 27824 + ((f * 4608) | 0) + ((h * 2304) | 0) + ((n + 384) << 2)) | 0;
                    r[i >> 2] = +r[i >> 2] * +r[o >> 2];
                    i = (s + 27824 + ((f * 4608) | 0) + ((h * 2304) | 0) + ((n + 416) << 2)) | 0;
                    r[i >> 2] = +r[i >> 2] * +r[o >> 2];
                    i = (s + 27824 + ((f * 4608) | 0) + ((h * 2304) | 0) + ((n + 448) << 2)) | 0;
                    r[i >> 2] = +r[i >> 2] * +r[o >> 2];
                    i = (s + 27824 + ((f * 4608) | 0) + ((h * 2304) | 0) + ((n + 480) << 2)) | 0;
                    r[i >> 2] = +r[i >> 2] * +r[o >> 2];
                    i = (s + 27824 + ((f * 4608) | 0) + ((h * 2304) | 0) + ((n + 512) << 2)) | 0;
                    r[i >> 2] = +r[i >> 2] * +r[o >> 2];
                    i = (s + 27824 + ((f * 4608) | 0) + ((h * 2304) | 0) + ((n + 544) << 2)) | 0;
                    r[i >> 2] = +r[i >> 2] * +r[o >> 2];
                  }
                  if ((O | 0) == 2) {
                    o = (n + 288) | 0;
                    u = (n + 480) | 0;
                    i = -3;
                    do {
                      A = (i + 3) | 0;
                      a = +r[(7624 + (A << 2)) >> 2];
                      R = i << 5;
                      M = (o + R) | 0;
                      N = (((8 - i) << 5) + n) | 0;
                      k = (i * 3) | 0;
                      r[(c + ((k + 9) << 2)) >> 2] =
                        +r[(s + 27824 + ((f * 4608) | 0) + ((b * 2304) | 0) + (M << 2)) >> 2] * a -
                        +r[(s + 27824 + ((f * 4608) | 0) + ((b * 2304) | 0) + (N << 2)) >> 2];
                      T =
                        (s +
                          27824 +
                          ((f * 4608) | 0) +
                          ((b * 2304) | 0) +
                          ((((14 - i) << 5) + n) << 2)) |
                        0;
                      R = (s + 27824 + ((f * 4608) | 0) + ((b * 2304) | 0) + ((u + R) << 2)) | 0;
                      r[(c + ((k + 18) << 2)) >> 2] = +r[T >> 2] * a + +r[R >> 2];
                      r[(c + ((k + 10) << 2)) >> 2] = +r[R >> 2] * a - +r[T >> 2];
                      T =
                        (s +
                          27824 +
                          ((f * 4608) | 0) +
                          ((h * 2304) | 0) +
                          ((((2 - i) << 5) + n) << 2)) |
                        0;
                      A =
                        (s + 27824 + ((f * 4608) | 0) + ((h * 2304) | 0) + (((A << 5) + n) << 2)) |
                        0;
                      r[(c + ((k + 19) << 2)) >> 2] = +r[T >> 2] * a + +r[A >> 2];
                      r[(c + ((k + 11) << 2)) >> 2] = +r[A >> 2] * a - +r[T >> 2];
                      r[(c + ((k + 20) << 2)) >> 2] =
                        +r[(s + 27824 + ((f * 4608) | 0) + ((h * 2304) | 0) + (N << 2)) >> 2] * a +
                        +r[(s + 27824 + ((f * 4608) | 0) + ((h * 2304) | 0) + (M << 2)) >> 2];
                      i = (i + 1) | 0;
                    } while ((i | 0) != 0);
                    o = c;
                    u = 0;
                    while (1) {
                      k = (o + 24) | 0;
                      a = +r[k >> 2];
                      N = (o + 60) | 0;
                      v = +r[N >> 2];
                      g = a * 0.13165250420570374 - v;
                      m = +r[o >> 2];
                      n = (o + 36) | 0;
                      d = +r[n >> 2];
                      S = m * 0.7673270106315613 - d;
                      a = v * 0.13165250420570374 + a;
                      m = d * 0.7673270106315613 + m;
                      d = m + a;
                      M = (o + 12) | 0;
                      v = +r[M >> 2];
                      i = (o + 48) | 0;
                      E = +r[i >> 2];
                      _ = S + g;
                      p = (v * 0.4142135679721832 - E) * 2.069978111953089e-11;
                      r[o >> 2] = p + _ * 1.90752519173728e-11;
                      v = (E * 0.4142135679721832 + v) * 2.069978111953089e-11;
                      r[N >> 2] = v + -d * 1.90752519173728e-11;
                      S = (g - S) * 1.6519652744032674e-11;
                      d = v + d * 9.537625958686404e-12;
                      r[M >> 2] = S - d;
                      r[k >> 2] = d + S;
                      p = _ * 9.537625958686404e-12 - p;
                      a = (m - a) * 1.6519652744032674e-11;
                      r[n >> 2] = p + a;
                      r[i >> 2] = p - a;
                      u = (u + 1) | 0;
                      if ((u | 0) == 3) break;
                      else o = (o + 4) | 0;
                    }
                  } else {
                    o = -9;
                    do {
                      u = (o + 9) | 0;
                      M = ((u << 5) + n) | 0;
                      k = (((8 - o) << 5) + n) | 0;
                      d =
                        +r[(s + 27824 + ((f * 4608) | 0) + ((h * 2304) | 0) + (k << 2)) >> 2] *
                          +r[(7336 + ((O * 144) | 0) + ((o + 36) << 2)) >> 2] +
                        +r[(s + 27824 + ((f * 4608) | 0) + ((h * 2304) | 0) + (M << 2)) >> 2] *
                          +r[(7336 + ((O * 144) | 0) + ((o + 27) << 2)) >> 2];
                      i = (o + 18) | 0;
                      a =
                        +r[(s + 27824 + ((f * 4608) | 0) + ((b * 2304) | 0) + (M << 2)) >> 2] *
                          +r[(7336 + ((O * 144) | 0) + (u << 2)) >> 2] -
                        +r[(s + 27824 + ((f * 4608) | 0) + ((b * 2304) | 0) + (k << 2)) >> 2] *
                          +r[(7336 + ((O * 144) | 0) + (i << 2)) >> 2];
                      p = +r[(7624 + ((o + 12) << 2)) >> 2];
                      r[(w + (u << 2)) >> 2] = d - a * p;
                      r[(w + (i << 2)) >> 2] = p * d + a;
                      o = (o + 1) | 0;
                    } while ((o | 0) != 0);
                    S = +r[W >> 2] - +r[j >> 2];
                    E = +r[V >> 2] - +r[q >> 2];
                    g = +r[I >> 2] - +r[Y >> 2];
                    d = +r[K >> 2] + +r[w >> 2];
                    m = +r[H >> 2] + +r[z >> 2];
                    v = +r[X >> 2] + +r[x >> 2];
                    p = +r[U >> 2] + +r[$ >> 2];
                    _ = v + d - p;
                    r[(c + 68) >> 2] = +r[C >> 2] - m + _;
                    _ = _ * 0.5 + (m - +r[C >> 2]);
                    a = (S - E - g) * 0.8660253882408142;
                    r[(c + 20) >> 2] = _ + a;
                    r[(c + 24) >> 2] = a - _;
                    _ = (+r[Q >> 2] - +r[Z >> 2]) * 0.8660253882408142;
                    m = +r[C >> 2] + m * 0.5;
                    a =
                      E * 0.6427876353263855 + S * 0.9848077297210693 + g * 0.3420201539993286 + _;
                    y =
                      v * 0.7660444378852844 + d * 0.1736481785774231 + p * 0.9396926164627075 + m;
                    r[(c + 4) >> 2] = a + y;
                    r[(c + 8) >> 2] = a - y;
                    y =
                      S * 0.6427876353263855 - E * 0.3420201539993286 + g * 0.9848077297210693 - _;
                    a =
                      d * 0.7660444378852844 - v * 0.9396926164627075 - p * 0.1736481785774231 + m;
                    r[(c + 36) >> 2] = y + a;
                    r[(c + 40) >> 2] = y - a;
                    _ =
                      E * 0.9848077297210693 + S * 0.3420201539993286 - g * 0.6427876353263855 - _;
                    m =
                      d * 0.9396926164627075 - v * 0.1736481785774231 + p * 0.7660444378852844 - m;
                    r[(c + 52) >> 2] = m + _;
                    r[(c + 56) >> 2] = _ - m;
                    m = +r[K >> 2] - +r[w >> 2];
                    _ = +r[X >> 2] - +r[x >> 2];
                    p = +r[U >> 2] - +r[$ >> 2];
                    v = +r[j >> 2] + +r[W >> 2];
                    d = +r[Z >> 2] + +r[Q >> 2];
                    g = +r[q >> 2] + +r[V >> 2];
                    S = +r[Y >> 2] + +r[I >> 2];
                    E = g + v + S;
                    r[c >> 2] = +r[L >> 2] + d + E;
                    E = -d - +r[L >> 2] + E * 0.5;
                    a = (m - _ + p) * 0.8660253882408142;
                    r[(c + 44) >> 2] = E + a;
                    r[(c + 48) >> 2] = E - a;
                    a = (+r[H >> 2] - +r[z >> 2]) * 0.8660253882408142;
                    d = +r[L >> 2] - d * 0.5;
                    E =
                      v * 0.9396926164627075 - g * 0.1736481785774231 - S * 0.7660444378852844 - d;
                    y =
                      _ * 0.9848077297210693 + m * 0.3420201539993286 + p * 0.6427876353263855 + a;
                    r[(c + 12) >> 2] = E + y;
                    r[(c + 16) >> 2] = E - y;
                    y =
                      v * 0.7660444378852844 - g * 0.9396926164627075 + S * 0.1736481785774231 + d;
                    E =
                      m * 0.6427876353263855 - _ * 0.3420201539993286 - p * 0.9848077297210693 + a;
                    r[(c + 28) >> 2] = y + E;
                    r[(c + 32) >> 2] = y - E;
                    d =
                      g * 0.7660444378852844 + v * 0.1736481785774231 - S * 0.9396926164627075 + d;
                    a =
                      _ * 0.6427876353263855 + m * 0.9848077297210693 - p * 0.3420201539993286 - a;
                    r[(c + 60) >> 2] = d + a;
                    r[(c + 64) >> 2] = d - a;
                    break;
                  }
                } else {
                  o = c;
                  u = (o + 72) | 0;
                  do {
                    e[o >> 2] = 0;
                    o = (o + 4) | 0;
                  } while ((o | 0) < (u | 0));
                }
              while (0);
              if (((F | 0) != 0) & ((O | 0) != 2)) {
                o = 7;
                while (1) {
                  i = (c + (o << 2)) | 0;
                  p = +r[i >> 2];
                  a = +r[(7624 + ((o + 20) << 2)) >> 2];
                  u = (c + (~o << 2)) | 0;
                  d = +r[u >> 2];
                  m = +r[(7624 + ((o + 28) << 2)) >> 2];
                  r[u >> 2] = m * d + a * p;
                  r[i >> 2] = m * p - d * a;
                  if ((o | 0) > 0) o = (o + -1) | 0;
                  else break;
                }
              }
              F = (F + 1) | 0;
              if ((F | 0) == 32) break;
              else c = (c + 72) | 0;
            }
            b = (b + 1) | 0;
            i = e[B >> 2] | 0;
            if ((b | 0) >= (i | 0)) break;
            else P = (P + 2304) | 0;
          }
          if ((i | 0) == 1)
            l((s + 27824 + ((f * 4608) | 0)) | 0, (s + 27824 + ((f * 4608) | 0) + 2304) | 0, 2304) |
              0;
        }
        f = (f + 1) | 0;
        if ((f | 0) >= (e[G >> 2] | 0)) break;
        else i = J;
      }
      t = D;
      return;
    }
    function Ke(s, n) {
      s = s | 0;
      n = n | 0;
      var h = 0,
        g = 0,
        d = 0,
        p = 0,
        F = 0,
        v = 0,
        a = 0,
        b = 0,
        f = 0,
        S = 0,
        e = 0,
        u = 0,
        i = 0,
        t = 0,
        k = 0,
        c = 0,
        _ = 0,
        l = 0,
        w = 0,
        o = 0,
        m = 0,
        y = 0,
        G = 0,
        W = 0,
        V = 0,
        Z = 0,
        z = 0,
        X = 0,
        N = 0,
        D = 0,
        P = 0,
        M = 0,
        C = 0,
        B = 0,
        R = 0,
        x = 0,
        T = 0,
        K = 0,
        A = 0,
        q = 0,
        O = 0,
        j = 0,
        I = 0,
        Y = 0,
        H = 0,
        L = 0,
        U = 0,
        J = 0,
        Q = 0,
        $ = 0,
        ee = 0,
        re = 0,
        E = 0;
      h = s;
      g = -15;
      d = 7952;
      p = (s + -248) | 0;
      while (1) {
        m = +r[(d + -40) >> 2];
        y = +r[(d + -36) >> 2];
        o = +r[(d + -32) >> 2];
        w = +r[(d + -28) >> 2];
        l = +r[(d + -24) >> 2];
        _ = +r[(d + -20) >> 2];
        c = +r[(d + -16) >> 2];
        k = +r[(d + -12) >> 2];
        t = +r[(d + -8) >> 2];
        i = +r[(d + -4) >> 2];
        u = +r[d >> 2];
        e = +r[(d + 4) >> 2];
        S = +r[(d + 8) >> 2];
        f = +r[(d + 12) >> 2];
        b = +r[(d + 16) >> 2];
        v = +r[(d + 20) >> 2];
        a =
          +r[(h + 640) >> 2] * y +
          +r[(h + 896) >> 2] * m +
          +r[(h + 384) >> 2] * o +
          +r[(h + 128) >> 2] * w +
          +r[(h + -128) >> 2] * l +
          +r[(h + -384) >> 2] * _ +
          +r[(h + -640) >> 2] * c +
          +r[(h + -896) >> 2] * k -
          +r[(p + 1024) >> 2] * t -
          +r[(p + 768) >> 2] * i -
          +r[(p + 512) >> 2] * u -
          +r[(p + 256) >> 2] * e -
          +r[p >> 2] * S -
          +r[(p + -256) >> 2] * f -
          +r[(p + -512) >> 2] * b -
          +r[(p + -768) >> 2] * v;
        v =
          (+r[(p + -640) >> 2] * y +
            +r[(p + -896) >> 2] * m +
            +r[(p + -384) >> 2] * o +
            +r[(p + -128) >> 2] * w +
            +r[(p + 128) >> 2] * l +
            +r[(p + 384) >> 2] * _ +
            +r[(p + 640) >> 2] * c +
            +r[(p + 896) >> 2] * k +
            +r[(h + -1024) >> 2] * t +
            +r[(h + -768) >> 2] * i +
            +r[(h + -512) >> 2] * u +
            +r[(h + -256) >> 2] * e +
            +r[h >> 2] * S +
            +r[(h + 256) >> 2] * f +
            +r[(h + 512) >> 2] * b +
            +r[(h + 768) >> 2] * v) *
          +r[(d + 24) >> 2];
        F = g << 1;
        r[(n + ((F + 30) << 2)) >> 2] = a + v;
        r[(n + ((F + 31) << 2)) >> 2] = (a - v) * +r[(d + 28) >> 2];
        g = (g + 1) | 0;
        if (!g) break;
        else {
          h = (h + -4) | 0;
          d = (d + 72) | 0;
          p = (p + 4) | 0;
        }
      }
      i =
        (+r[(s + -252) >> 2] - +r[(s + 4) >> 2]) * 5302.158203125 +
        +r[(s + -124) >> 2] * 10612.802734375 +
        (+r[(s + 132) >> 2] + +r[(s + -380) >> 2]) * 929.7763061523438 +
        (+r[(s + -508) >> 2] - +r[(s + 260) >> 2]) * 728.8010864257812 +
        (+r[(s + 388) >> 2] + +r[(s + -636) >> 2]) * 288.09765625 +
        (+r[(s + -764) >> 2] - +r[(s + 516) >> 2]) * 64.91738891601562 +
        (+r[(s + 644) >> 2] + +r[(s + -892) >> 2]) * 30.125003814697266 +
        (+r[(s + -1020) >> 2] - +r[(s + 772) >> 2]) * 4.101456642150879;
      o =
        +r[(s + -444) >> 2] * 1945.5516357421875 +
        +r[(s + -188) >> 2] * 12804.7978515625 +
        +r[(s + -700) >> 2] * 313.42449951171875 +
        +r[(s + -956) >> 2] * 20.801593780517578 -
        +r[(s + 68) >> 2] * 1995.1556396484375 -
        +r[(s + 324) >> 2] * 9.000839233398438 -
        +r[(s + 580) >> 2] * -29.202180862426758 -
        +r[(s + 836) >> 2];
      e = o - i;
      i = o + i;
      O = (n + 56) | 0;
      o = +r[O >> 2];
      I = (n + 60) | 0;
      a = +r[I >> 2] - o;
      _ = i + o;
      U = (n + 124) | 0;
      w = a + e;
      H = (n + 120) | 0;
      a = e - a;
      o = i - o;
      s = (n + 112) | 0;
      i = +r[s >> 2];
      e = +r[n >> 2];
      r[n >> 2] = e + i;
      r[s >> 2] = (i - e) * 1.9615705013275146;
      g = (n + 116) | 0;
      e = +r[g >> 2];
      L = (n + 4) | 0;
      i = +r[L >> 2];
      r[L >> 2] = i + e;
      r[g >> 2] = (e - i) * 1.9615705013275146;
      N = (n + 104) | 0;
      i = +r[N >> 2];
      h = (n + 8) | 0;
      e = +r[h >> 2];
      r[h >> 2] = e + i;
      r[N >> 2] = (i - e) * 1.8477590084075928;
      P = (n + 108) | 0;
      e = +r[P >> 2];
      d = (n + 12) | 0;
      i = +r[d >> 2];
      r[d >> 2] = i + e;
      r[P >> 2] = (e - i) * 1.8477590084075928;
      x = (n + 96) | 0;
      i = +r[x >> 2];
      M = (n + 16) | 0;
      e = +r[M >> 2];
      r[M >> 2] = e + i;
      r[x >> 2] = (i - e) * 1.662939190864563;
      B = (n + 100) | 0;
      e = +r[B >> 2];
      D = (n + 20) | 0;
      i = +r[D >> 2];
      r[D >> 2] = i + e;
      r[B >> 2] = (e - i) * 1.662939190864563;
      T = (n + 88) | 0;
      i = +r[T >> 2];
      C = (n + 24) | 0;
      e = +r[C >> 2];
      m = e + i;
      A = (n + 92) | 0;
      E = +r[A >> 2];
      R = (n + 28) | 0;
      f = +r[R >> 2];
      t = f + E;
      c = t - m;
      e = (i - e) * 1.4142135623730951 - c;
      t = (E - f) * 1.4142135623730951 - t - e;
      r[C >> 2] = _ - m;
      r[U >> 2] = _ + m;
      r[R >> 2] = w - c;
      r[H >> 2] = w + c;
      r[T >> 2] = a - e;
      r[I >> 2] = a + e;
      r[A >> 2] = o - t;
      r[O >> 2] = o + t;
      X = (n + 80) | 0;
      t = +r[X >> 2];
      q = (n + 32) | 0;
      o = +r[q >> 2];
      e = o + t;
      o = (t - o) * 1.111140489578247;
      Z = (n + 84) | 0;
      t = +r[Z >> 2];
      K = (n + 36) | 0;
      a = +r[K >> 2];
      c = a + t;
      a = (t - a) * 1.111140489578247;
      p = (n + 72) | 0;
      t = +r[p >> 2];
      V = (n + 40) | 0;
      w = +r[V >> 2];
      m = w + t;
      w = (t - w) * 0.7653668522834778;
      G = (n + 76) | 0;
      t = +r[G >> 2];
      z = (n + 44) | 0;
      _ = +r[z >> 2];
      f = _ + t;
      _ = (t - _) * 0.7653668522834778;
      Y = (n + 64) | 0;
      t = +r[Y >> 2];
      W = (n + 48) | 0;
      E = +r[W >> 2];
      i = E + t;
      E = (t - E) * 0.39018064737319946;
      j = (n + 68) | 0;
      t = +r[j >> 2];
      F = (n + 52) | 0;
      l = +r[F >> 2];
      u = l + t;
      l = (t - l) * 0.39018064737319946;
      t = +r[x >> 2];
      r[X >> 2] = t + o;
      r[x >> 2] = (t - o) * 0.7653668522834778;
      o = +r[B >> 2];
      r[Z >> 2] = o + a;
      r[B >> 2] = (o - a) * 0.7653668522834778;
      a = +r[M >> 2];
      r[M >> 2] = e + a;
      r[q >> 2] = (a - e) * 0.7653668522834778;
      e = +r[D >> 2];
      r[D >> 2] = c + e;
      r[K >> 2] = (e - c) * 0.7653668522834778;
      c = +r[n >> 2];
      r[n >> 2] = i + c;
      r[W >> 2] = (c - i) * 1.8477590084075928;
      i = +r[L >> 2];
      r[L >> 2] = u + i;
      r[F >> 2] = (i - u) * 1.8477590084075928;
      u = +r[s >> 2];
      r[Y >> 2] = u + E;
      r[s >> 2] = (E - u) * 1.8477590084075928;
      u = +r[g >> 2];
      r[j >> 2] = u + l;
      r[g >> 2] = (u - l) * 1.8477590084075928;
      l = +r[h >> 2];
      u = m + l;
      E = +r[d >> 2];
      i = f + E;
      c = +r[N >> 2];
      e = c + w;
      a = +r[P >> 2];
      o = a + _;
      t = o - i;
      i = i - u;
      S = +r[U >> 2];
      r[h >> 2] = S - u;
      r[U >> 2] = S + u;
      f = (E - f) * 1.4142135623730951 - t;
      E = e - i;
      u = +r[H >> 2];
      r[d >> 2] = u - i;
      r[H >> 2] = u + i;
      t = t - E;
      i = +r[I >> 2];
      r[p >> 2] = i - E;
      r[I >> 2] = i + E;
      m = (l - m) * 1.4142135623730951 - t;
      l = +r[O >> 2];
      r[G >> 2] = l - t;
      r[O >> 2] = l + t;
      t = f - m;
      l = +r[A >> 2];
      r[V >> 2] = l - m;
      r[A >> 2] = l + m;
      e = (c - w) * 1.4142135623730951 - e - t;
      w = +r[T >> 2];
      r[z >> 2] = w - t;
      r[T >> 2] = w + t;
      f = (a - _) * 1.4142135623730951 - o - f - e;
      o = +r[R >> 2];
      r[N >> 2] = o - e;
      r[R >> 2] = o + e;
      e = +r[C >> 2];
      r[P >> 2] = e - f;
      r[C >> 2] = e + f;
      f = +r[n >> 2];
      e = +r[M >> 2];
      o = e + f;
      r[n >> 2] = o;
      r[M >> 2] = (f - e) * 1.4142135623730951;
      e = +r[L >> 2];
      f = +r[D >> 2];
      _ = f + e;
      a = +r[Y >> 2];
      t = +r[X >> 2];
      w = t + a;
      c = +r[j >> 2];
      m = +r[Z >> 2];
      l = m + c;
      E = +r[q >> 2];
      i = +r[W >> 2];
      u = i + E;
      S = +r[K >> 2];
      b = +r[F >> 2];
      k = b + S;
      Q = +r[B >> 2];
      J = +r[g >> 2];
      y = J + Q;
      ee = +r[x >> 2];
      re = +r[s >> 2];
      $ = ee - re;
      v = $ - w;
      t = (a - t) * 1.4142135623730951 - v;
      a = y - l;
      m = (c - m) * 1.4142135623730951 - a;
      l = l - _;
      c = k - l;
      a = a - c;
      f = (e - f) * 1.4142135623730951 - a;
      e = m - f;
      k = (S - b) * -1.4142135623730951 - k - e;
      o = _ - o;
      w = w - o;
      l = l - w;
      _ = u - l;
      c = c - _;
      v = v - c;
      a = a - v;
      b = +r[M >> 2] - a;
      f = f - b;
      S = t - f;
      e = e - S;
      u = (E - i) * -1.4142135623730951 - u - e;
      i = k - u;
      t = (re + ee) * -1.4142135623730951 - $ - t - i;
      k = (Q - J) * -1.4142135623730951 - y - m - k - t;
      m = +r[n >> 2];
      y = +r[U >> 2];
      r[n >> 2] = y + m;
      r[U >> 2] = y - m;
      m = +r[H >> 2];
      r[L >> 2] = m + o;
      r[H >> 2] = m - o;
      o = +r[I >> 2];
      r[Y >> 2] = o + w;
      r[I >> 2] = o - w;
      w = +r[O >> 2];
      r[j >> 2] = w + l;
      r[O >> 2] = w - l;
      l = +r[A >> 2];
      r[q >> 2] = l + _;
      r[A >> 2] = l - _;
      _ = +r[T >> 2];
      r[K >> 2] = _ + c;
      r[T >> 2] = _ - c;
      c = +r[R >> 2];
      r[x >> 2] = c + v;
      r[R >> 2] = c - v;
      v = +r[C >> 2];
      r[B >> 2] = v + a;
      r[C >> 2] = v - a;
      a = +r[P >> 2];
      r[M >> 2] = a + b;
      r[P >> 2] = a - b;
      b = +r[N >> 2];
      r[D >> 2] = b + f;
      r[N >> 2] = b - f;
      f = +r[z >> 2];
      r[X >> 2] = f + S;
      r[z >> 2] = f - S;
      S = +r[V >> 2];
      r[Z >> 2] = S + e;
      r[V >> 2] = S - e;
      e = +r[G >> 2];
      r[W >> 2] = e + u;
      r[G >> 2] = e - u;
      u = +r[p >> 2];
      r[F >> 2] = u + i;
      r[p >> 2] = u - i;
      i = +r[d >> 2];
      r[s >> 2] = i + t;
      r[d >> 2] = i - t;
      t = +r[h >> 2];
      r[g >> 2] = t + k;
      r[h >> 2] = t - k;
      return;
    }
    function je(i, n, t) {
      i = i | 0;
      n = n | 0;
      t = t | 0;
      var r = 0;
      e: do
        switch (n | 0) {
          case 1e3: {
            z(i, 4) | 0;
            e[(i + 152) >> 2] = 470;
            r = 14;
            break;
          }
          case 1004:
          case 1001: {
            z(i, 4) | 0;
            e[(i + 152) >> 2] = 480;
            r = 15;
            break;
          }
          case 1005:
          case 1002: {
            z(i, 4) | 0;
            e[(i + 152) >> 2] = 500;
            r = 17;
            break;
          }
          case 1003: {
            e[(i + 152) >> 2] = 320;
            Ar(i, 320, t) | 0;
            z(i, 0) | 0;
            r = 320;
            return r | 0;
          }
          case 1007:
          case 1006: {
            z(i, 4) | 0;
            e[(i + 152) >> 2] = 460;
            r = 13;
            break;
          }
          default: {
            r = (i + 152) | 0;
            e[r >> 2] = n;
            switch (n | 0) {
              case 460: {
                r = 13;
                break e;
              }
              case 490: {
                A(i, 1, t);
                r = 490;
                return r | 0;
              }
              case 430: {
                A(i, 7, t);
                r = 430;
                return r | 0;
              }
              case 500: {
                r = 17;
                break e;
              }
              case 410: {
                A(i, 9, t);
                r = 410;
                return r | 0;
              }
              case 480: {
                r = 15;
                break e;
              }
              case 440: {
                A(i, 6, t);
                r = 440;
                return r | 0;
              }
              case 470: {
                r = 14;
                break e;
              }
              case 420: {
                A(i, 8, t);
                r = 420;
                return r | 0;
              }
              case 450: {
                A(i, 5, t);
                r = 450;
                return r | 0;
              }
              default:
                if (((n + -8) | 0) >>> 0 < 313) {
                  r = Ar(i, n, t) | 0;
                  return r | 0;
                } else {
                  e[r >> 2] = 0;
                  r = n;
                  return r | 0;
                }
            }
          }
        }
      while (0);
      if ((r | 0) == 13) {
        A(i, 4, t);
        r = 460;
        return r | 0;
      } else if ((r | 0) == 14) {
        A(i, 3, t);
        r = 470;
        return r | 0;
      } else if ((r | 0) == 15) {
        A(i, 2, t);
        r = 480;
        return r | 0;
      } else if ((r | 0) == 17) {
        A(i, 0, t);
        r = 500;
        return r | 0;
      }
      return 0;
    }
    function Ar(t, a, n) {
      t = t | 0;
      a = a | 0;
      n = n | 0;
      var o = 0,
        s = 0,
        i = 0;
      o = Ue(a & 65535) | 0;
      z(t, 3) | 0;
      _e(t, a) | 0;
      s = He(t) | 0;
      _e(t, (s | 0) < 320 ? s : 320) | 0;
      s = He(t) | 0;
      _e(t, (s | 0) > 8 ? s : 8) | 0;
      Tr(t, He(t) | 0) | 0;
      if (((o + -12) | 0) >>> 0 < 5) ve(t, Ee(t) | 0 | 2) | 0;
      if (o >>> 0 < 13) di(t, 1) | 0;
      n = (n | 0) != 0;
      if (!n) {
        if ((Be(t) | 0) == -1) Z(t, e[(10560 + ((o * 52) | 0) + 4) >> 2] | 0) | 0;
        if ((Ce(t) | 0) == -1) X(t, e[(10560 + ((o * 52) | 0) + 8) >> 2] | 0) | 0;
        i = +Ie(t) + 1;
        if ((i != i) | (0 != 0) | (i == 0)) G(t, +r[(10560 + ((o * 52) | 0) + 16) >> 2]);
        i = +Je(t) + 1;
        if ((i != i) | (0 != 0) | (i == 0)) ce(t, +r[(10560 + ((o * 52) | 0) + 20) >> 2]) | 0;
        i = +Xe(t) + 1;
        if ((i != i) | (0 != 0) | (i == 0)) ue(t, +r[(10560 + ((o * 52) | 0) + 24) >> 2]) | 0;
      } else {
        Z(t, e[(10560 + ((o * 52) | 0) + 4) >> 2] | 0) | 0;
        X(t, e[(10560 + ((o * 52) | 0) + 8) >> 2] | 0) | 0;
        G(t, +r[(10560 + ((o * 52) | 0) + 16) >> 2]);
        ce(t, +r[(10560 + ((o * 52) | 0) + 20) >> 2]) | 0;
        ue(t, +r[(10560 + ((o * 52) | 0) + 24) >> 2]) | 0;
      }
      i = +xr(t);
      Ir(t, +r[(10560 + ((o * 52) | 0) + 28) >> 2] * i) | 0;
      if (n) {
        i = +r[(10560 + ((o * 52) | 0) + 32) >> 2];
        pe(t, i) | 0;
        we(t, i * 1.1) | 0;
        he(t, +r[(10560 + ((o * 52) | 0) + 36) >> 2]) | 0;
        me(t, +r[(10560 + ((o * 52) | 0) + 40) >> 2]) | 0;
        de(t, +r[(10560 + ((o * 52) | 0) + 44) >> 2]) | 0;
        n = (10560 + ((o * 52) | 0)) | 0;
        n = e[n >> 2] | 0;
        i = +(n | 0);
        i = i * 0.015625;
        n = (t + 288) | 0;
        n = e[n >> 2] | 0;
        n = (n + 280) | 0;
        r[n >> 2] = i;
        return a | 0;
      }
      i = +fr(t);
      if ((i != i) | (0 != 0) | (i == 0)) pe(t, +r[(10560 + ((o * 52) | 0) + 32) >> 2]) | 0;
      i = +ar(t);
      if ((i != i) | (0 != 0) | (i == 0)) we(t, +r[(10560 + ((o * 52) | 0) + 32) >> 2] * 1.1) | 0;
      i = +ir(t);
      if ((i != i) | (0 != 0) | (i == 0)) he(t, +r[(10560 + ((o * 52) | 0) + 36) >> 2]) | 0;
      i = +nr(t) + 1;
      if ((i != i) | (0 != 0) | (i == 0)) me(t, +r[(10560 + ((o * 52) | 0) + 40) >> 2]) | 0;
      i = +$e(t) + 1;
      if (!((i != i) | (0 != 0) | (i == 0))) {
        n = (10560 + ((o * 52) | 0)) | 0;
        n = e[n >> 2] | 0;
        i = +(n | 0);
        i = i * 0.015625;
        n = (t + 288) | 0;
        n = e[n >> 2] | 0;
        n = (n + 280) | 0;
        r[n >> 2] = i;
        return a | 0;
      }
      de(t, +r[(10560 + ((o * 52) | 0) + 44) >> 2]) | 0;
      n = (10560 + ((o * 52) | 0)) | 0;
      n = e[n >> 2] | 0;
      i = +(n | 0);
      i = i * 0.015625;
      n = (t + 288) | 0;
      n = e[n >> 2] | 0;
      n = (n + 280) | 0;
      r[n >> 2] = i;
      return a | 0;
    }
    function A(i, n, y) {
      i = i | 0;
      n = n | 0;
      y = y | 0;
      var t = 0,
        b = 0,
        k = 0,
        _ = 0,
        g = 0,
        a = 0,
        F = 0,
        M = 0,
        h = 0,
        u = 0,
        d = 0,
        c = 0,
        l = 0,
        f = 0,
        m = 0,
        o = 0,
        w = 0,
        v = 0,
        E = 0,
        p = 0,
        s = 0,
        S = 0;
      m = De(i) | 0;
      if (((m | 0) == 1) | ((m | 0) == 4)) t = 9808;
      else t = 9056;
      b = (i + 160) | 0;
      a = +r[b >> 2];
      M = e[(t + ((n * 68) | 0) + 4) >> 2] | 0;
      m = e[(t + ((n * 68) | 0) + 8) >> 2] | 0;
      k = e[(t + ((n * 68) | 0) + 12) >> 2] | 0;
      h = +r[(t + ((n * 68) | 0) + 16) >> 2];
      u = +r[(t + ((n * 68) | 0) + 20) >> 2];
      d = +r[(t + ((n * 68) | 0) + 24) >> 2];
      c = +r[(t + ((n * 68) | 0) + 28) >> 2];
      l = +r[(t + ((n * 68) | 0) + 32) >> 2];
      f = +r[(t + ((n * 68) | 0) + 36) >> 2];
      o = +r[(t + ((n * 68) | 0) + 40) >> 2];
      w = +r[(t + ((n * 68) | 0) + 44) >> 2];
      F = e[(t + ((n * 68) | 0) + 48) >> 2] | 0;
      v = e[(t + ((n * 68) | 0) + 52) >> 2] | 0;
      E = +r[(t + ((n * 68) | 0) + 56) >> 2];
      p = +r[(t + ((n * 68) | 0) + 60) >> 2];
      _ = +r[(t + ((n * 68) | 0) + 64) >> 2];
      s = (n + 1) | 0;
      h = (+r[(t + ((s * 68) | 0) + 16) >> 2] - h) * a + h;
      u = (+r[(t + ((s * 68) | 0) + 20) >> 2] - u) * a + u;
      d = (+r[(t + ((s * 68) | 0) + 24) >> 2] - d) * a + d;
      c = (+r[(t + ((s * 68) | 0) + 28) >> 2] - c) * a + c;
      l = (+r[(t + ((s * 68) | 0) + 32) >> 2] - l) * a + l;
      f = (+r[(t + ((s * 68) | 0) + 36) >> 2] - f) * a + f;
      o = (+r[(t + ((s * 68) | 0) + 40) >> 2] - o) * a + o;
      w = (+r[(t + ((s * 68) | 0) + 44) >> 2] - w) * a + w;
      v = ~~(+(((e[(t + ((s * 68) | 0) + 52) >> 2] | 0) - v) | 0) * a + +(v | 0));
      E = (+r[(t + ((s * 68) | 0) + 56) >> 2] - E) * a + E;
      p = (+r[(t + ((s * 68) | 0) + 60) >> 2] - p) * a + p;
      _ = (+r[(t + ((s * 68) | 0) + 64) >> 2] - _) * a + _;
      Zr(i, e[(t + ((n * 68) | 0)) >> 2] | 0) | 0;
      t = (y | 0) != 0;
      if (!t) {
        if ((Be(i) | 0) == -1) Z(i, M) | 0;
        if ((Ce(i) | 0) == -1) X(i, m) | 0;
      } else {
        Z(i, M) | 0;
        X(i, m) | 0;
      }
      if (k) Wr(i, k) | 0;
      if (!t) {
        S = +Je(i) + 1;
        if ((S != S) | (0 != 0) | (S == 0)) ce(i, h) | 0;
        h = +Xe(i) + 1;
        if ((h != h) | (0 != 0) | (h == 0)) ue(i, u) | 0;
        u = +fr(i);
        if ((u != u) | (0 != 0) | (u == 0)) pe(i, d) | 0;
        d = +ar(i);
        if ((d != d) | (0 != 0) | (d == 0)) we(i, c) | 0;
      } else {
        ce(i, h) | 0;
        ue(i, u) | 0;
        pe(i, d) | 0;
        we(i, c) | 0;
      }
      if (!((De(i) | 0) != 1 ? (De(i) | 0) != 4 : 0)) ti(i, 5) | 0;
      if (!t) {
        c = +ir(i);
        if ((c != c) | (0 != 0) | (c == 0)) he(i, l) | 0;
        l = +nr(i) + 1;
        if ((l != l) | (0 != 0) | (l == 0)) me(i, f) | 0;
        f = +li(i);
        if ((f != f) | (0 != 0) | (f == 0)) rr(i, o) | 0;
      } else {
        he(i, l) | 0;
        me(i, f) | 0;
        rr(i, o) | 0;
      }
      do
        if (w > 0) {
          if (t) {
            de(i, w) | 0;
            break;
          }
          o = +$e(i) + 1;
          if ((o != o) | (0 != 0) | (o == 0)) de(i, w) | 0;
        }
      while (0);
      if ((F | 0) > 0) ve(i, Ee(i) | 0 | 2) | 0;
      if ((v | 0) > 0 ? ((g = Ee(i) | 0), ((g & 66060288) | 0) == 0) : 0) ve(i, g | (v << 20)) | 0;
      if (t) {
        G(i, E);
        n = (i + 288) | 0;
        n = e[n >> 2] | 0;
        m = (n + 280) | 0;
        r[m >> 2] = p;
        n = (n + 224) | 0;
        r[n >> 2] = _;
        return;
      }
      o = +Ie(i) + 1;
      if ((o != o) | (0 != 0) | (o == 0)) G(i, E);
      e[(i + 164) >> 2] = n;
      r[b >> 2] = a;
      n = (i + 288) | 0;
      n = e[n >> 2] | 0;
      m = (n + 280) | 0;
      r[m >> 2] = p;
      n = (n + 224) | 0;
      r[n >> 2] = _;
      return;
    }
    function Q(r, d, m, s, u, f, a, _) {
      r = r | 0;
      d = d | 0;
      m = m | 0;
      s = s | 0;
      u = u | 0;
      f = f | 0;
      a = a | 0;
      _ = _ | 0;
      var n = 0,
        o = 0,
        i = 0,
        c = 0,
        h = 0,
        S = 0,
        w = 0,
        b = 0,
        k = 0,
        p = 0,
        v = 0,
        E = 0;
      E = t;
      t = (t + 720) | 0;
      v = (E + 456) | 0;
      p = (E + 228) | 0;
      w = E;
      e[w >> 2] = r;
      b = (0 - d) | 0;
      e: do
        if (
          ((u | 0) != 0) | ((s | 0) != 1)
            ? ((i = (r + (0 - (e[(_ + (f << 2)) >> 2] | 0))) | 0), (g[m & 1](i, r) | 0) >= 1)
            : 0
        ) {
          c = i;
          n = u;
          i = 1;
          o = s;
          while (1) {
            if (((a | 0) == 0) & ((f | 0) > 1)) {
              u = e[(_ + ((f + -2) << 2)) >> 2] | 0;
              if ((g[m & 1]((r + b) | 0, c) | 0) > -1) {
                c = r;
                u = i;
                break e;
              }
              if ((g[m & 1]((r + (0 - (u + d))) | 0, c) | 0) > -1) {
                c = r;
                u = i;
                break e;
              }
            }
            u = (i + 1) | 0;
            e[(w + (i << 2)) >> 2] = c;
            r = (o + -1) | 0;
            do
              if (r) {
                if (!(r & 1)) {
                  i = r;
                  r = 0;
                  do {
                    r = (r + 1) | 0;
                    i = i >>> 1;
                  } while (((i & 1) | 0) == 0);
                  if (!r) h = 10;
                } else h = 10;
                if ((h | 0) == 10) {
                  h = 0;
                  if (!n) {
                    r = 64;
                    h = 15;
                    break;
                  }
                  if (!(n & 1)) {
                    r = n;
                    i = 0;
                  } else {
                    a = 0;
                    i = o;
                    s = n;
                    r = 0;
                    break;
                  }
                  while (1) {
                    s = (i + 1) | 0;
                    r = r >>> 1;
                    if (r & 1) {
                      r = s;
                      break;
                    } else i = s;
                  }
                  if (!r) {
                    a = 0;
                    i = o;
                    s = n;
                    r = 0;
                    break;
                  } else r = (i + 33) | 0;
                }
                if (r >>> 0 > 31) h = 15;
                else {
                  a = r;
                  i = o;
                  s = n;
                }
              } else {
                r = 32;
                h = 15;
              }
            while (0);
            if ((h | 0) == 15) {
              h = 0;
              a = (r + -32) | 0;
              i = n;
              s = 0;
            }
            o = (s << (32 - a)) | (i >>> a);
            n = s >>> a;
            f = (r + f) | 0;
            if (!(((n | 0) != 0) | ((o | 0) != 1))) break e;
            i = (c + (0 - (e[(_ + (f << 2)) >> 2] | 0))) | 0;
            if ((g[m & 1](i, e[w >> 2] | 0) | 0) < 1) {
              r = c;
              a = 0;
              h = 18;
              break;
            } else {
              r = c;
              a = 0;
              c = i;
              i = u;
            }
          }
        } else {
          u = 1;
          h = 18;
        }
      while (0);
      if ((h | 0) == 18)
        if (!a) c = r;
        else {
          t = E;
          return;
        }
      e: do
        if ((u | 0) >= 2 ? ((S = (w + (u << 2)) | 0), (e[S >> 2] = v), (d | 0) != 0) : 0) {
          o = d;
          a = v;
          while (1) {
            n = o >>> 0 > 256 ? 256 : o;
            r = e[w >> 2] | 0;
            l(a | 0, r | 0, n | 0) | 0;
            s = 0;
            do {
              i = s;
              s = (s + 1) | 0;
              a = r;
              r = e[(w + (s << 2)) >> 2] | 0;
              l(a | 0, r | 0, n | 0) | 0;
              e[(w + (i << 2)) >> 2] = a + n;
            } while ((s | 0) != (u | 0));
            if ((o | 0) == (n | 0)) break e;
            o = (o - n) | 0;
            a = e[S >> 2] | 0;
          }
        }
      while (0);
      e[p >> 2] = c;
      e: do
        if ((f | 0) > 1) {
          n = c;
          u = c;
          r = 1;
          while (1) {
            o = (n + b) | 0;
            i = (f + -2) | 0;
            s = (n + (0 - ((e[(_ + (i << 2)) >> 2] | 0) + d))) | 0;
            if ((g[m & 1](u, s) | 0) > -1 ? (g[m & 1](u, o) | 0) > -1 : 0) {
              a = r;
              break;
            }
            a = (r + 1) | 0;
            n = (p + (r << 2)) | 0;
            if ((g[m & 1](s, o) | 0) > -1) {
              e[n >> 2] = s;
              o = s;
              f = (f + -1) | 0;
            } else {
              e[n >> 2] = o;
              f = i;
            }
            if ((f | 0) <= 1) break;
            n = o;
            u = e[p >> 2] | 0;
            r = a;
          }
          if ((a | 0) >= 2 ? ((k = (p + (a << 2)) | 0), (e[k >> 2] = v), (d | 0) != 0) : 0) {
            n = v;
            while (1) {
              f = d >>> 0 > 256 ? 256 : d;
              o = e[p >> 2] | 0;
              l(n | 0, o | 0, f | 0) | 0;
              n = o;
              o = 0;
              do {
                c = o;
                o = (o + 1) | 0;
                i = n;
                n = e[(p + (o << 2)) >> 2] | 0;
                l(i | 0, n | 0, f | 0) | 0;
                e[(p + (c << 2)) >> 2] = i + f;
              } while ((o | 0) != (a | 0));
              if ((d | 0) == (f | 0)) break e;
              d = (d - f) | 0;
              n = e[k >> 2] | 0;
            }
          }
        }
      while (0);
      t = E;
      return;
    }
    function Ji(e) {
      e = e | 0;
      return (((e + -65) | 0) >>> 0 < 26) | 0;
    }
    function q(e) {
      e = e | 0;
      var r = 0;
      r = (Ji(e) | 0) == 0;
      return (r ? e : e | 32) | 0;
    }
    function Or(i) {
      i = +i;
      var o = 0,
        a = 0,
        l = 0,
        s = 0,
        u = 0,
        c = 0;
      s = t;
      t = (t + 16) | 0;
      l = s;
      f[n >> 3] = i;
      o = e[(n + 4) >> 2] | 0;
      a = o & 2147483647;
      do
        if (a >>> 0 > 1083174911) {
          if (
            (((o | 0) > -1) | (((o | 0) == -1) & ((e[n >> 2] | 0) >>> 0 > 4294967295))) &
            (a >>> 0 > 1083179007)
          ) {
            i = i * 8.98846567431158e307;
            t = s;
            return +i;
          }
          if (a >>> 0 > 2146435071) {
            i = -1 / i;
            t = s;
            return +i;
          }
          if ((o | 0) < 0)
            if (!(i <= -1075)) {
              if (!(i + -4503599627370496 + 4503599627370496 != i)) break;
              r[l >> 2] = -1.401298464324817e-45 / i;
              break;
            } else {
              r[l >> 2] = -1.401298464324817e-45 / i;
              i = 0;
              t = s;
              return +i;
            }
        } else if (a >>> 0 < 1016070144) {
          i = i + 1;
          t = s;
          return +i;
        }
      while (0);
      c = i + 26388279066624;
      f[n >> 3] = c;
      o = ((e[n >> 2] | 0) + 128) | 0;
      a = (o << 1) & 510;
      u = +f[(91712 + (a << 3)) >> 3];
      i = i - (c + -26388279066624) - +f[(91712 + ((a | 1) << 3)) >> 3];
      i = +ji(
        u +
          u *
            i *
            (i *
              (i * (i * (i * 0.0013333559164630223 + 0.009618129842126066) + 0.0555041086648214) +
                0.2402265069591) +
              0.6931471805599453),
        (((o & -256) | 0) / 256) | 0
      );
      t = s;
      return +i;
    }
    function Fr(r, i) {
      r = +r;
      i = i | 0;
      var t = 0,
        a = 0,
        o = 0;
      f[n >> 3] = r;
      t = e[n >> 2] | 0;
      a = e[(n + 4) >> 2] | 0;
      o = be(t | 0, a | 0, 52) | 0;
      o = o & 2047;
      if ((o | 0) == 2047) return +r;
      else if (!o) {
        if (r != 0) {
          r = +Fr(r * 0x10000000000000000, i);
          t = ((e[i >> 2] | 0) + -64) | 0;
        } else t = 0;
        e[i >> 2] = t;
        return +r;
      } else {
        e[i >> 2] = o + -1022;
        e[n >> 2] = t;
        e[(n + 4) >> 2] = (a & -2146435073) | 1071644672;
        r = +f[n >> 3];
        return +r;
      }
      return 0;
    }
    function Xi(e, r) {
      e = +e;
      r = r | 0;
      return +(+Fr(e, r));
    }
    function Mr(r) {
      r = +r;
      var i = 0,
        s = 0,
        a = 0,
        c = 0,
        t = 0,
        l = 0,
        u = 0,
        o = 0;
      f[n >> 3] = r;
      s = e[n >> 2] | 0;
      i = e[(n + 4) >> 2] | 0;
      a = (i | 0) < 0;
      do
        if (!(a | (i >>> 0 < 1048576))) {
          if (i >>> 0 > 2146435071) return +r;
          if (((s | 0) == 0) & (0 == 0) & ((i | 0) == 1072693248)) {
            r = 0;
            return +r;
          } else {
            a = s;
            s = -1023;
          }
        } else {
          if (((s | 0) == 0) & (((i & 2147483647) | 0) == 0)) {
            r = -1 / (r * r);
            return +r;
          }
          if (!a) {
            f[n >> 3] = r * 0x40000000000000;
            i = e[(n + 4) >> 2] | 0;
            a = e[n >> 2] | 0;
            s = -1077;
            break;
          }
          r = (r - r) / 0;
          return +r;
        }
      while (0);
      i = (i + 614242) | 0;
      e[n >> 2] = a;
      e[(n + 4) >> 2] = (i & 1048575) + 1072079006;
      o = +f[n >> 3] + -1;
      r = o * (o * 0.5);
      l = o / (o + 2);
      u = l * l;
      t = u * u;
      f[n >> 3] = o - r;
      a = e[(n + 4) >> 2] | 0;
      e[n >> 2] = 0;
      e[(n + 4) >> 2] = a;
      c = +f[n >> 3];
      r =
        l *
          (r +
            (t * (t * (t * 0.15313837699209373 + 0.22222198432149784) + 0.3999999999940942) +
              u *
                (t * (t * (t * 0.14798198605116586 + 0.1818357216161805) + 0.2857142874366239) +
                  0.6666666666666735))) +
        (o - c - r);
      o = c * 0.4342944818781689;
      t = +((s + (i >>> 20)) | 0);
      u = t * 0.30102999566361177;
      l = u + o;
      r =
        l +
        (o +
          (u - l) +
          (r * 0.4342944818781689 +
            (t * 3.694239077158931e-13 + (c + r) * 2.5082946711645275e-11)));
      return +r;
    }
    function ji(i, t) {
      i = +i;
      t = t | 0;
      var r = 0;
      if ((t | 0) > 1023) {
        i = i * 8.98846567431158e307;
        r = (t + -1023) | 0;
        if ((r | 0) > 1023) {
          r = (t + -2046) | 0;
          r = (r | 0) > 1023 ? 1023 : r;
          i = i * 8.98846567431158e307;
        }
      } else if ((t | 0) < -1022) {
        i = i * 2.2250738585072014e-308;
        r = (t + 1022) | 0;
        if ((r | 0) < -1022) {
          r = (t + 2044) | 0;
          r = (r | 0) < -1022 ? -1022 : r;
          i = i * 2.2250738585072014e-308;
        }
      } else r = t;
      t = Le((r + 1023) | 0, 0, 52) | 0;
      r = m;
      e[n >> 2] = t;
      e[(n + 4) >> 2] = r;
      return +(i * +f[n >> 3]);
    }
    function yr(e, r) {
      e = e | 0;
      r = r | 0;
      if (!e) e = 0;
      else e = xi(e, r, 0) | 0;
      return e | 0;
    }
    function xi(r, t, n) {
      r = r | 0;
      t = t | 0;
      n = n | 0;
      if (!r) {
        r = 1;
        return r | 0;
      }
      if (t >>> 0 < 128) {
        i[r >> 0] = t;
        r = 1;
        return r | 0;
      }
      if (t >>> 0 < 2048) {
        i[r >> 0] = (t >>> 6) | 192;
        i[(r + 1) >> 0] = (t & 63) | 128;
        r = 2;
        return r | 0;
      }
      if ((t >>> 0 < 55296) | (((t & -8192) | 0) == 57344)) {
        i[r >> 0] = (t >>> 12) | 224;
        i[(r + 1) >> 0] = ((t >>> 6) & 63) | 128;
        i[(r + 2) >> 0] = (t & 63) | 128;
        r = 3;
        return r | 0;
      }
      if (((t + -65536) | 0) >>> 0 < 1048576) {
        i[r >> 0] = (t >>> 18) | 240;
        i[(r + 1) >> 0] = ((t >>> 12) & 63) | 128;
        i[(r + 2) >> 0] = ((t >>> 6) & 63) | 128;
        i[(r + 3) >> 0] = (t & 63) | 128;
        r = 4;
        return r | 0;
      } else {
        e[(V() | 0) >> 2] = 84;
        r = -1;
        return r | 0;
      }
      return 0;
    }
    function Ci(t) {
      t = t | 0;
      var r = 0,
        n = 0;
      r = (t + 74) | 0;
      n = i[r >> 0] | 0;
      i[r >> 0] = (n + 255) | n;
      r = e[t >> 2] | 0;
      if (!(r & 8)) {
        e[(t + 8) >> 2] = 0;
        e[(t + 4) >> 2] = 0;
        r = e[(t + 44) >> 2] | 0;
        e[(t + 28) >> 2] = r;
        e[(t + 20) >> 2] = r;
        e[(t + 16) >> 2] = r + (e[(t + 48) >> 2] | 0);
        r = 0;
        return r | 0;
      } else {
        e[t >> 2] = r | 32;
        r = -1;
        return r | 0;
      }
      return 0;
    }
    function h(a, s, n) {
      a = a | 0;
      s = s | 0;
      n = n | 0;
      var t = 0,
        r = 0,
        o = 0,
        f = 0;
      t = (n + 16) | 0;
      r = e[t >> 2] | 0;
      do
        if (!r)
          if (!(Ci(n) | 0)) {
            r = e[t >> 2] | 0;
            break;
          } else {
            t = 0;
            return t | 0;
          }
      while (0);
      f = (n + 20) | 0;
      t = e[f >> 2] | 0;
      if (((r - t) | 0) >>> 0 < s >>> 0) {
        t = y[e[(n + 36) >> 2] & 3](n, a, s) | 0;
        return t | 0;
      }
      e: do
        if ((i[(n + 75) >> 0] | 0) > -1) {
          r = s;
          while (1) {
            if (!r) {
              o = s;
              r = 0;
              break e;
            }
            o = (r + -1) | 0;
            if ((i[(a + o) >> 0] | 0) == 10) break;
            else r = o;
          }
          if ((y[e[(n + 36) >> 2] & 3](n, a, r) | 0) >>> 0 < r >>> 0) {
            t = r;
            return t | 0;
          } else {
            o = (s - r) | 0;
            a = (a + r) | 0;
            t = e[f >> 2] | 0;
            break;
          }
        } else {
          o = s;
          r = 0;
        }
      while (0);
      l(t | 0, a | 0, o | 0) | 0;
      e[f >> 2] = (e[f >> 2] | 0) + o;
      t = (r + o) | 0;
      return t | 0;
    }
    function gr(i, r, n) {
      i = i | 0;
      r = r | 0;
      n = n | 0;
      var o = 0,
        a = 0;
      o = t;
      t = (t + 16) | 0;
      a = o;
      e[a >> 2] = n;
      r = Di(i, r, a) | 0;
      t = o;
      return r | 0;
    }
    function Li(r, s, o) {
      r = r | 0;
      s = s | 0;
      o = o | 0;
      var i = 0,
        l = 0,
        c = 0,
        m = 0,
        w = 0,
        d = 0,
        f = 0,
        n = 0,
        h = 0,
        u = 0,
        a = 0;
      a = t;
      t = (t + 224) | 0;
      f = (a + 120) | 0;
      u = (a + 80) | 0;
      h = a;
      n = (a + 136) | 0;
      i = u;
      l = (i + 40) | 0;
      do {
        e[i >> 2] = 0;
        i = (i + 4) | 0;
      } while ((i | 0) < (l | 0));
      e[f >> 2] = e[o >> 2];
      if ((qe(0, s, f, h, u) | 0) < 0) {
        n = -1;
        t = a;
        return n | 0;
      }
      i = (r + 48) | 0;
      if (!(e[i >> 2] | 0)) {
        c = (r + 44) | 0;
        m = e[c >> 2] | 0;
        e[c >> 2] = n;
        w = (r + 28) | 0;
        e[w >> 2] = n;
        d = (r + 20) | 0;
        e[d >> 2] = n;
        e[i >> 2] = 80;
        l = (r + 16) | 0;
        e[l >> 2] = n + 80;
        o = qe(r, s, f, h, u) | 0;
        if (m) {
          y[e[(r + 36) >> 2] & 3](r, 0, 0) | 0;
          o = (e[d >> 2] | 0) == 0 ? -1 : o;
          e[c >> 2] = m;
          e[i >> 2] = 0;
          e[l >> 2] = 0;
          e[w >> 2] = 0;
          e[d >> 2] = 0;
        }
      } else o = qe(r, s, f, h, u) | 0;
      n = o;
      t = a;
      return n | 0;
    }
    function Pi(o, r, u, c) {
      o = o | 0;
      r = r | 0;
      u = u | 0;
      c = c | 0;
      var a = 0,
        n = 0,
        l = 0,
        d = 0,
        s = 0,
        f = 0;
      f = t;
      t = (t + 128) | 0;
      a = (f + 112) | 0;
      s = f;
      n = s;
      l = 95808;
      d = (n + 112) | 0;
      do {
        e[n >> 2] = e[l >> 2];
        n = (n + 4) | 0;
        l = (l + 4) | 0;
      } while ((n | 0) < (d | 0));
      if (((r + -1) | 0) >>> 0 > 2147483646)
        if (!r) r = 1;
        else {
          e[(V() | 0) >> 2] = 75;
          r = -1;
          t = f;
          return r | 0;
        }
      else a = o;
      n = (-2 - a) | 0;
      n = r >>> 0 > n >>> 0 ? n : r;
      e[(s + 48) >> 2] = n;
      o = (s + 20) | 0;
      e[o >> 2] = a;
      e[(s + 44) >> 2] = a;
      r = (a + n) | 0;
      a = (s + 16) | 0;
      e[a >> 2] = r;
      e[(s + 28) >> 2] = r;
      r = Li(s, u, c) | 0;
      if (!n) {
        t = f;
        return r | 0;
      }
      o = e[o >> 2] | 0;
      i[(o + ((((o | 0) == (e[a >> 2] | 0)) << 31) >> 31)) >> 0] = 0;
      t = f;
      return r | 0;
    }
    function Di(e, r, i) {
      e = e | 0;
      r = r | 0;
      i = i | 0;
      return Pi(e, 2147483647, r, i) | 0;
    }
    function Mi(t, o, r) {
      t = t | 0;
      o = o | 0;
      r = r | 0;
      var a = 0,
        f = 0,
        l = 0,
        n = 0;
      l = o & 255;
      a = (r | 0) != 0;
      e: do
        if (a & (((t & 3) | 0) != 0)) {
          f = o & 255;
          while (1) {
            if ((i[t >> 0] | 0) == (f << 24) >> 24) {
              n = 6;
              break e;
            }
            t = (t + 1) | 0;
            r = (r + -1) | 0;
            a = (r | 0) != 0;
            if (!(a & (((t & 3) | 0) != 0))) {
              n = 5;
              break;
            }
          }
        } else n = 5;
      while (0);
      if ((n | 0) == 5)
        if (a) n = 6;
        else r = 0;
      e: do
        if ((n | 0) == 6) {
          f = o & 255;
          if ((i[t >> 0] | 0) != (f << 24) >> 24) {
            a = s(l, 16843009) | 0;
            r: do
              if (r >>> 0 > 3)
                while (1) {
                  o = e[t >> 2] ^ a;
                  if (((o & -2139062144) ^ -2139062144) & (o + -16843009)) break;
                  t = (t + 4) | 0;
                  r = (r + -4) | 0;
                  if (r >>> 0 <= 3) {
                    n = 11;
                    break r;
                  }
                }
              else n = 11;
            while (0);
            if ((n | 0) == 11)
              if (!r) {
                r = 0;
                break;
              }
            while (1) {
              if ((i[t >> 0] | 0) == (f << 24) >> 24) break e;
              t = (t + 1) | 0;
              r = (r + -1) | 0;
              if (!r) {
                r = 0;
                break;
              }
            }
          }
        }
      while (0);
      return ((r | 0) != 0 ? t : 0) | 0;
    }
    function qe(y, r, O, Ae, _e) {
      y = y | 0;
      r = r | 0;
      O = O | 0;
      Ae = Ae | 0;
      _e = _e | 0;
      var Re = 0,
        le = 0,
        D = 0,
        u = 0,
        d = 0,
        l = 0,
        F = 0,
        a = 0,
        w = 0,
        G = 0,
        W = 0,
        p = 0,
        v = 0,
        X = 0,
        A = 0,
        L = 0,
        H = 0,
        oe = 0,
        P = 0,
        B = 0,
        N = 0,
        b = 0,
        j = 0,
        me = 0,
        J = 0,
        Z = 0,
        x = 0,
        I = 0,
        k = 0,
        we = 0,
        ee = 0,
        he = 0,
        Q = 0,
        fe = 0,
        de = 0,
        He = 0,
        ze = 0,
        Ue = 0,
        ce = 0,
        $e = 0,
        er = 0,
        C = 0,
        ie = 0,
        ve = 0,
        Fe = 0,
        qe = 0,
        re = 0,
        Se = 0,
        Me = 0,
        Be = 0,
        ge = 0,
        tr = 0,
        Ee = 0,
        Te = 0,
        lr = 0,
        cr = 0,
        Ke = 0,
        ye = 0,
        Qe = 0,
        ir = 0,
        Ze = 0,
        dr = 0,
        ur = 0,
        $ = 0,
        nr = 0,
        je = 0,
        K = 0,
        _ = 0,
        Ve = 0,
        E = 0,
        sr = 0,
        ne = 0,
        ue = 0,
        Ie = 0,
        hr = 0,
        or = 0,
        ke = 0,
        De = 0,
        pe = 0,
        Oe = 0,
        rr = 0,
        q = 0,
        fr = 0,
        U = 0,
        xe = 0,
        ar = 0,
        Je = 0,
        Ye = 0,
        Xe = 0,
        M = 0,
        Pe = 0,
        ae = 0,
        Ce = 0,
        T = 0,
        g = 0,
        We = 0,
        Ge = 0,
        Y = 0,
        z = 0;
      z = t;
      t = (t + 864) | 0;
      rr = (z + 16) | 0;
      U = (z + 8) | 0;
      q = (z + 836) | 0;
      Ee = q;
      De = (z + 824) | 0;
      M = (z + 568) | 0;
      Ie = (z + 528) | 0;
      We = z;
      Je = (z + 520) | 0;
      Te = (y | 0) != 0;
      K = (Ie + 40) | 0;
      sr = K;
      Ie = (Ie + 39) | 0;
      hr = (We + 4) | 0;
      or = We;
      ke = (De + 12) | 0;
      De = (De + 11) | 0;
      pe = ke;
      lr = (pe - Ee) | 0;
      cr = (-2 - Ee) | 0;
      dr = (pe + 2) | 0;
      ur = (rr + 288) | 0;
      $ = (q + 9) | 0;
      nr = $;
      je = (q + 8) | 0;
      b = 0;
      B = 0;
      a = 0;
      d = 0;
      G = 0;
      e: while (1) {
        do
          if ((a | 0) > -1)
            if ((d | 0) > ((2147483647 - a) | 0)) {
              e[(V() | 0) >> 2] = 75;
              C = -1;
              break;
            } else {
              C = (d + a) | 0;
              break;
            }
          else C = a;
        while (0);
        d = i[r >> 0] | 0;
        if (!((d << 24) >> 24)) {
          fr = C;
          ar = G;
          k = 344;
          break;
        } else u = r;
        while (1) {
          if ((d << 24) >> 24 == 37) {
            Ve = u;
            Ge = u;
            k = 9;
            break;
          } else if (!((d << 24) >> 24)) {
            Se = u;
            qe = u;
            break;
          }
          N = (u + 1) | 0;
          d = i[N >> 0] | 0;
          u = N;
        }
        r: do
          if ((k | 0) == 9)
            while (1) {
              k = 0;
              if ((i[(Ve + 1) >> 0] | 0) != 37) {
                Se = Ve;
                qe = Ge;
                break r;
              }
              u = (Ge + 1) | 0;
              d = (Ve + 2) | 0;
              if ((i[d >> 0] | 0) == 37) {
                Ve = d;
                Ge = u;
              } else {
                Se = d;
                qe = u;
                break;
              }
            }
        while (0);
        d = (qe - r) | 0;
        if (Te) h(r, d, y) | 0;
        if ((qe | 0) != (r | 0)) {
          r = Se;
          a = C;
          continue;
        }
        a = (Se + 1) | 0;
        l = i[a >> 0] | 0;
        u = (((l << 24) >> 24) + -48) | 0;
        if (u >>> 0 < 10) {
          P = (i[(Se + 2) >> 0] | 0) == 36;
          a = P ? (Se + 3) | 0 : a;
          l = i[a >> 0] | 0;
          N = P ? u : -1;
          G = P ? 1 : G;
        } else N = -1;
        u = (l << 24) >> 24;
        r: do
          if (((u & -32) | 0) == 32) {
            w = 0;
            do {
              if (!((1 << (u + -32)) & 75913)) break r;
              w = (1 << (((l << 24) >> 24) + -32)) | w;
              a = (a + 1) | 0;
              l = i[a >> 0] | 0;
              u = (l << 24) >> 24;
            } while (((u & -32) | 0) == 32);
          } else w = 0;
        while (0);
        do
          if ((l << 24) >> 24 == 42) {
            u = (a + 1) | 0;
            l = ((i[u >> 0] | 0) + -48) | 0;
            if (l >>> 0 < 10 ? (i[(a + 2) >> 0] | 0) == 36 : 0) {
              e[(_e + (l << 2)) >> 2] = 10;
              G = 1;
              l = (a + 3) | 0;
              a = e[(Ae + (((i[u >> 0] | 0) + -48) << 3)) >> 2] | 0;
            } else {
              if (G) {
                Y = -1;
                k = 363;
                break e;
              }
              if (!Te) {
                l = u;
                G = 0;
                I = 0;
                break;
              }
              G = ((e[O >> 2] | 0) + (4 - 1)) & ~(4 - 1);
              a = e[G >> 2] | 0;
              e[O >> 2] = G + 4;
              G = 0;
              l = u;
            }
            if ((a | 0) < 0) {
              w = w | 8192;
              I = (0 - a) | 0;
            } else I = a;
          } else {
            u = (((l << 24) >> 24) + -48) | 0;
            if (u >>> 0 < 10) {
              l = a;
              a = 0;
              do {
                a = (((a * 10) | 0) + u) | 0;
                l = (l + 1) | 0;
                u = ((i[l >> 0] | 0) + -48) | 0;
              } while (u >>> 0 < 10);
              if ((a | 0) < 0) {
                Y = -1;
                k = 363;
                break e;
              } else I = a;
            } else {
              l = a;
              I = 0;
            }
          }
        while (0);
        r: do
          if ((i[l >> 0] | 0) == 46) {
            a = (l + 1) | 0;
            u = i[a >> 0] | 0;
            if ((u << 24) >> 24 != 42) {
              u = (((u << 24) >> 24) + -48) | 0;
              if (u >>> 0 < 10) {
                l = a;
                a = 0;
              } else {
                l = a;
                A = 0;
                break;
              }
              while (1) {
                a = (((a * 10) | 0) + u) | 0;
                l = (l + 1) | 0;
                u = ((i[l >> 0] | 0) + -48) | 0;
                if (u >>> 0 >= 10) {
                  A = a;
                  break r;
                }
              }
            }
            u = (l + 2) | 0;
            a = ((i[u >> 0] | 0) + -48) | 0;
            if (a >>> 0 < 10 ? (i[(l + 3) >> 0] | 0) == 36 : 0) {
              e[(_e + (a << 2)) >> 2] = 10;
              l = (l + 4) | 0;
              A = e[(Ae + (((i[u >> 0] | 0) + -48) << 3)) >> 2] | 0;
              break;
            }
            if (G) {
              Y = -1;
              k = 363;
              break e;
            }
            if (Te) {
              l = ((e[O >> 2] | 0) + (4 - 1)) & ~(4 - 1);
              A = e[l >> 2] | 0;
              e[O >> 2] = l + 4;
              l = u;
            } else {
              l = u;
              A = 0;
            }
          } else A = -1;
        while (0);
        v = 0;
        while (1) {
          a = ((i[l >> 0] | 0) + -65) | 0;
          if (a >>> 0 > 57) {
            Y = -1;
            k = 363;
            break e;
          }
          W = (l + 1) | 0;
          a = i[(95920 + ((v * 58) | 0) + a) >> 0] | 0;
          u = a & 255;
          if (((u + -1) | 0) >>> 0 < 8) {
            l = W;
            v = u;
          } else {
            p = a;
            break;
          }
        }
        if (!((p << 24) >> 24)) {
          Y = -1;
          k = 363;
          break;
        }
        a = (N | 0) > -1;
        r: do
          if ((p << 24) >> 24 == 19)
            if (a) {
              Y = -1;
              k = 363;
              break e;
            } else {
              Ke = b;
              ye = B;
              k = 62;
            }
          else {
            if (a) {
              e[(_e + (N << 2)) >> 2] = u;
              ye = (Ae + (N << 3)) | 0;
              Ke = e[(ye + 4) >> 2] | 0;
              ye = e[ye >> 2] | 0;
              k = 62;
              break;
            }
            if (!Te) {
              Y = 0;
              k = 363;
              break e;
            }
            if ((p & 255) > 20) {
              _ = B;
              E = b;
            } else
              do
                switch (u | 0) {
                  case 10: {
                    _ = ((e[O >> 2] | 0) + (4 - 1)) & ~(4 - 1);
                    E = e[_ >> 2] | 0;
                    e[O >> 2] = _ + 4;
                    _ = E;
                    E = (((E | 0) < 0) << 31) >> 31;
                    break r;
                  }
                  case 11: {
                    E = ((e[O >> 2] | 0) + (4 - 1)) & ~(4 - 1);
                    _ = e[E >> 2] | 0;
                    e[O >> 2] = E + 4;
                    E = 0;
                    break r;
                  }
                  case 9: {
                    E = ((e[O >> 2] | 0) + (4 - 1)) & ~(4 - 1);
                    _ = e[E >> 2] | 0;
                    e[O >> 2] = E + 4;
                    E = b;
                    break r;
                  }
                  case 17: {
                    _ = ((e[O >> 2] | 0) + (8 - 1)) & ~(8 - 1);
                    F = +f[_ >> 3];
                    e[O >> 2] = _ + 8;
                    f[n >> 3] = F;
                    _ = e[n >> 2] | 0;
                    E = e[(n + 4) >> 2] | 0;
                    break r;
                  }
                  case 18: {
                    _ = ((e[O >> 2] | 0) + (8 - 1)) & ~(8 - 1);
                    F = +f[_ >> 3];
                    e[O >> 2] = _ + 8;
                    f[n >> 3] = F;
                    _ = e[n >> 2] | 0;
                    E = e[(n + 4) >> 2] | 0;
                    break r;
                  }
                  case 16: {
                    E = ((e[O >> 2] | 0) + (4 - 1)) & ~(4 - 1);
                    _ = e[E >> 2] | 0;
                    e[O >> 2] = E + 4;
                    _ = _ & 255;
                    E = 0;
                    break r;
                  }
                  case 15: {
                    _ = ((e[O >> 2] | 0) + (4 - 1)) & ~(4 - 1);
                    E = e[_ >> 2] | 0;
                    e[O >> 2] = _ + 4;
                    _ = (E << 24) >> 24;
                    E = ((((((E & 255) << 24) >> 24) | 0) < 0) << 31) >> 31;
                    break r;
                  }
                  case 12: {
                    b = ((e[O >> 2] | 0) + (8 - 1)) & ~(8 - 1);
                    E = b;
                    _ = e[E >> 2] | 0;
                    E = e[(E + 4) >> 2] | 0;
                    e[O >> 2] = b + 8;
                    break r;
                  }
                  case 13: {
                    _ = ((e[O >> 2] | 0) + (4 - 1)) & ~(4 - 1);
                    E = e[_ >> 2] | 0;
                    e[O >> 2] = _ + 4;
                    _ = (E << 16) >> 16;
                    E = ((((((E & 65535) << 16) >> 16) | 0) < 0) << 31) >> 31;
                    break r;
                  }
                  case 14: {
                    E = ((e[O >> 2] | 0) + (4 - 1)) & ~(4 - 1);
                    _ = e[E >> 2] | 0;
                    e[O >> 2] = E + 4;
                    _ = _ & 65535;
                    E = 0;
                    break r;
                  }
                  default: {
                    _ = B;
                    E = b;
                    break r;
                  }
                }
              while (0);
          }
        while (0);
        if ((k | 0) == 62) {
          k = 0;
          if (Te) {
            _ = ye;
            E = Ke;
          } else {
            b = Ke;
            B = ye;
            r = W;
            a = C;
            continue;
          }
        }
        j = i[l >> 0] | 0;
        j = ((v | 0) != 0) & (((j & 15) | 0) == 3) ? j & -33 : j;
        p = w & -65537;
        x = ((w & 8192) | 0) == 0 ? w : p;
        r: do
          switch (j | 0) {
            case 111: {
              u = ((_ | 0) == 0) & ((E | 0) == 0);
              if (u) D = K;
              else {
                D = K;
                r = _;
                d = E;
                do {
                  D = (D + -1) | 0;
                  i[D >> 0] = (r & 7) | 48;
                  r = be(r | 0, d | 0, 3) | 0;
                  d = m;
                } while (!(((r | 0) == 0) & ((d | 0) == 0)));
              }
              Q = (((x & 8) | 0) == 0) | u;
              fe = _;
              de = E;
              we = x;
              ee = A;
              he = (Q & 1) ^ 1;
              Q = Q ? 96400 : 96405;
              k = 89;
              break;
            }
            case 117: {
              ne = E;
              ue = _;
              Pe = 0;
              ae = 96400;
              k = 84;
              break;
            }
            case 99: {
              i[Ie >> 0] = _;
              Me = E;
              Be = _;
              ge = Ie;
              le = p;
              ie = 1;
              ve = 0;
              Fe = 96400;
              re = K;
              break;
            }
            case 109: {
              Oe = ci(e[(V() | 0) >> 2] | 0) | 0;
              k = 94;
              break;
            }
            case 115: {
              Oe = (_ | 0) != 0 ? _ : 96416;
              k = 94;
              break;
            }
            case 105:
            case 100: {
              if ((E | 0) < 0) {
                ue = R(0, 0, _ | 0, E | 0) | 0;
                ne = m;
                Pe = 1;
                ae = 96400;
                k = 84;
                break r;
              }
              if (!(x & 2048)) {
                ae = x & 1;
                ne = E;
                ue = _;
                Pe = ae;
                ae = (ae | 0) == 0 ? 96400 : 96402;
                k = 84;
              } else {
                ne = E;
                ue = _;
                Pe = 1;
                ae = 96401;
                k = 84;
              }
              break;
            }
            case 67: {
              e[We >> 2] = _;
              e[hr >> 2] = 0;
              Qe = We;
              ir = or;
              Xe = -1;
              k = 97;
              break;
            }
            case 83: {
              r = _;
              if (!A) {
                $e = _;
                er = r;
                ce = 0;
                k = 102;
              } else {
                Qe = r;
                ir = _;
                Xe = A;
                k = 97;
              }
              break;
            }
            case 112: {
              xe = x | 8;
              Ye = A >>> 0 > 8 ? A : 8;
              g = 120;
              k = 73;
              break;
            }
            case 88:
            case 120: {
              xe = x;
              Ye = A;
              g = j;
              k = 73;
              break;
            }
            case 65:
            case 71:
            case 70:
            case 69:
            case 97:
            case 103:
            case 102:
            case 101: {
              e[n >> 2] = _;
              e[(n + 4) >> 2] = E;
              F = +f[n >> 3];
              e[U >> 2] = 0;
              if ((E | 0) >= 0)
                if (!(x & 2048)) {
                  J = x & 1;
                  me = J;
                  J = (J | 0) == 0 ? 96425 : 96430;
                } else {
                  me = 1;
                  J = 96427;
                }
              else {
                F = -F;
                me = 1;
                J = 96424;
              }
              f[n >> 3] = F;
              b = e[(n + 4) >> 2] & 2146435072;
              do
                if ((b >>> 0 < 2146435072) | (((b | 0) == 2146435072) & (0 < 0))) {
                  X = +Xi(F, U) * 2;
                  a = X != 0;
                  if (a) e[U >> 2] = (e[U >> 2] | 0) + -1;
                  b = j | 32;
                  if ((b | 0) == 97) {
                    L = j & 32;
                    oe = (L | 0) == 0 ? J : (J + 9) | 0;
                    P = me | 2;
                    a = (12 - A) | 0;
                    do
                      if (!((A >>> 0 > 11) | ((a | 0) == 0))) {
                        F = 8;
                        do {
                          a = (a + -1) | 0;
                          F = F * 16;
                        } while ((a | 0) != 0);
                        if ((i[oe >> 0] | 0) == 45) {
                          F = -(F + (-X - F));
                          break;
                        } else {
                          F = X + F - F;
                          break;
                        }
                      } else F = X;
                    while (0);
                    a = e[U >> 2] | 0;
                    a = (a | 0) < 0 ? (0 - a) | 0 : a;
                    if ((a | 0) < 0) {
                      l = ke;
                      u = a;
                      w = (((a | 0) < 0) << 31) >> 31;
                      while (1) {
                        a = te(u | 0, w | 0, 10, 0) | 0;
                        l = (l + -1) | 0;
                        i[l >> 0] = a | 48;
                        a = se(u | 0, w | 0, 10, 0) | 0;
                        if ((w >>> 0 > 9) | (((w | 0) == 9) & (u >>> 0 > 4294967295))) {
                          u = a;
                          w = m;
                        } else break;
                      }
                    } else l = ke;
                    if (a)
                      while (1) {
                        l = (l + -1) | 0;
                        i[l >> 0] = (a >>> 0) % 10 | 0 | 48;
                        if (a >>> 0 < 10) break;
                        else a = ((a >>> 0) / 10) | 0;
                      }
                    if ((l | 0) == (ke | 0)) {
                      i[De >> 0] = 48;
                      l = De;
                    }
                    i[(l + -1) >> 0] = ((e[U >> 2] >> 31) & 2) + 43;
                    H = (l + -2) | 0;
                    i[H >> 0] = j + 15;
                    if (!(x & 8))
                      if ((A | 0) < 1) {
                        l = q;
                        do {
                          b = ~~F;
                          a = (l + 1) | 0;
                          i[l >> 0] = o[(96384 + b) >> 0] | L;
                          F = (F - +(b | 0)) * 16;
                          if ((((a - Ee) | 0) != 1) | (F == 0)) l = a;
                          else {
                            i[a >> 0] = 46;
                            l = (l + 2) | 0;
                          }
                        } while (F != 0);
                      } else {
                        l = q;
                        do {
                          b = ~~F;
                          a = (l + 1) | 0;
                          i[l >> 0] = o[(96384 + b) >> 0] | L;
                          F = (F - +(b | 0)) * 16;
                          if (((a - Ee) | 0) == 1) {
                            i[a >> 0] = 46;
                            l = (l + 2) | 0;
                          } else l = a;
                        } while (F != 0);
                      }
                    else {
                      l = q;
                      do {
                        b = ~~F;
                        a = (l + 1) | 0;
                        i[l >> 0] = o[(96384 + b) >> 0] | L;
                        F = (F - +(b | 0)) * 16;
                        if (((a - Ee) | 0) == 1) {
                          i[a >> 0] = 46;
                          l = (l + 2) | 0;
                        } else l = a;
                      } while (F != 0);
                    }
                    v =
                      ((A | 0) != 0) & (((cr + l) | 0) < (A | 0))
                        ? (dr + A - H) | 0
                        : (lr - H + l) | 0;
                    w = (v + P) | 0;
                    p = x & 73728;
                    u = (I | 0) > (w | 0);
                    if (((p | 0) == 0) & u) {
                      a = (I - w) | 0;
                      c(M | 0, 32, (a >>> 0 > 256 ? 256 : a) | 0) | 0;
                      if (a >>> 0 > 255) {
                        r = a;
                        do {
                          h(M, 256, y) | 0;
                          r = (r + -256) | 0;
                        } while (r >>> 0 > 255);
                        a = a & 255;
                      }
                      h(M, a, y) | 0;
                    }
                    h(oe, P, y) | 0;
                    if (((p | 0) == 65536) & u) {
                      r = (I - w) | 0;
                      c(M | 0, 48, (r >>> 0 > 256 ? 256 : r) | 0) | 0;
                      if (r >>> 0 > 255) {
                        d = r;
                        do {
                          h(M, 256, y) | 0;
                          d = (d + -256) | 0;
                        } while (d >>> 0 > 255);
                        r = r & 255;
                      }
                      h(M, r, y) | 0;
                    }
                    l = (l - Ee) | 0;
                    h(q, l, y) | 0;
                    a = (pe - H) | 0;
                    l = (v - a - l) | 0;
                    if ((l | 0) > 0) {
                      c(M | 0, 48, (l >>> 0 > 256 ? 256 : l) | 0) | 0;
                      if (l >>> 0 > 255) {
                        r = l;
                        do {
                          h(M, 256, y) | 0;
                          r = (r + -256) | 0;
                        } while (r >>> 0 > 255);
                        l = l & 255;
                      }
                      h(M, l, y) | 0;
                    }
                    h(H, a, y) | 0;
                    if (((p | 0) == 8192) & u) {
                      r = (I - w) | 0;
                      c(M | 0, 32, (r >>> 0 > 256 ? 256 : r) | 0) | 0;
                      if (r >>> 0 > 255) {
                        l = r;
                        do {
                          h(M, 256, y) | 0;
                          l = (l + -256) | 0;
                        } while (l >>> 0 > 255);
                        r = r & 255;
                      }
                      h(M, r, y) | 0;
                    }
                    d = u ? I : w;
                    break;
                  }
                  l = (A | 0) < 0 ? 6 : A;
                  if (a) {
                    a = ((e[U >> 2] | 0) + -28) | 0;
                    e[U >> 2] = a;
                    F = X * 268435456;
                  } else {
                    F = X;
                    a = e[U >> 2] | 0;
                  }
                  Z = (a | 0) < 0 ? rr : ur;
                  B = Z;
                  w = Z;
                  do {
                    N = ~~F >>> 0;
                    e[w >> 2] = N;
                    w = (w + 4) | 0;
                    F = (F - +(N >>> 0)) * 1e9;
                  } while (F != 0);
                  a = e[U >> 2] | 0;
                  if ((a | 0) > 0) {
                    r = a;
                    a = Z;
                    do {
                      v = (r | 0) > 29 ? 29 : r;
                      u = (w + -4) | 0;
                      do
                        if (u >>> 0 >= a >>> 0) {
                          r = 0;
                          do {
                            N = Le(e[u >> 2] | 0, 0, v | 0) | 0;
                            N = Ne(N | 0, m | 0, r | 0, 0) | 0;
                            r = m;
                            P = te(N | 0, r | 0, 1e9, 0) | 0;
                            e[u >> 2] = P;
                            r = se(N | 0, r | 0, 1e9, 0) | 0;
                            u = (u + -4) | 0;
                          } while (u >>> 0 >= a >>> 0);
                          if (!r) break;
                          a = (a + -4) | 0;
                          e[a >> 2] = r;
                        }
                      while (0);
                      while (1) {
                        if (w >>> 0 <= a >>> 0) break;
                        r = (w + -4) | 0;
                        if (!(e[r >> 2] | 0)) w = r;
                        else break;
                      }
                      r = ((e[U >> 2] | 0) - v) | 0;
                      e[U >> 2] = r;
                    } while ((r | 0) > 0);
                  } else {
                    r = a;
                    a = Z;
                  }
                  i: do
                    if ((r | 0) < 0) {
                      H = (((((l + 25) | 0) / 9) | 0) + 1) | 0;
                      if ((b | 0) != 102)
                        while (1) {
                          r = (0 - r) | 0;
                          r = (r | 0) > 9 ? 9 : r;
                          do
                            if (a >>> 0 < w >>> 0) {
                              v = ((1 << r) + -1) | 0;
                              u = 1e9 >>> r;
                              p = 0;
                              d = a;
                              do {
                                N = e[d >> 2] | 0;
                                e[d >> 2] = (N >>> r) + p;
                                p = s(N & v, u) | 0;
                                d = (d + 4) | 0;
                              } while (d >>> 0 < w >>> 0);
                              a = (e[a >> 2] | 0) == 0 ? (a + 4) | 0 : a;
                              if (!p) break;
                              e[w >> 2] = p;
                              w = (w + 4) | 0;
                            } else a = (e[a >> 2] | 0) == 0 ? (a + 4) | 0 : a;
                          while (0);
                          w = (((w - a) >> 2) | 0) > (H | 0) ? (a + (H << 2)) | 0 : w;
                          r = ((e[U >> 2] | 0) + r) | 0;
                          e[U >> 2] = r;
                          if ((r | 0) >= 0) break i;
                        }
                      A = (Z + (H << 2)) | 0;
                      do {
                        r = (0 - r) | 0;
                        r = (r | 0) > 9 ? 9 : r;
                        do
                          if (a >>> 0 < w >>> 0) {
                            v = ((1 << r) + -1) | 0;
                            u = 1e9 >>> r;
                            p = 0;
                            d = a;
                            do {
                              N = e[d >> 2] | 0;
                              e[d >> 2] = (N >>> r) + p;
                              p = s(N & v, u) | 0;
                              d = (d + 4) | 0;
                            } while (d >>> 0 < w >>> 0);
                            a = (e[a >> 2] | 0) == 0 ? (a + 4) | 0 : a;
                            if (!p) break;
                            e[w >> 2] = p;
                            w = (w + 4) | 0;
                          } else a = (e[a >> 2] | 0) == 0 ? (a + 4) | 0 : a;
                        while (0);
                        w = (((w - B) >> 2) | 0) > (H | 0) ? A : w;
                        r = ((e[U >> 2] | 0) + r) | 0;
                        e[U >> 2] = r;
                      } while ((r | 0) < 0);
                    }
                  while (0);
                  do
                    if (a >>> 0 < w >>> 0) {
                      r = (((B - a) >> 2) * 9) | 0;
                      u = e[a >> 2] | 0;
                      if (u >>> 0 < 10) {
                        L = r;
                        break;
                      } else p = 10;
                      do {
                        p = (p * 10) | 0;
                        r = (r + 1) | 0;
                      } while (u >>> 0 >= p >>> 0);
                      L = r;
                    } else L = 0;
                  while (0);
                  P = (b | 0) == 103;
                  oe = (l | 0) != 0;
                  u = (l - ((b | 0) != 102 ? L : 0) + (((oe & P) << 31) >> 31)) | 0;
                  if ((u | 0) < ((((((w - B) >> 2) * 9) | 0) + -9) | 0)) {
                    p = (u + 9216) | 0;
                    A = ((p | 0) / 9) | 0;
                    r = (Z + ((A + -1023) << 2)) | 0;
                    p = (((p | 0) % 9 | 0) + 1) | 0;
                    if ((p | 0) < 9) {
                      v = 10;
                      do {
                        v = (v * 10) | 0;
                        p = (p + 1) | 0;
                      } while ((p | 0) != 9);
                    } else v = 10;
                    u = e[r >> 2] | 0;
                    d = (u >>> 0) % (v >>> 0) | 0;
                    if ((d | 0) == 0 ? ((Z + ((A + -1022) << 2)) | 0) == (w | 0) : 0) {
                      Ue = a;
                      ze = r;
                      He = L;
                    } else k = 221;
                    do
                      if ((k | 0) == 221) {
                        k = 0;
                        X =
                          (((((u >>> 0) / (v >>> 0)) | 0) & 1) | 0) == 0
                            ? 9007199254740992
                            : 9007199254740994;
                        p = ((v | 0) / 2) | 0;
                        do
                          if (d >>> 0 < p >>> 0) F = 0.5;
                          else {
                            if (
                              (d | 0) == (p | 0) ? ((Z + ((A + -1022) << 2)) | 0) == (w | 0) : 0
                            ) {
                              F = 1;
                              break;
                            }
                            F = 1.5;
                          }
                        while (0);
                        do
                          if (me) {
                            if ((i[J >> 0] | 0) != 45) break;
                            X = -X;
                            F = -F;
                          }
                        while (0);
                        p = (u - d) | 0;
                        e[r >> 2] = p;
                        if (!(X + F != X)) {
                          Ue = a;
                          ze = r;
                          He = L;
                          break;
                        }
                        b = (p + v) | 0;
                        e[r >> 2] = b;
                        if (b >>> 0 > 999999999)
                          while (1) {
                            d = (r + -4) | 0;
                            e[r >> 2] = 0;
                            if (d >>> 0 < a >>> 0) {
                              a = (a + -4) | 0;
                              e[a >> 2] = 0;
                            }
                            b = ((e[d >> 2] | 0) + 1) | 0;
                            e[d >> 2] = b;
                            if (b >>> 0 > 999999999) r = d;
                            else {
                              r = d;
                              break;
                            }
                          }
                        d = (((B - a) >> 2) * 9) | 0;
                        p = e[a >> 2] | 0;
                        if (p >>> 0 < 10) {
                          Ue = a;
                          ze = r;
                          He = d;
                          break;
                        } else u = 10;
                        do {
                          u = (u * 10) | 0;
                          d = (d + 1) | 0;
                        } while (p >>> 0 >= u >>> 0);
                        Ue = a;
                        ze = r;
                        He = d;
                      }
                    while (0);
                    b = (ze + 4) | 0;
                    a = Ue;
                    L = He;
                    w = w >>> 0 > b >>> 0 ? b : w;
                  }
                  A = (0 - L) | 0;
                  while (1) {
                    if (w >>> 0 <= a >>> 0) {
                      N = 0;
                      break;
                    }
                    p = (w + -4) | 0;
                    if (!(e[p >> 2] | 0)) w = p;
                    else {
                      N = 1;
                      break;
                    }
                  }
                  do
                    if (P) {
                      l = (((oe & 1) ^ 1) + l) | 0;
                      if (((l | 0) > (L | 0)) & ((L | 0) > -5)) {
                        d = (j + -1) | 0;
                        l = (l + -1 - L) | 0;
                      } else {
                        d = (j + -2) | 0;
                        l = (l + -1) | 0;
                      }
                      p = x & 8;
                      if (p) {
                        P = p;
                        break;
                      }
                      do
                        if (N) {
                          v = e[(w + -4) >> 2] | 0;
                          if (!v) {
                            p = 9;
                            break;
                          }
                          if (!((v >>> 0) % 10 | 0)) {
                            u = 10;
                            p = 0;
                          } else {
                            p = 0;
                            break;
                          }
                          do {
                            u = (u * 10) | 0;
                            p = (p + 1) | 0;
                          } while (((v >>> 0) % (u >>> 0) | 0 | 0) == 0);
                        } else p = 9;
                      while (0);
                      u = (((((w - B) >> 2) * 9) | 0) + -9) | 0;
                      if ((d | 32 | 0) == 102) {
                        P = (u - p) | 0;
                        P = (P | 0) < 0 ? 0 : P;
                        l = (l | 0) < (P | 0) ? l : P;
                        P = 0;
                        break;
                      } else {
                        P = (u + L - p) | 0;
                        P = (P | 0) < 0 ? 0 : P;
                        l = (l | 0) < (P | 0) ? l : P;
                        P = 0;
                        break;
                      }
                    } else {
                      d = j;
                      P = x & 8;
                    }
                  while (0);
                  B = l | P;
                  H = ((B | 0) != 0) & 1;
                  oe = (d | 32 | 0) == 102;
                  if (oe) {
                    p = (L | 0) > 0 ? L : 0;
                    L = 0;
                  } else {
                    v = (L | 0) < 0 ? A : L;
                    if ((v | 0) < 0) {
                      p = ke;
                      r = v;
                      u = (((v | 0) < 0) << 31) >> 31;
                      while (1) {
                        v = te(r | 0, u | 0, 10, 0) | 0;
                        p = (p + -1) | 0;
                        i[p >> 0] = v | 48;
                        v = se(r | 0, u | 0, 10, 0) | 0;
                        if ((u >>> 0 > 9) | (((u | 0) == 9) & (r >>> 0 > 4294967295))) {
                          r = v;
                          u = m;
                        } else break;
                      }
                    } else p = ke;
                    if (v)
                      while (1) {
                        p = (p + -1) | 0;
                        i[p >> 0] = (v >>> 0) % 10 | 0 | 48;
                        if (v >>> 0 < 10) break;
                        else v = ((v >>> 0) / 10) | 0;
                      }
                    if (((pe - p) | 0) < 2)
                      do {
                        p = (p + -1) | 0;
                        i[p >> 0] = 48;
                      } while (((pe - p) | 0) < 2);
                    i[(p + -1) >> 0] = ((L >> 31) & 2) + 43;
                    L = (p + -2) | 0;
                    i[L >> 0] = d;
                    p = (pe - L) | 0;
                  }
                  b = (me + 1 + l + H + p) | 0;
                  H = x & 73728;
                  A = (I | 0) > (b | 0);
                  if (((H | 0) == 0) & A) {
                    p = (I - b) | 0;
                    c(M | 0, 32, (p >>> 0 > 256 ? 256 : p) | 0) | 0;
                    if (p >>> 0 > 255) {
                      v = p;
                      do {
                        h(M, 256, y) | 0;
                        v = (v + -256) | 0;
                      } while (v >>> 0 > 255);
                      p = p & 255;
                    }
                    h(M, p, y) | 0;
                  }
                  h(J, me, y) | 0;
                  if (((H | 0) == 65536) & A) {
                    r = (I - b) | 0;
                    c(M | 0, 48, (r >>> 0 > 256 ? 256 : r) | 0) | 0;
                    if (r >>> 0 > 255) {
                      u = r;
                      do {
                        h(M, 256, y) | 0;
                        u = (u + -256) | 0;
                      } while (u >>> 0 > 255);
                      r = r & 255;
                    }
                    h(M, r, y) | 0;
                  }
                  if (oe) {
                    v = a >>> 0 > Z >>> 0 ? Z : a;
                    r = v;
                    do {
                      d = e[r >> 2] | 0;
                      if (!d) a = $;
                      else {
                        a = $;
                        while (1) {
                          a = (a + -1) | 0;
                          i[a >> 0] = (d >>> 0) % 10 | 0 | 48;
                          if (d >>> 0 < 10) break;
                          else d = ((d >>> 0) / 10) | 0;
                        }
                      }
                      do
                        if ((r | 0) == (v | 0)) {
                          if ((a | 0) != ($ | 0)) break;
                          i[je >> 0] = 48;
                          a = je;
                        } else {
                          if (a >>> 0 <= q >>> 0) break;
                          do {
                            a = (a + -1) | 0;
                            i[a >> 0] = 48;
                          } while (a >>> 0 > q >>> 0);
                        }
                      while (0);
                      h(a, (nr - a) | 0, y) | 0;
                      r = (r + 4) | 0;
                    } while (r >>> 0 <= Z >>> 0);
                    if (B) h(96480, 1, y) | 0;
                    if (((l | 0) > 0) & (r >>> 0 < w >>> 0)) {
                      u = r;
                      do {
                        a = e[u >> 2] | 0;
                        if (a) {
                          r = $;
                          while (1) {
                            r = (r + -1) | 0;
                            i[r >> 0] = (a >>> 0) % 10 | 0 | 48;
                            if (a >>> 0 < 10) break;
                            else a = ((a >>> 0) / 10) | 0;
                          }
                          if (r >>> 0 > q >>> 0) {
                            Ce = r;
                            k = 289;
                          } else tr = r;
                        } else {
                          Ce = $;
                          k = 289;
                        }
                        if ((k | 0) == 289)
                          while (1) {
                            k = 0;
                            r = (Ce + -1) | 0;
                            i[r >> 0] = 48;
                            if (r >>> 0 > q >>> 0) Ce = r;
                            else {
                              tr = r;
                              break;
                            }
                          }
                        N = (l | 0) > 9;
                        h(tr, N ? 9 : l, y) | 0;
                        u = (u + 4) | 0;
                        l = (l + -9) | 0;
                      } while (N & (u >>> 0 < w >>> 0));
                    }
                    if ((l | 0) > 0) {
                      c(M | 0, 48, (l >>> 0 > 256 ? 256 : l) | 0) | 0;
                      if (l >>> 0 > 255) {
                        r = l;
                        do {
                          h(M, 256, y) | 0;
                          r = (r + -256) | 0;
                        } while (r >>> 0 > 255);
                        l = l & 255;
                      }
                      h(M, l, y) | 0;
                    }
                  } else {
                    u = N ? w : (a + 4) | 0;
                    do
                      if ((l | 0) > -1) {
                        p = (P | 0) == 0;
                        v = a;
                        do {
                          w = e[v >> 2] | 0;
                          if (w) {
                            r = $;
                            d = w;
                            while (1) {
                              w = (r + -1) | 0;
                              i[w >> 0] = (d >>> 0) % 10 | 0 | 48;
                              if (d >>> 0 < 10) break;
                              else {
                                r = w;
                                d = ((d >>> 0) / 10) | 0;
                              }
                            }
                            if ((w | 0) != ($ | 0)) {
                              Ze = r;
                              T = w;
                            } else k = 303;
                          } else k = 303;
                          if ((k | 0) == 303) {
                            k = 0;
                            i[je >> 0] = 48;
                            Ze = $;
                            T = je;
                          }
                          do
                            if ((v | 0) == (a | 0)) {
                              h(T, 1, y) | 0;
                              if (p & ((l | 0) < 1)) {
                                w = Ze;
                                break;
                              }
                              h(96480, 1, y) | 0;
                              w = Ze;
                            } else {
                              if (T >>> 0 > q >>> 0) w = T;
                              else {
                                w = T;
                                break;
                              }
                              do {
                                w = (w + -1) | 0;
                                i[w >> 0] = 48;
                              } while (w >>> 0 > q >>> 0);
                            }
                          while (0);
                          N = (nr - w) | 0;
                          h(w, (l | 0) > (N | 0) ? N : l, y) | 0;
                          l = (l - N) | 0;
                          v = (v + 4) | 0;
                        } while ((v >>> 0 < u >>> 0) & ((l | 0) > -1));
                        if ((l | 0) <= 0) break;
                        c(M | 0, 48, (l >>> 0 > 256 ? 256 : l) | 0) | 0;
                        if (l >>> 0 > 255) {
                          r = l;
                          do {
                            h(M, 256, y) | 0;
                            r = (r + -256) | 0;
                          } while (r >>> 0 > 255);
                          l = l & 255;
                        }
                        h(M, l, y) | 0;
                      }
                    while (0);
                    h(L, (pe - L) | 0, y) | 0;
                  }
                  if (((H | 0) == 8192) & A) {
                    r = (I - b) | 0;
                    c(M | 0, 32, (r >>> 0 > 256 ? 256 : r) | 0) | 0;
                    if (r >>> 0 > 255) {
                      l = r;
                      do {
                        h(M, 256, y) | 0;
                        l = (l + -256) | 0;
                      } while (l >>> 0 > 255);
                      r = r & 255;
                    }
                    h(M, r, y) | 0;
                  }
                  d = A ? I : b;
                } else {
                  d = ((j & 32) | 0) != 0;
                  w = (F != F) | (0 != 0);
                  a = w ? 0 : me;
                  d = w ? (d ? 96464 : 96472) : d ? 96448 : 96456;
                  w = (a + 3) | 0;
                  u = (I | 0) > (w | 0);
                  if ((((x & 8192) | 0) == 0) & u) {
                    l = (I - w) | 0;
                    c(M | 0, 32, (l >>> 0 > 256 ? 256 : l) | 0) | 0;
                    if (l >>> 0 > 255) {
                      r = l;
                      do {
                        h(M, 256, y) | 0;
                        r = (r + -256) | 0;
                      } while (r >>> 0 > 255);
                      l = l & 255;
                    }
                    h(M, l, y) | 0;
                  }
                  h(J, a, y) | 0;
                  h(d, 3, y) | 0;
                  if ((((x & 73728) | 0) == 8192) & u) {
                    r = (I - w) | 0;
                    c(M | 0, 32, (r >>> 0 > 256 ? 256 : r) | 0) | 0;
                    if (r >>> 0 > 255) {
                      l = r;
                      do {
                        h(M, 256, y) | 0;
                        l = (l + -256) | 0;
                      } while (l >>> 0 > 255);
                      r = r & 255;
                    }
                    h(M, r, y) | 0;
                  }
                  d = u ? I : w;
                }
              while (0);
              b = E;
              B = _;
              r = W;
              a = C;
              continue e;
            }
            case 110:
              switch (v | 0) {
                case 0: {
                  e[_ >> 2] = C;
                  b = E;
                  B = _;
                  r = W;
                  a = C;
                  continue e;
                }
                case 1: {
                  e[_ >> 2] = C;
                  b = E;
                  B = _;
                  r = W;
                  a = C;
                  continue e;
                }
                case 2: {
                  b = _;
                  e[b >> 2] = C;
                  e[(b + 4) >> 2] = (((C | 0) < 0) << 31) >> 31;
                  b = E;
                  B = _;
                  r = W;
                  a = C;
                  continue e;
                }
                case 3: {
                  S[_ >> 1] = C;
                  b = E;
                  B = _;
                  r = W;
                  a = C;
                  continue e;
                }
                case 4: {
                  i[_ >> 0] = C;
                  b = E;
                  B = _;
                  r = W;
                  a = C;
                  continue e;
                }
                case 6: {
                  e[_ >> 2] = C;
                  b = E;
                  B = _;
                  r = W;
                  a = C;
                  continue e;
                }
                case 7: {
                  b = _;
                  e[b >> 2] = C;
                  e[(b + 4) >> 2] = (((C | 0) < 0) << 31) >> 31;
                  b = E;
                  B = _;
                  r = W;
                  a = C;
                  continue e;
                }
                default: {
                  b = E;
                  B = _;
                  r = W;
                  a = C;
                  continue e;
                }
              }
            default: {
              Me = E;
              Be = _;
              ge = r;
              le = x;
              ie = A;
              ve = 0;
              Fe = 96400;
              re = K;
            }
          }
        while (0);
        if ((k | 0) == 73) {
          D = g & 32;
          if (!(((_ | 0) == 0) & ((E | 0) == 0))) {
            u = K;
            d = _;
            r = E;
            do {
              u = (u + -1) | 0;
              i[u >> 0] = o[(96384 + (d & 15)) >> 0] | D;
              d = be(d | 0, r | 0, 4) | 0;
              r = m;
            } while (!(((d | 0) == 0) & ((r | 0) == 0)));
            if (!(xe & 8)) {
              fe = _;
              de = E;
              D = u;
              we = xe;
              ee = Ye;
              he = 0;
              Q = 96400;
              k = 89;
            } else {
              fe = _;
              de = E;
              D = u;
              we = xe;
              ee = Ye;
              he = 2;
              Q = (96400 + (g >> 4)) | 0;
              k = 89;
            }
          } else {
            fe = _;
            de = E;
            D = K;
            we = xe;
            ee = Ye;
            he = 0;
            Q = 96400;
            k = 89;
          }
        } else if ((k | 0) == 84) {
          if ((ne >>> 0 > 0) | (((ne | 0) == 0) & (ue >>> 0 > 4294967295))) {
            D = K;
            r = ue;
            d = ne;
            while (1) {
              u = te(r | 0, d | 0, 10, 0) | 0;
              D = (D + -1) | 0;
              i[D >> 0] = u | 48;
              u = se(r | 0, d | 0, 10, 0) | 0;
              if ((d >>> 0 > 9) | (((d | 0) == 9) & (r >>> 0 > 4294967295))) {
                r = u;
                d = m;
              } else break;
            }
          } else {
            D = K;
            u = ue;
          }
          if (!u) {
            fe = ue;
            de = ne;
            we = x;
            ee = A;
            he = Pe;
            Q = ae;
            k = 89;
          } else
            while (1) {
              D = (D + -1) | 0;
              i[D >> 0] = (u >>> 0) % 10 | 0 | 48;
              if (u >>> 0 < 10) {
                fe = ue;
                de = ne;
                we = x;
                ee = A;
                he = Pe;
                Q = ae;
                k = 89;
                break;
              } else u = ((u >>> 0) / 10) | 0;
            }
        } else if ((k | 0) == 94) {
          k = 0;
          re = Mi(Oe, 0, A) | 0;
          b = (re | 0) == 0;
          Me = E;
          Be = _;
          ge = Oe;
          le = p;
          ie = b ? A : (re - Oe) | 0;
          ve = 0;
          Fe = 96400;
          re = b ? (Oe + A) | 0 : re;
        } else if ((k | 0) == 97) {
          d = 0;
          r = 0;
          l = Qe;
          while (1) {
            u = e[l >> 2] | 0;
            if (!u) break;
            r = yr(Je, u) | 0;
            if (((r | 0) < 0) | (r >>> 0 > ((Xe - d) | 0) >>> 0)) break;
            d = (r + d) | 0;
            if (Xe >>> 0 > d >>> 0) l = (l + 4) | 0;
            else break;
          }
          if ((r | 0) < 0) {
            Y = -1;
            k = 363;
            break;
          } else {
            $e = ir;
            er = Qe;
            ce = d;
            k = 102;
          }
        }
        if ((k | 0) == 89) {
          k = 0;
          le = (ee | 0) > -1 ? we & -65537 : we;
          u = ((fe | 0) != 0) | ((de | 0) != 0);
          if (u | ((ee | 0) != 0)) {
            ie = (((u & 1) ^ 1) + (sr - D)) | 0;
            Me = de;
            Be = fe;
            ge = D;
            ie = (ee | 0) > (ie | 0) ? ee : ie;
            ve = he;
            Fe = Q;
            re = K;
          } else {
            Me = de;
            Be = fe;
            ge = K;
            ie = 0;
            ve = he;
            Fe = Q;
            re = K;
          }
        } else if ((k | 0) == 102) {
          k = 0;
          a = x & 73728;
          v = (I | 0) > (ce | 0);
          if (((a | 0) == 0) & v) {
            r = (I - ce) | 0;
            c(M | 0, 32, (r >>> 0 > 256 ? 256 : r) | 0) | 0;
            if (r >>> 0 > 255) {
              l = r;
              do {
                h(M, 256, y) | 0;
                l = (l + -256) | 0;
              } while (l >>> 0 > 255);
              r = r & 255;
            }
            h(M, r, y) | 0;
          }
          r: do
            if (ce) {
              r = 0;
              d = er;
              while (1) {
                l = e[d >> 2] | 0;
                if (!l) break r;
                l = yr(Je, l) | 0;
                r = (l + r) | 0;
                if ((r | 0) > (ce | 0)) break r;
                h(Je, l, y) | 0;
                if (r >>> 0 >= ce >>> 0) break;
                else d = (d + 4) | 0;
              }
            }
          while (0);
          if (((a | 0) == 8192) & v) {
            r = (I - ce) | 0;
            c(M | 0, 32, (r >>> 0 > 256 ? 256 : r) | 0) | 0;
            if (r >>> 0 > 255) {
              d = r;
              do {
                h(M, 256, y) | 0;
                d = (d + -256) | 0;
              } while (d >>> 0 > 255);
              r = r & 255;
            }
            h(M, r, y) | 0;
          }
          b = E;
          B = $e;
          r = W;
          a = C;
          d = v ? I : ce;
          continue;
        }
        d = (re - ge) | 0;
        w = (ie | 0) < (d | 0) ? d : ie;
        a = (ve + w) | 0;
        v = (I | 0) < (a | 0) ? a : I;
        p = le & 73728;
        u = (v | 0) > (a | 0);
        if (((p | 0) == 0) & u) {
          l = (v - a) | 0;
          c(M | 0, 32, (l >>> 0 > 256 ? 256 : l) | 0) | 0;
          if (l >>> 0 > 255) {
            r = l;
            do {
              h(M, 256, y) | 0;
              r = (r + -256) | 0;
            } while (r >>> 0 > 255);
            l = l & 255;
          }
          h(M, l, y) | 0;
        }
        h(Fe, ve, y) | 0;
        if (((p | 0) == 65536) & u) {
          l = (v - a) | 0;
          c(M | 0, 48, (l >>> 0 > 256 ? 256 : l) | 0) | 0;
          if (l >>> 0 > 255) {
            r = l;
            do {
              h(M, 256, y) | 0;
              r = (r + -256) | 0;
            } while (r >>> 0 > 255);
            l = l & 255;
          }
          h(M, l, y) | 0;
        }
        if ((w | 0) > (d | 0)) {
          l = (w - d) | 0;
          c(M | 0, 48, (l >>> 0 > 256 ? 256 : l) | 0) | 0;
          if (l >>> 0 > 255) {
            r = l;
            do {
              h(M, 256, y) | 0;
              r = (r + -256) | 0;
            } while (r >>> 0 > 255);
            l = l & 255;
          }
          h(M, l, y) | 0;
        }
        h(ge, d, y) | 0;
        if (((p | 0) == 8192) & u) {
          r = (v - a) | 0;
          c(M | 0, 32, (r >>> 0 > 256 ? 256 : r) | 0) | 0;
          if (r >>> 0 > 255) {
            d = r;
            do {
              h(M, 256, y) | 0;
              d = (d + -256) | 0;
            } while (d >>> 0 > 255);
            r = r & 255;
          }
          h(M, r, y) | 0;
        }
        b = Me;
        B = Be;
        r = W;
        a = C;
        d = v;
      }
      if ((k | 0) == 344) {
        if (y) {
          g = fr;
          t = z;
          return g | 0;
        }
        if (!ar) {
          g = 0;
          t = z;
          return g | 0;
        } else u = 1;
        while (1) {
          le = e[(_e + (u << 2)) >> 2] | 0;
          if (!le) {
            Re = u;
            break;
          }
          D = (Ae + (u << 3)) | 0;
          e: do
            if (le >>> 0 <= 20)
              do
                switch (le | 0) {
                  case 9: {
                    T = ((e[O >> 2] | 0) + (4 - 1)) & ~(4 - 1);
                    g = e[T >> 2] | 0;
                    e[O >> 2] = T + 4;
                    e[D >> 2] = g;
                    break e;
                  }
                  case 10: {
                    g = ((e[O >> 2] | 0) + (4 - 1)) & ~(4 - 1);
                    T = e[g >> 2] | 0;
                    e[O >> 2] = g + 4;
                    g = D;
                    e[g >> 2] = T;
                    e[(g + 4) >> 2] = (((T | 0) < 0) << 31) >> 31;
                    break e;
                  }
                  case 11: {
                    g = ((e[O >> 2] | 0) + (4 - 1)) & ~(4 - 1);
                    T = e[g >> 2] | 0;
                    e[O >> 2] = g + 4;
                    g = D;
                    e[g >> 2] = T;
                    e[(g + 4) >> 2] = 0;
                    break e;
                  }
                  case 12: {
                    g = ((e[O >> 2] | 0) + (8 - 1)) & ~(8 - 1);
                    T = g;
                    Ce = e[T >> 2] | 0;
                    T = e[(T + 4) >> 2] | 0;
                    e[O >> 2] = g + 8;
                    g = D;
                    e[g >> 2] = Ce;
                    e[(g + 4) >> 2] = T;
                    break e;
                  }
                  case 13: {
                    g = ((e[O >> 2] | 0) + (4 - 1)) & ~(4 - 1);
                    T = e[g >> 2] | 0;
                    e[O >> 2] = g + 4;
                    T = ((T & 65535) << 16) >> 16;
                    g = D;
                    e[g >> 2] = T;
                    e[(g + 4) >> 2] = (((T | 0) < 0) << 31) >> 31;
                    break e;
                  }
                  case 14: {
                    g = ((e[O >> 2] | 0) + (4 - 1)) & ~(4 - 1);
                    T = e[g >> 2] | 0;
                    e[O >> 2] = g + 4;
                    g = D;
                    e[g >> 2] = T & 65535;
                    e[(g + 4) >> 2] = 0;
                    break e;
                  }
                  case 15: {
                    g = ((e[O >> 2] | 0) + (4 - 1)) & ~(4 - 1);
                    T = e[g >> 2] | 0;
                    e[O >> 2] = g + 4;
                    T = ((T & 255) << 24) >> 24;
                    g = D;
                    e[g >> 2] = T;
                    e[(g + 4) >> 2] = (((T | 0) < 0) << 31) >> 31;
                    break e;
                  }
                  case 16: {
                    g = ((e[O >> 2] | 0) + (4 - 1)) & ~(4 - 1);
                    T = e[g >> 2] | 0;
                    e[O >> 2] = g + 4;
                    g = D;
                    e[g >> 2] = T & 255;
                    e[(g + 4) >> 2] = 0;
                    break e;
                  }
                  case 17: {
                    g = ((e[O >> 2] | 0) + (8 - 1)) & ~(8 - 1);
                    F = +f[g >> 3];
                    e[O >> 2] = g + 8;
                    f[D >> 3] = F;
                    break e;
                  }
                  case 18: {
                    g = ((e[O >> 2] | 0) + (8 - 1)) & ~(8 - 1);
                    F = +f[g >> 3];
                    e[O >> 2] = g + 8;
                    f[D >> 3] = F;
                    break e;
                  }
                  default:
                    break e;
                }
              while (0);
          while (0);
          u = (u + 1) | 0;
          if ((u | 0) >= 10) {
            Y = 1;
            k = 363;
            break;
          }
        }
        if ((k | 0) == 363) {
          t = z;
          return Y | 0;
        }
        if ((Re | 0) >= 10) {
          g = 1;
          t = z;
          return g | 0;
        }
        while (1) {
          if (e[(_e + (Re << 2)) >> 2] | 0) {
            Y = -1;
            k = 363;
            break;
          }
          Re = (Re + 1) | 0;
          if ((Re | 0) >= 10) {
            Y = 1;
            k = 363;
            break;
          }
        }
        if ((k | 0) == 363) {
          t = z;
          return Y | 0;
        }
      } else if ((k | 0) == 363) {
        t = z;
        return Y | 0;
      }
      return 0;
    }
    function ki(r, n, i) {
      r = r | 0;
      n = n | 0;
      i = i | 0;
      var t = 0,
        o = 0;
      t = (r + 20) | 0;
      o = e[t >> 2] | 0;
      r = ((e[(r + 16) >> 2] | 0) - o) | 0;
      r = r >>> 0 > i >>> 0 ? i : r;
      l(o | 0, n | 0, r | 0) | 0;
      e[t >> 2] = (e[t >> 2] | 0) + r;
      return i | 0;
    }
    function W(n) {
      n = n | 0;
      var d = 0,
        l = 0,
        c = 0,
        s = 0,
        o = 0,
        r = 0,
        i = 0,
        f = 0,
        p = 0,
        S = 0,
        b = 0,
        m = 0,
        v = 0,
        w = 0,
        u = 0,
        I = 0,
        y = 0,
        M = 0,
        k = 0,
        _ = 0,
        t = 0,
        h = 0,
        A = 0,
        E = 0,
        D = 0,
        L = 0,
        x = 0,
        U = 0,
        H = 0,
        z = 0,
        P = 0,
        N = 0,
        T = 0,
        F = 0,
        g = 0,
        C = 0,
        R = 0,
        O = 0;
      do
        if (n >>> 0 < 245) {
          u = n >>> 0 < 11 ? 16 : (n + 11) & -8;
          n = u >>> 3;
          S = e[24122] | 0;
          f = S >>> n;
          if (f & 3) {
            c = (((f & 1) ^ 1) + n) | 0;
            s = c << 1;
            d = (96528 + (s << 2)) | 0;
            s = (96528 + ((s + 2) << 2)) | 0;
            o = e[s >> 2] | 0;
            r = (o + 8) | 0;
            i = e[r >> 2] | 0;
            do
              if ((d | 0) != (i | 0)) {
                if (i >>> 0 < (e[24126] | 0) >>> 0) a();
                l = (i + 12) | 0;
                if ((e[l >> 2] | 0) == (o | 0)) {
                  e[l >> 2] = d;
                  e[s >> 2] = i;
                  break;
                } else a();
              } else e[24122] = S & ~(1 << c);
            while (0);
            t = c << 3;
            e[(o + 4) >> 2] = t | 3;
            t = (o + (t | 4)) | 0;
            e[t >> 2] = e[t >> 2] | 1;
            t = r;
            return t | 0;
          }
          d = e[24124] | 0;
          if (u >>> 0 > d >>> 0) {
            if (f) {
              s = 2 << n;
              s = (f << n) & (s | (0 - s));
              s = ((s & (0 - s)) + -1) | 0;
              n = (s >>> 12) & 16;
              s = s >>> n;
              c = (s >>> 5) & 8;
              s = s >>> c;
              l = (s >>> 2) & 4;
              s = s >>> l;
              o = (s >>> 1) & 2;
              s = s >>> o;
              r = (s >>> 1) & 1;
              r = ((c | n | l | o | r) + (s >>> r)) | 0;
              s = r << 1;
              o = (96528 + (s << 2)) | 0;
              s = (96528 + ((s + 2) << 2)) | 0;
              l = e[s >> 2] | 0;
              n = (l + 8) | 0;
              c = e[n >> 2] | 0;
              do
                if ((o | 0) != (c | 0)) {
                  if (c >>> 0 < (e[24126] | 0) >>> 0) a();
                  i = (c + 12) | 0;
                  if ((e[i >> 2] | 0) == (l | 0)) {
                    e[i >> 2] = o;
                    e[s >> 2] = c;
                    p = e[24124] | 0;
                    break;
                  } else a();
                } else {
                  e[24122] = S & ~(1 << r);
                  p = d;
                }
              while (0);
              t = r << 3;
              d = (t - u) | 0;
              e[(l + 4) >> 2] = u | 3;
              f = (l + u) | 0;
              e[(l + (u | 4)) >> 2] = d | 1;
              e[(l + t) >> 2] = d;
              if (p) {
                c = e[24127] | 0;
                o = p >>> 3;
                i = o << 1;
                s = (96528 + (i << 2)) | 0;
                r = e[24122] | 0;
                o = 1 << o;
                if (r & o) {
                  r = (96528 + ((i + 2) << 2)) | 0;
                  i = e[r >> 2] | 0;
                  if (i >>> 0 < (e[24126] | 0) >>> 0) a();
                  else {
                    b = r;
                    m = i;
                  }
                } else {
                  e[24122] = r | o;
                  b = (96528 + ((i + 2) << 2)) | 0;
                  m = s;
                }
                e[b >> 2] = c;
                e[(m + 12) >> 2] = c;
                e[(c + 8) >> 2] = m;
                e[(c + 12) >> 2] = s;
              }
              e[24124] = d;
              e[24127] = f;
              t = n;
              return t | 0;
            }
            n = e[24123] | 0;
            if (n) {
              r = ((n & (0 - n)) + -1) | 0;
              _ = (r >>> 12) & 16;
              r = r >>> _;
              k = (r >>> 5) & 8;
              r = r >>> k;
              t = (r >>> 2) & 4;
              r = r >>> t;
              i = (r >>> 1) & 2;
              r = r >>> i;
              o = (r >>> 1) & 1;
              o = e[(96792 + (((k | _ | t | i | o) + (r >>> o)) << 2)) >> 2] | 0;
              r = ((e[(o + 4) >> 2] & -8) - u) | 0;
              i = o;
              while (1) {
                l = e[(i + 16) >> 2] | 0;
                if (!l) {
                  l = e[(i + 20) >> 2] | 0;
                  if (!l) {
                    S = r;
                    p = o;
                    break;
                  }
                }
                i = ((e[(l + 4) >> 2] & -8) - u) | 0;
                t = i >>> 0 < r >>> 0;
                r = t ? i : r;
                i = l;
                o = t ? l : o;
              }
              n = e[24126] | 0;
              if (p >>> 0 < n >>> 0) a();
              d = (p + u) | 0;
              if (p >>> 0 >= d >>> 0) a();
              f = e[(p + 24) >> 2] | 0;
              o = e[(p + 12) >> 2] | 0;
              do
                if ((o | 0) == (p | 0)) {
                  r = (p + 20) | 0;
                  i = e[r >> 2] | 0;
                  if (!i) {
                    r = (p + 16) | 0;
                    i = e[r >> 2] | 0;
                    if (!i) {
                      c = 0;
                      break;
                    }
                  }
                  while (1) {
                    o = (i + 20) | 0;
                    s = e[o >> 2] | 0;
                    if (s) {
                      i = s;
                      r = o;
                      continue;
                    }
                    o = (i + 16) | 0;
                    s = e[o >> 2] | 0;
                    if (!s) break;
                    else {
                      i = s;
                      r = o;
                    }
                  }
                  if (r >>> 0 < n >>> 0) a();
                  else {
                    e[r >> 2] = 0;
                    c = i;
                    break;
                  }
                } else {
                  s = e[(p + 8) >> 2] | 0;
                  if (s >>> 0 < n >>> 0) a();
                  i = (s + 12) | 0;
                  if ((e[i >> 2] | 0) != (p | 0)) a();
                  r = (o + 8) | 0;
                  if ((e[r >> 2] | 0) == (p | 0)) {
                    e[i >> 2] = o;
                    e[r >> 2] = s;
                    c = o;
                    break;
                  } else a();
                }
              while (0);
              do
                if (f) {
                  i = e[(p + 28) >> 2] | 0;
                  r = (96792 + (i << 2)) | 0;
                  if ((p | 0) == (e[r >> 2] | 0)) {
                    e[r >> 2] = c;
                    if (!c) {
                      e[24123] = e[24123] & ~(1 << i);
                      break;
                    }
                  } else {
                    if (f >>> 0 < (e[24126] | 0) >>> 0) a();
                    i = (f + 16) | 0;
                    if ((e[i >> 2] | 0) == (p | 0)) e[i >> 2] = c;
                    else e[(f + 20) >> 2] = c;
                    if (!c) break;
                  }
                  r = e[24126] | 0;
                  if (c >>> 0 < r >>> 0) a();
                  e[(c + 24) >> 2] = f;
                  i = e[(p + 16) >> 2] | 0;
                  do
                    if (i)
                      if (i >>> 0 < r >>> 0) a();
                      else {
                        e[(c + 16) >> 2] = i;
                        e[(i + 24) >> 2] = c;
                        break;
                      }
                  while (0);
                  i = e[(p + 20) >> 2] | 0;
                  if (i)
                    if (i >>> 0 < (e[24126] | 0) >>> 0) a();
                    else {
                      e[(c + 20) >> 2] = i;
                      e[(i + 24) >> 2] = c;
                      break;
                    }
                }
              while (0);
              if (S >>> 0 < 16) {
                t = (S + u) | 0;
                e[(p + 4) >> 2] = t | 3;
                t = (p + (t + 4)) | 0;
                e[t >> 2] = e[t >> 2] | 1;
              } else {
                e[(p + 4) >> 2] = u | 3;
                e[(p + (u | 4)) >> 2] = S | 1;
                e[(p + (S + u)) >> 2] = S;
                l = e[24124] | 0;
                if (l) {
                  c = e[24127] | 0;
                  o = l >>> 3;
                  i = o << 1;
                  s = (96528 + (i << 2)) | 0;
                  r = e[24122] | 0;
                  o = 1 << o;
                  if (r & o) {
                    i = (96528 + ((i + 2) << 2)) | 0;
                    r = e[i >> 2] | 0;
                    if (r >>> 0 < (e[24126] | 0) >>> 0) a();
                    else {
                      w = i;
                      v = r;
                    }
                  } else {
                    e[24122] = r | o;
                    w = (96528 + ((i + 2) << 2)) | 0;
                    v = s;
                  }
                  e[w >> 2] = c;
                  e[(v + 12) >> 2] = c;
                  e[(c + 8) >> 2] = v;
                  e[(c + 12) >> 2] = s;
                }
                e[24124] = S;
                e[24127] = d;
              }
              t = (p + 8) | 0;
              return t | 0;
            } else E = u;
          } else E = u;
        } else if (n >>> 0 <= 4294967231) {
          n = (n + 11) | 0;
          w = n & -8;
          p = e[24123] | 0;
          if (p) {
            f = (0 - w) | 0;
            n = n >>> 8;
            if (n)
              if (w >>> 0 > 16777215) S = 31;
              else {
                u = (((n + 1048320) | 0) >>> 16) & 8;
                t = n << u;
                v = (((t + 520192) | 0) >>> 16) & 4;
                t = t << v;
                S = (((t + 245760) | 0) >>> 16) & 2;
                S = (14 - (v | u | S) + ((t << S) >>> 15)) | 0;
                S = ((w >>> ((S + 7) | 0)) & 1) | (S << 1);
              }
            else S = 0;
            n = e[(96792 + (S << 2)) >> 2] | 0;
            e: do
              if (!n) {
                r = 0;
                n = 0;
                t = 86;
              } else {
                c = f;
                r = 0;
                l = w << ((S | 0) == 31 ? 0 : (25 - (S >>> 1)) | 0);
                d = n;
                n = 0;
                while (1) {
                  o = e[(d + 4) >> 2] & -8;
                  f = (o - w) | 0;
                  if (f >>> 0 < c >>> 0)
                    if ((o | 0) == (w | 0)) {
                      o = d;
                      n = d;
                      t = 90;
                      break e;
                    } else n = d;
                  else f = c;
                  t = e[(d + 20) >> 2] | 0;
                  d = e[(d + 16 + ((l >>> 31) << 2)) >> 2] | 0;
                  r = ((t | 0) == 0) | ((t | 0) == (d | 0)) ? r : t;
                  if (!d) {
                    t = 86;
                    break;
                  } else {
                    c = f;
                    l = l << 1;
                  }
                }
              }
            while (0);
            if ((t | 0) == 86) {
              if (((r | 0) == 0) & ((n | 0) == 0)) {
                n = 2 << S;
                n = p & (n | (0 - n));
                if (!n) {
                  E = w;
                  break;
                }
                n = ((n & (0 - n)) + -1) | 0;
                m = (n >>> 12) & 16;
                n = n >>> m;
                b = (n >>> 5) & 8;
                n = n >>> b;
                v = (n >>> 2) & 4;
                n = n >>> v;
                u = (n >>> 1) & 2;
                n = n >>> u;
                r = (n >>> 1) & 1;
                r = e[(96792 + (((b | m | v | u | r) + (n >>> r)) << 2)) >> 2] | 0;
                n = 0;
              }
              if (!r) {
                m = f;
                u = n;
              } else {
                o = r;
                t = 90;
              }
            }
            if ((t | 0) == 90)
              while (1) {
                t = 0;
                u = ((e[(o + 4) >> 2] & -8) - w) | 0;
                r = u >>> 0 < f >>> 0;
                f = r ? u : f;
                n = r ? o : n;
                r = e[(o + 16) >> 2] | 0;
                if (r) {
                  o = r;
                  t = 90;
                  continue;
                }
                o = e[(o + 20) >> 2] | 0;
                if (!o) {
                  m = f;
                  u = n;
                  break;
                } else t = 90;
              }
            if ((u | 0) != 0 ? m >>> 0 < (((e[24124] | 0) - w) | 0) >>> 0 : 0) {
              n = e[24126] | 0;
              if (u >>> 0 < n >>> 0) a();
              b = (u + w) | 0;
              if (u >>> 0 >= b >>> 0) a();
              f = e[(u + 24) >> 2] | 0;
              o = e[(u + 12) >> 2] | 0;
              do
                if ((o | 0) == (u | 0)) {
                  r = (u + 20) | 0;
                  i = e[r >> 2] | 0;
                  if (!i) {
                    r = (u + 16) | 0;
                    i = e[r >> 2] | 0;
                    if (!i) {
                      y = 0;
                      break;
                    }
                  }
                  while (1) {
                    o = (i + 20) | 0;
                    s = e[o >> 2] | 0;
                    if (s) {
                      i = s;
                      r = o;
                      continue;
                    }
                    o = (i + 16) | 0;
                    s = e[o >> 2] | 0;
                    if (!s) break;
                    else {
                      i = s;
                      r = o;
                    }
                  }
                  if (r >>> 0 < n >>> 0) a();
                  else {
                    e[r >> 2] = 0;
                    y = i;
                    break;
                  }
                } else {
                  s = e[(u + 8) >> 2] | 0;
                  if (s >>> 0 < n >>> 0) a();
                  i = (s + 12) | 0;
                  if ((e[i >> 2] | 0) != (u | 0)) a();
                  r = (o + 8) | 0;
                  if ((e[r >> 2] | 0) == (u | 0)) {
                    e[i >> 2] = o;
                    e[r >> 2] = s;
                    y = o;
                    break;
                  } else a();
                }
              while (0);
              do
                if (f) {
                  i = e[(u + 28) >> 2] | 0;
                  r = (96792 + (i << 2)) | 0;
                  if ((u | 0) == (e[r >> 2] | 0)) {
                    e[r >> 2] = y;
                    if (!y) {
                      e[24123] = e[24123] & ~(1 << i);
                      break;
                    }
                  } else {
                    if (f >>> 0 < (e[24126] | 0) >>> 0) a();
                    i = (f + 16) | 0;
                    if ((e[i >> 2] | 0) == (u | 0)) e[i >> 2] = y;
                    else e[(f + 20) >> 2] = y;
                    if (!y) break;
                  }
                  r = e[24126] | 0;
                  if (y >>> 0 < r >>> 0) a();
                  e[(y + 24) >> 2] = f;
                  i = e[(u + 16) >> 2] | 0;
                  do
                    if (i)
                      if (i >>> 0 < r >>> 0) a();
                      else {
                        e[(y + 16) >> 2] = i;
                        e[(i + 24) >> 2] = y;
                        break;
                      }
                  while (0);
                  i = e[(u + 20) >> 2] | 0;
                  if (i)
                    if (i >>> 0 < (e[24126] | 0) >>> 0) a();
                    else {
                      e[(y + 20) >> 2] = i;
                      e[(i + 24) >> 2] = y;
                      break;
                    }
                }
              while (0);
              e: do
                if (m >>> 0 >= 16) {
                  e[(u + 4) >> 2] = w | 3;
                  e[(u + (w | 4)) >> 2] = m | 1;
                  e[(u + (m + w)) >> 2] = m;
                  i = m >>> 3;
                  if (m >>> 0 < 256) {
                    r = i << 1;
                    s = (96528 + (r << 2)) | 0;
                    o = e[24122] | 0;
                    i = 1 << i;
                    if (o & i) {
                      i = (96528 + ((r + 2) << 2)) | 0;
                      r = e[i >> 2] | 0;
                      if (r >>> 0 < (e[24126] | 0) >>> 0) a();
                      else {
                        M = i;
                        k = r;
                      }
                    } else {
                      e[24122] = o | i;
                      M = (96528 + ((r + 2) << 2)) | 0;
                      k = s;
                    }
                    e[M >> 2] = b;
                    e[(k + 12) >> 2] = b;
                    e[(u + (w + 8)) >> 2] = k;
                    e[(u + (w + 12)) >> 2] = s;
                    break;
                  }
                  l = m >>> 8;
                  if (l)
                    if (m >>> 0 > 16777215) s = 31;
                    else {
                      _ = (((l + 1048320) | 0) >>> 16) & 8;
                      t = l << _;
                      k = (((t + 520192) | 0) >>> 16) & 4;
                      t = t << k;
                      s = (((t + 245760) | 0) >>> 16) & 2;
                      s = (14 - (k | _ | s) + ((t << s) >>> 15)) | 0;
                      s = ((m >>> ((s + 7) | 0)) & 1) | (s << 1);
                    }
                  else s = 0;
                  i = (96792 + (s << 2)) | 0;
                  e[(u + (w + 28)) >> 2] = s;
                  e[(u + (w + 20)) >> 2] = 0;
                  e[(u + (w + 16)) >> 2] = 0;
                  r = e[24123] | 0;
                  o = 1 << s;
                  if (!(r & o)) {
                    e[24123] = r | o;
                    e[i >> 2] = b;
                    e[(u + (w + 24)) >> 2] = i;
                    e[(u + (w + 12)) >> 2] = b;
                    e[(u + (w + 8)) >> 2] = b;
                    break;
                  }
                  l = e[i >> 2] | 0;
                  r: do
                    if (((e[(l + 4) >> 2] & -8) | 0) != (m | 0)) {
                      r = m << ((s | 0) == 31 ? 0 : (25 - (s >>> 1)) | 0);
                      while (1) {
                        d = (l + 16 + ((r >>> 31) << 2)) | 0;
                        i = e[d >> 2] | 0;
                        if (!i) break;
                        if (((e[(i + 4) >> 2] & -8) | 0) == (m | 0)) {
                          E = i;
                          break r;
                        } else {
                          r = r << 1;
                          l = i;
                        }
                      }
                      if (d >>> 0 < (e[24126] | 0) >>> 0) a();
                      else {
                        e[d >> 2] = b;
                        e[(u + (w + 24)) >> 2] = l;
                        e[(u + (w + 12)) >> 2] = b;
                        e[(u + (w + 8)) >> 2] = b;
                        break e;
                      }
                    } else E = l;
                  while (0);
                  l = (E + 8) | 0;
                  d = e[l >> 2] | 0;
                  t = e[24126] | 0;
                  if ((d >>> 0 >= t >>> 0) & (E >>> 0 >= t >>> 0)) {
                    e[(d + 12) >> 2] = b;
                    e[l >> 2] = b;
                    e[(u + (w + 8)) >> 2] = d;
                    e[(u + (w + 12)) >> 2] = E;
                    e[(u + (w + 24)) >> 2] = 0;
                    break;
                  } else a();
                } else {
                  t = (m + w) | 0;
                  e[(u + 4) >> 2] = t | 3;
                  t = (u + (t + 4)) | 0;
                  e[t >> 2] = e[t >> 2] | 1;
                }
              while (0);
              t = (u + 8) | 0;
              return t | 0;
            } else E = w;
          } else E = w;
        } else E = -1;
      while (0);
      n = e[24124] | 0;
      if (n >>> 0 >= E >>> 0) {
        d = (n - E) | 0;
        l = e[24127] | 0;
        if (d >>> 0 > 15) {
          e[24127] = l + E;
          e[24124] = d;
          e[(l + (E + 4)) >> 2] = d | 1;
          e[(l + n) >> 2] = d;
          e[(l + 4) >> 2] = E | 3;
        } else {
          e[24124] = 0;
          e[24127] = 0;
          e[(l + 4) >> 2] = n | 3;
          t = (l + (n + 4)) | 0;
          e[t >> 2] = e[t >> 2] | 1;
        }
        t = (l + 8) | 0;
        return t | 0;
      }
      n = e[24125] | 0;
      if (n >>> 0 > E >>> 0) {
        _ = (n - E) | 0;
        e[24125] = _;
        t = e[24128] | 0;
        e[24128] = t + E;
        e[(t + (E + 4)) >> 2] = _ | 1;
        e[(t + 4) >> 2] = E | 3;
        t = (t + 8) | 0;
        return t | 0;
      }
      do
        if (!(e[24240] | 0)) {
          n = Bi(30) | 0;
          if (!((n + -1) & n)) {
            e[24242] = n;
            e[24241] = n;
            e[24243] = -1;
            e[24244] = -1;
            e[24245] = 0;
            e[24233] = 0;
            e[24240] = ((mi(0) | 0) & -16) ^ 1431655768;
            break;
          } else a();
        }
      while (0);
      S = (E + 48) | 0;
      l = e[24242] | 0;
      d = (E + 47) | 0;
      c = (l + d) | 0;
      l = (0 - l) | 0;
      b = c & l;
      if (b >>> 0 <= E >>> 0) {
        t = 0;
        return t | 0;
      }
      n = e[24232] | 0;
      if (
        (n | 0) != 0
          ? ((M = e[24230] | 0), (k = (M + b) | 0), (k >>> 0 <= M >>> 0) | (k >>> 0 > n >>> 0))
          : 0
      ) {
        t = 0;
        return t | 0;
      }
      e: do
        if (!(e[24233] & 4)) {
          n = e[24128] | 0;
          r: do
            if (n) {
              r = 96936;
              while (1) {
                f = e[r >> 2] | 0;
                if (
                  f >>> 0 <= n >>> 0
                    ? ((I = (r + 4) | 0), ((f + (e[I >> 2] | 0)) | 0) >>> 0 > n >>> 0)
                    : 0
                ) {
                  o = r;
                  n = I;
                  break;
                }
                r = e[(r + 8) >> 2] | 0;
                if (!r) {
                  t = 174;
                  break r;
                }
              }
              f = (c - (e[24125] | 0)) & l;
              if (f >>> 0 < 2147483647) {
                r = B(f | 0) | 0;
                k = (r | 0) == (((e[o >> 2] | 0) + (e[n >> 2] | 0)) | 0);
                n = k ? f : 0;
                if (k) {
                  if ((r | 0) != (-1 | 0)) {
                    h = r;
                    t = 194;
                    break e;
                  }
                } else t = 184;
              } else n = 0;
            } else t = 174;
          while (0);
          do
            if ((t | 0) == 174) {
              o = B(0) | 0;
              if ((o | 0) != (-1 | 0)) {
                n = o;
                f = e[24241] | 0;
                r = (f + -1) | 0;
                if (!(r & n)) f = b;
                else f = (b - n + ((r + n) & (0 - f))) | 0;
                n = e[24230] | 0;
                r = (n + f) | 0;
                if ((f >>> 0 > E >>> 0) & (f >>> 0 < 2147483647)) {
                  k = e[24232] | 0;
                  if ((k | 0) != 0 ? (r >>> 0 <= n >>> 0) | (r >>> 0 > k >>> 0) : 0) {
                    n = 0;
                    break;
                  }
                  r = B(f | 0) | 0;
                  t = (r | 0) == (o | 0);
                  n = t ? f : 0;
                  if (t) {
                    h = o;
                    t = 194;
                    break e;
                  } else t = 184;
                } else n = 0;
              } else n = 0;
            }
          while (0);
          r: do
            if ((t | 0) == 184) {
              o = (0 - f) | 0;
              do
                if (
                  (S >>> 0 > f >>> 0) & ((f >>> 0 < 2147483647) & ((r | 0) != (-1 | 0)))
                    ? ((_ = e[24242] | 0), (_ = (d - f + _) & (0 - _)), _ >>> 0 < 2147483647)
                    : 0
                )
                  if ((B(_ | 0) | 0) == (-1 | 0)) {
                    B(o | 0) | 0;
                    break r;
                  } else {
                    f = (_ + f) | 0;
                    break;
                  }
              while (0);
              if ((r | 0) != (-1 | 0)) {
                h = r;
                n = f;
                t = 194;
                break e;
              }
            }
          while (0);
          e[24233] = e[24233] | 4;
          t = 191;
        } else {
          n = 0;
          t = 191;
        }
      while (0);
      if (
        (((t | 0) == 191
        ? b >>> 0 < 2147483647
        : 0)
        ? ((h = B(b | 0) | 0),
          (A = B(0) | 0),
          (h >>> 0 < A >>> 0) & (((h | 0) != (-1 | 0)) & ((A | 0) != (-1 | 0))))
        : 0)
          ? ((D = (A - h) | 0), (L = D >>> 0 > ((E + 40) | 0) >>> 0), L)
          : 0
      ) {
        n = L ? D : n;
        t = 194;
      }
      if ((t | 0) == 194) {
        f = ((e[24230] | 0) + n) | 0;
        e[24230] = f;
        if (f >>> 0 > (e[24231] | 0) >>> 0) e[24231] = f;
        m = e[24128] | 0;
        e: do
          if (m) {
            c = 96936;
            do {
              f = e[c >> 2] | 0;
              r = (c + 4) | 0;
              o = e[r >> 2] | 0;
              if ((h | 0) == ((f + o) | 0)) {
                x = f;
                U = r;
                H = o;
                z = c;
                t = 204;
                break;
              }
              c = e[(c + 8) >> 2] | 0;
            } while ((c | 0) != 0);
            if (
              ((t | 0) == 204
              ? ((e[(z + 12) >> 2] & 8) | 0) == 0
              : 0)
                ? (m >>> 0 < h >>> 0) & (m >>> 0 >= x >>> 0)
                : 0
            ) {
              e[U >> 2] = H + n;
              t = ((e[24125] | 0) + n) | 0;
              _ = (m + 8) | 0;
              _ = ((_ & 7) | 0) == 0 ? 0 : (0 - _) & 7;
              k = (t - _) | 0;
              e[24128] = m + _;
              e[24125] = k;
              e[(m + (_ + 4)) >> 2] = k | 1;
              e[(m + (t + 4)) >> 2] = 40;
              e[24129] = e[24244];
              break;
            }
            f = e[24126] | 0;
            if (h >>> 0 < f >>> 0) {
              e[24126] = h;
              f = h;
            }
            r = (h + n) | 0;
            c = 96936;
            while (1) {
              if ((e[c >> 2] | 0) == (r | 0)) {
                o = c;
                r = c;
                t = 212;
                break;
              }
              c = e[(c + 8) >> 2] | 0;
              if (!c) {
                o = 96936;
                break;
              }
            }
            if ((t | 0) == 212)
              if (!(e[(r + 12) >> 2] & 8)) {
                e[o >> 2] = h;
                w = (r + 4) | 0;
                e[w >> 2] = (e[w >> 2] | 0) + n;
                w = (h + 8) | 0;
                w = ((w & 7) | 0) == 0 ? 0 : (0 - w) & 7;
                p = (h + (n + 8)) | 0;
                p = ((p & 7) | 0) == 0 ? 0 : (0 - p) & 7;
                i = (h + (p + n)) | 0;
                v = (w + E) | 0;
                u = (h + v) | 0;
                b = (i - (h + w) - E) | 0;
                e[(h + (w + 4)) >> 2] = E | 3;
                r: do
                  if ((i | 0) != (m | 0)) {
                    if ((i | 0) == (e[24127] | 0)) {
                      t = ((e[24124] | 0) + b) | 0;
                      e[24124] = t;
                      e[24127] = u;
                      e[(h + (v + 4)) >> 2] = t | 1;
                      e[(h + (t + v)) >> 2] = t;
                      break;
                    }
                    S = (n + 4) | 0;
                    r = e[(h + (S + p)) >> 2] | 0;
                    if (((r & 3) | 0) == 1) {
                      d = r & -8;
                      c = r >>> 3;
                      i: do
                        if (r >>> 0 >= 256) {
                          l = e[(h + ((p | 24) + n)) >> 2] | 0;
                          o = e[(h + (n + 12 + p)) >> 2] | 0;
                          do
                            if ((o | 0) == (i | 0)) {
                              s = p | 16;
                              o = (h + (S + s)) | 0;
                              r = e[o >> 2] | 0;
                              if (!r) {
                                o = (h + (s + n)) | 0;
                                r = e[o >> 2] | 0;
                                if (!r) {
                                  g = 0;
                                  break;
                                }
                              }
                              while (1) {
                                s = (r + 20) | 0;
                                c = e[s >> 2] | 0;
                                if (c) {
                                  r = c;
                                  o = s;
                                  continue;
                                }
                                s = (r + 16) | 0;
                                c = e[s >> 2] | 0;
                                if (!c) break;
                                else {
                                  r = c;
                                  o = s;
                                }
                              }
                              if (o >>> 0 < f >>> 0) a();
                              else {
                                e[o >> 2] = 0;
                                g = r;
                                break;
                              }
                            } else {
                              s = e[(h + ((p | 8) + n)) >> 2] | 0;
                              if (s >>> 0 < f >>> 0) a();
                              f = (s + 12) | 0;
                              if ((e[f >> 2] | 0) != (i | 0)) a();
                              r = (o + 8) | 0;
                              if ((e[r >> 2] | 0) == (i | 0)) {
                                e[f >> 2] = o;
                                e[r >> 2] = s;
                                g = o;
                                break;
                              } else a();
                            }
                          while (0);
                          if (!l) break;
                          f = e[(h + (n + 28 + p)) >> 2] | 0;
                          r = (96792 + (f << 2)) | 0;
                          do
                            if ((i | 0) != (e[r >> 2] | 0)) {
                              if (l >>> 0 < (e[24126] | 0) >>> 0) a();
                              f = (l + 16) | 0;
                              if ((e[f >> 2] | 0) == (i | 0)) e[f >> 2] = g;
                              else e[(l + 20) >> 2] = g;
                              if (!g) break i;
                            } else {
                              e[r >> 2] = g;
                              if (g) break;
                              e[24123] = e[24123] & ~(1 << f);
                              break i;
                            }
                          while (0);
                          r = e[24126] | 0;
                          if (g >>> 0 < r >>> 0) a();
                          e[(g + 24) >> 2] = l;
                          f = p | 16;
                          i = e[(h + (f + n)) >> 2] | 0;
                          do
                            if (i)
                              if (i >>> 0 < r >>> 0) a();
                              else {
                                e[(g + 16) >> 2] = i;
                                e[(i + 24) >> 2] = g;
                                break;
                              }
                          while (0);
                          i = e[(h + (S + f)) >> 2] | 0;
                          if (!i) break;
                          if (i >>> 0 < (e[24126] | 0) >>> 0) a();
                          else {
                            e[(g + 20) >> 2] = i;
                            e[(i + 24) >> 2] = g;
                            break;
                          }
                        } else {
                          o = e[(h + ((p | 8) + n)) >> 2] | 0;
                          s = e[(h + (n + 12 + p)) >> 2] | 0;
                          r = (96528 + ((c << 1) << 2)) | 0;
                          do
                            if ((o | 0) != (r | 0)) {
                              if (o >>> 0 < f >>> 0) a();
                              if ((e[(o + 12) >> 2] | 0) == (i | 0)) break;
                              a();
                            }
                          while (0);
                          if ((s | 0) == (o | 0)) {
                            e[24122] = e[24122] & ~(1 << c);
                            break;
                          }
                          do
                            if ((s | 0) == (r | 0)) P = (s + 8) | 0;
                            else {
                              if (s >>> 0 < f >>> 0) a();
                              f = (s + 8) | 0;
                              if ((e[f >> 2] | 0) == (i | 0)) {
                                P = f;
                                break;
                              }
                              a();
                            }
                          while (0);
                          e[(o + 12) >> 2] = s;
                          e[P >> 2] = o;
                        }
                      while (0);
                      i = (h + ((d | p) + n)) | 0;
                      f = (d + b) | 0;
                    } else f = b;
                    i = (i + 4) | 0;
                    e[i >> 2] = e[i >> 2] & -2;
                    e[(h + (v + 4)) >> 2] = f | 1;
                    e[(h + (f + v)) >> 2] = f;
                    i = f >>> 3;
                    if (f >>> 0 < 256) {
                      r = i << 1;
                      s = (96528 + (r << 2)) | 0;
                      o = e[24122] | 0;
                      i = 1 << i;
                      do
                        if (!(o & i)) {
                          e[24122] = o | i;
                          C = (96528 + ((r + 2) << 2)) | 0;
                          R = s;
                        } else {
                          i = (96528 + ((r + 2) << 2)) | 0;
                          r = e[i >> 2] | 0;
                          if (r >>> 0 >= (e[24126] | 0) >>> 0) {
                            C = i;
                            R = r;
                            break;
                          }
                          a();
                        }
                      while (0);
                      e[C >> 2] = u;
                      e[(R + 12) >> 2] = u;
                      e[(h + (v + 8)) >> 2] = R;
                      e[(h + (v + 12)) >> 2] = s;
                      break;
                    }
                    l = f >>> 8;
                    do
                      if (!l) s = 0;
                      else {
                        if (f >>> 0 > 16777215) {
                          s = 31;
                          break;
                        }
                        _ = (((l + 1048320) | 0) >>> 16) & 8;
                        t = l << _;
                        k = (((t + 520192) | 0) >>> 16) & 4;
                        t = t << k;
                        s = (((t + 245760) | 0) >>> 16) & 2;
                        s = (14 - (k | _ | s) + ((t << s) >>> 15)) | 0;
                        s = ((f >>> ((s + 7) | 0)) & 1) | (s << 1);
                      }
                    while (0);
                    i = (96792 + (s << 2)) | 0;
                    e[(h + (v + 28)) >> 2] = s;
                    e[(h + (v + 20)) >> 2] = 0;
                    e[(h + (v + 16)) >> 2] = 0;
                    r = e[24123] | 0;
                    o = 1 << s;
                    if (!(r & o)) {
                      e[24123] = r | o;
                      e[i >> 2] = u;
                      e[(h + (v + 24)) >> 2] = i;
                      e[(h + (v + 12)) >> 2] = u;
                      e[(h + (v + 8)) >> 2] = u;
                      break;
                    }
                    l = e[i >> 2] | 0;
                    i: do
                      if (((e[(l + 4) >> 2] & -8) | 0) != (f | 0)) {
                        r = f << ((s | 0) == 31 ? 0 : (25 - (s >>> 1)) | 0);
                        while (1) {
                          d = (l + 16 + ((r >>> 31) << 2)) | 0;
                          i = e[d >> 2] | 0;
                          if (!i) break;
                          if (((e[(i + 4) >> 2] & -8) | 0) == (f | 0)) {
                            O = i;
                            break i;
                          } else {
                            r = r << 1;
                            l = i;
                          }
                        }
                        if (d >>> 0 < (e[24126] | 0) >>> 0) a();
                        else {
                          e[d >> 2] = u;
                          e[(h + (v + 24)) >> 2] = l;
                          e[(h + (v + 12)) >> 2] = u;
                          e[(h + (v + 8)) >> 2] = u;
                          break r;
                        }
                      } else O = l;
                    while (0);
                    l = (O + 8) | 0;
                    d = e[l >> 2] | 0;
                    t = e[24126] | 0;
                    if ((d >>> 0 >= t >>> 0) & (O >>> 0 >= t >>> 0)) {
                      e[(d + 12) >> 2] = u;
                      e[l >> 2] = u;
                      e[(h + (v + 8)) >> 2] = d;
                      e[(h + (v + 12)) >> 2] = O;
                      e[(h + (v + 24)) >> 2] = 0;
                      break;
                    } else a();
                  } else {
                    t = ((e[24125] | 0) + b) | 0;
                    e[24125] = t;
                    e[24128] = u;
                    e[(h + (v + 4)) >> 2] = t | 1;
                  }
                while (0);
                t = (h + (w | 8)) | 0;
                return t | 0;
              } else o = 96936;
            while (1) {
              r = e[o >> 2] | 0;
              if (
                r >>> 0 <= m >>> 0
                  ? ((i = e[(o + 4) >> 2] | 0), (s = (r + i) | 0), s >>> 0 > m >>> 0)
                  : 0
              )
                break;
              o = e[(o + 8) >> 2] | 0;
            }
            f = (r + (i + -39)) | 0;
            r = (r + (i + -47 + (((f & 7) | 0) == 0 ? 0 : (0 - f) & 7))) | 0;
            f = (m + 16) | 0;
            r = r >>> 0 < f >>> 0 ? m : r;
            i = (r + 8) | 0;
            o = (h + 8) | 0;
            o = ((o & 7) | 0) == 0 ? 0 : (0 - o) & 7;
            t = (n + -40 - o) | 0;
            e[24128] = h + o;
            e[24125] = t;
            e[(h + (o + 4)) >> 2] = t | 1;
            e[(h + (n + -36)) >> 2] = 40;
            e[24129] = e[24244];
            o = (r + 4) | 0;
            e[o >> 2] = 27;
            e[i >> 2] = e[24234];
            e[(i + 4) >> 2] = e[24235];
            e[(i + 8) >> 2] = e[24236];
            e[(i + 12) >> 2] = e[24237];
            e[24234] = h;
            e[24235] = n;
            e[24237] = 0;
            e[24236] = i;
            i = (r + 28) | 0;
            e[i >> 2] = 7;
            if (((r + 32) | 0) >>> 0 < s >>> 0)
              do {
                t = i;
                i = (i + 4) | 0;
                e[i >> 2] = 7;
              } while (((t + 8) | 0) >>> 0 < s >>> 0);
            if ((r | 0) != (m | 0)) {
              s = (r - m) | 0;
              e[o >> 2] = e[o >> 2] & -2;
              e[(m + 4) >> 2] = s | 1;
              e[r >> 2] = s;
              i = s >>> 3;
              if (s >>> 0 < 256) {
                r = i << 1;
                s = (96528 + (r << 2)) | 0;
                o = e[24122] | 0;
                i = 1 << i;
                if (o & i) {
                  l = (96528 + ((r + 2) << 2)) | 0;
                  d = e[l >> 2] | 0;
                  if (d >>> 0 < (e[24126] | 0) >>> 0) a();
                  else {
                    N = l;
                    T = d;
                  }
                } else {
                  e[24122] = o | i;
                  N = (96528 + ((r + 2) << 2)) | 0;
                  T = s;
                }
                e[N >> 2] = m;
                e[(T + 12) >> 2] = m;
                e[(m + 8) >> 2] = T;
                e[(m + 12) >> 2] = s;
                break;
              }
              l = s >>> 8;
              if (l)
                if (s >>> 0 > 16777215) r = 31;
                else {
                  _ = (((l + 1048320) | 0) >>> 16) & 8;
                  t = l << _;
                  k = (((t + 520192) | 0) >>> 16) & 4;
                  t = t << k;
                  r = (((t + 245760) | 0) >>> 16) & 2;
                  r = (14 - (k | _ | r) + ((t << r) >>> 15)) | 0;
                  r = ((s >>> ((r + 7) | 0)) & 1) | (r << 1);
                }
              else r = 0;
              i = (96792 + (r << 2)) | 0;
              e[(m + 28) >> 2] = r;
              e[(m + 20) >> 2] = 0;
              e[f >> 2] = 0;
              l = e[24123] | 0;
              d = 1 << r;
              if (!(l & d)) {
                e[24123] = l | d;
                e[i >> 2] = m;
                e[(m + 24) >> 2] = i;
                e[(m + 12) >> 2] = m;
                e[(m + 8) >> 2] = m;
                break;
              }
              l = e[i >> 2] | 0;
              r: do
                if (((e[(l + 4) >> 2] & -8) | 0) != (s | 0)) {
                  i = s << ((r | 0) == 31 ? 0 : (25 - (r >>> 1)) | 0);
                  while (1) {
                    d = (l + 16 + ((i >>> 31) << 2)) | 0;
                    c = e[d >> 2] | 0;
                    if (!c) break;
                    if (((e[(c + 4) >> 2] & -8) | 0) == (s | 0)) {
                      F = c;
                      break r;
                    } else {
                      i = i << 1;
                      l = c;
                    }
                  }
                  if (d >>> 0 < (e[24126] | 0) >>> 0) a();
                  else {
                    e[d >> 2] = m;
                    e[(m + 24) >> 2] = l;
                    e[(m + 12) >> 2] = m;
                    e[(m + 8) >> 2] = m;
                    break e;
                  }
                } else F = l;
              while (0);
              l = (F + 8) | 0;
              d = e[l >> 2] | 0;
              t = e[24126] | 0;
              if ((d >>> 0 >= t >>> 0) & (F >>> 0 >= t >>> 0)) {
                e[(d + 12) >> 2] = m;
                e[l >> 2] = m;
                e[(m + 8) >> 2] = d;
                e[(m + 12) >> 2] = F;
                e[(m + 24) >> 2] = 0;
                break;
              } else a();
            }
          } else {
            t = e[24126] | 0;
            if (((t | 0) == 0) | (h >>> 0 < t >>> 0)) e[24126] = h;
            e[24234] = h;
            e[24235] = n;
            e[24237] = 0;
            e[24131] = e[24240];
            e[24130] = -1;
            l = 0;
            do {
              t = l << 1;
              _ = (96528 + (t << 2)) | 0;
              e[(96528 + ((t + 3) << 2)) >> 2] = _;
              e[(96528 + ((t + 2) << 2)) >> 2] = _;
              l = (l + 1) | 0;
            } while ((l | 0) != 32);
            t = (h + 8) | 0;
            t = ((t & 7) | 0) == 0 ? 0 : (0 - t) & 7;
            _ = (n + -40 - t) | 0;
            e[24128] = h + t;
            e[24125] = _;
            e[(h + (t + 4)) >> 2] = _ | 1;
            e[(h + (n + -36)) >> 2] = 40;
            e[24129] = e[24244];
          }
        while (0);
        d = e[24125] | 0;
        if (d >>> 0 > E >>> 0) {
          _ = (d - E) | 0;
          e[24125] = _;
          t = e[24128] | 0;
          e[24128] = t + E;
          e[(t + (E + 4)) >> 2] = _ | 1;
          e[(t + 4) >> 2] = E | 3;
          t = (t + 8) | 0;
          return t | 0;
        }
      }
      e[(V() | 0) >> 2] = 12;
      t = 0;
      return t | 0;
    }
    function _(l) {
      l = l | 0;
      var s = 0,
        t = 0,
        n = 0,
        i = 0,
        r = 0,
        m = 0,
        w = 0,
        c = 0,
        u = 0,
        f = 0,
        p = 0,
        S = 0,
        d = 0,
        h = 0,
        _ = 0,
        b = 0,
        v = 0,
        E = 0,
        o = 0;
      if (!l) return;
      r = (l + -8) | 0;
      m = e[24126] | 0;
      if (r >>> 0 < m >>> 0) a();
      i = e[(l + -4) >> 2] | 0;
      n = i & 3;
      if ((n | 0) == 1) a();
      d = i & -8;
      _ = (l + (d + -8)) | 0;
      do
        if (!(i & 1)) {
          r = e[r >> 2] | 0;
          if (!n) return;
          w = (-8 - r) | 0;
          f = (l + w) | 0;
          p = (r + d) | 0;
          if (f >>> 0 < m >>> 0) a();
          if ((f | 0) == (e[24127] | 0)) {
            r = (l + (d + -4)) | 0;
            i = e[r >> 2] | 0;
            if (((i & 3) | 0) != 3) {
              o = f;
              u = p;
              break;
            }
            e[24124] = p;
            e[r >> 2] = i & -2;
            e[(l + (w + 4)) >> 2] = p | 1;
            e[_ >> 2] = p;
            return;
          }
          t = r >>> 3;
          if (r >>> 0 < 256) {
            n = e[(l + (w + 8)) >> 2] | 0;
            i = e[(l + (w + 12)) >> 2] | 0;
            r = (96528 + ((t << 1) << 2)) | 0;
            if ((n | 0) != (r | 0)) {
              if (n >>> 0 < m >>> 0) a();
              if ((e[(n + 12) >> 2] | 0) != (f | 0)) a();
            }
            if ((i | 0) == (n | 0)) {
              e[24122] = e[24122] & ~(1 << t);
              o = f;
              u = p;
              break;
            }
            if ((i | 0) != (r | 0)) {
              if (i >>> 0 < m >>> 0) a();
              r = (i + 8) | 0;
              if ((e[r >> 2] | 0) == (f | 0)) s = r;
              else a();
            } else s = (i + 8) | 0;
            e[(n + 12) >> 2] = i;
            e[s >> 2] = n;
            o = f;
            u = p;
            break;
          }
          s = e[(l + (w + 24)) >> 2] | 0;
          n = e[(l + (w + 12)) >> 2] | 0;
          do
            if ((n | 0) == (f | 0)) {
              i = (l + (w + 20)) | 0;
              r = e[i >> 2] | 0;
              if (!r) {
                i = (l + (w + 16)) | 0;
                r = e[i >> 2] | 0;
                if (!r) {
                  c = 0;
                  break;
                }
              }
              while (1) {
                n = (r + 20) | 0;
                t = e[n >> 2] | 0;
                if (t) {
                  r = t;
                  i = n;
                  continue;
                }
                n = (r + 16) | 0;
                t = e[n >> 2] | 0;
                if (!t) break;
                else {
                  r = t;
                  i = n;
                }
              }
              if (i >>> 0 < m >>> 0) a();
              else {
                e[i >> 2] = 0;
                c = r;
                break;
              }
            } else {
              t = e[(l + (w + 8)) >> 2] | 0;
              if (t >>> 0 < m >>> 0) a();
              r = (t + 12) | 0;
              if ((e[r >> 2] | 0) != (f | 0)) a();
              i = (n + 8) | 0;
              if ((e[i >> 2] | 0) == (f | 0)) {
                e[r >> 2] = n;
                e[i >> 2] = t;
                c = n;
                break;
              } else a();
            }
          while (0);
          if (s) {
            r = e[(l + (w + 28)) >> 2] | 0;
            i = (96792 + (r << 2)) | 0;
            if ((f | 0) == (e[i >> 2] | 0)) {
              e[i >> 2] = c;
              if (!c) {
                e[24123] = e[24123] & ~(1 << r);
                o = f;
                u = p;
                break;
              }
            } else {
              if (s >>> 0 < (e[24126] | 0) >>> 0) a();
              r = (s + 16) | 0;
              if ((e[r >> 2] | 0) == (f | 0)) e[r >> 2] = c;
              else e[(s + 20) >> 2] = c;
              if (!c) {
                o = f;
                u = p;
                break;
              }
            }
            i = e[24126] | 0;
            if (c >>> 0 < i >>> 0) a();
            e[(c + 24) >> 2] = s;
            r = e[(l + (w + 16)) >> 2] | 0;
            do
              if (r)
                if (r >>> 0 < i >>> 0) a();
                else {
                  e[(c + 16) >> 2] = r;
                  e[(r + 24) >> 2] = c;
                  break;
                }
            while (0);
            r = e[(l + (w + 20)) >> 2] | 0;
            if (r)
              if (r >>> 0 < (e[24126] | 0) >>> 0) a();
              else {
                e[(c + 20) >> 2] = r;
                e[(r + 24) >> 2] = c;
                o = f;
                u = p;
                break;
              }
            else {
              o = f;
              u = p;
            }
          } else {
            o = f;
            u = p;
          }
        } else {
          o = r;
          u = d;
        }
      while (0);
      if (o >>> 0 >= _ >>> 0) a();
      r = (l + (d + -4)) | 0;
      i = e[r >> 2] | 0;
      if (!(i & 1)) a();
      if (!(i & 2)) {
        if ((_ | 0) == (e[24128] | 0)) {
          f = ((e[24125] | 0) + u) | 0;
          e[24125] = f;
          e[24128] = o;
          e[(o + 4) >> 2] = f | 1;
          if ((o | 0) != (e[24127] | 0)) return;
          e[24127] = 0;
          e[24124] = 0;
          return;
        }
        if ((_ | 0) == (e[24127] | 0)) {
          f = ((e[24124] | 0) + u) | 0;
          e[24124] = f;
          e[24127] = o;
          e[(o + 4) >> 2] = f | 1;
          e[(o + f) >> 2] = f;
          return;
        }
        m = ((i & -8) + u) | 0;
        s = i >>> 3;
        do
          if (i >>> 0 >= 256) {
            s = e[(l + (d + 16)) >> 2] | 0;
            r = e[(l + (d | 4)) >> 2] | 0;
            do
              if ((r | 0) == (_ | 0)) {
                i = (l + (d + 12)) | 0;
                r = e[i >> 2] | 0;
                if (!r) {
                  i = (l + (d + 8)) | 0;
                  r = e[i >> 2] | 0;
                  if (!r) {
                    h = 0;
                    break;
                  }
                }
                while (1) {
                  n = (r + 20) | 0;
                  t = e[n >> 2] | 0;
                  if (t) {
                    r = t;
                    i = n;
                    continue;
                  }
                  n = (r + 16) | 0;
                  t = e[n >> 2] | 0;
                  if (!t) break;
                  else {
                    r = t;
                    i = n;
                  }
                }
                if (i >>> 0 < (e[24126] | 0) >>> 0) a();
                else {
                  e[i >> 2] = 0;
                  h = r;
                  break;
                }
              } else {
                i = e[(l + d) >> 2] | 0;
                if (i >>> 0 < (e[24126] | 0) >>> 0) a();
                n = (i + 12) | 0;
                if ((e[n >> 2] | 0) != (_ | 0)) a();
                t = (r + 8) | 0;
                if ((e[t >> 2] | 0) == (_ | 0)) {
                  e[n >> 2] = r;
                  e[t >> 2] = i;
                  h = r;
                  break;
                } else a();
              }
            while (0);
            if (s) {
              r = e[(l + (d + 20)) >> 2] | 0;
              i = (96792 + (r << 2)) | 0;
              if ((_ | 0) == (e[i >> 2] | 0)) {
                e[i >> 2] = h;
                if (!h) {
                  e[24123] = e[24123] & ~(1 << r);
                  break;
                }
              } else {
                if (s >>> 0 < (e[24126] | 0) >>> 0) a();
                r = (s + 16) | 0;
                if ((e[r >> 2] | 0) == (_ | 0)) e[r >> 2] = h;
                else e[(s + 20) >> 2] = h;
                if (!h) break;
              }
              r = e[24126] | 0;
              if (h >>> 0 < r >>> 0) a();
              e[(h + 24) >> 2] = s;
              i = e[(l + (d + 8)) >> 2] | 0;
              do
                if (i)
                  if (i >>> 0 < r >>> 0) a();
                  else {
                    e[(h + 16) >> 2] = i;
                    e[(i + 24) >> 2] = h;
                    break;
                  }
              while (0);
              t = e[(l + (d + 12)) >> 2] | 0;
              if (t)
                if (t >>> 0 < (e[24126] | 0) >>> 0) a();
                else {
                  e[(h + 20) >> 2] = t;
                  e[(t + 24) >> 2] = h;
                  break;
                }
            }
          } else {
            t = e[(l + d) >> 2] | 0;
            n = e[(l + (d | 4)) >> 2] | 0;
            r = (96528 + ((s << 1) << 2)) | 0;
            if ((t | 0) != (r | 0)) {
              if (t >>> 0 < (e[24126] | 0) >>> 0) a();
              if ((e[(t + 12) >> 2] | 0) != (_ | 0)) a();
            }
            if ((n | 0) == (t | 0)) {
              e[24122] = e[24122] & ~(1 << s);
              break;
            }
            if ((n | 0) != (r | 0)) {
              if (n >>> 0 < (e[24126] | 0) >>> 0) a();
              i = (n + 8) | 0;
              if ((e[i >> 2] | 0) == (_ | 0)) S = i;
              else a();
            } else S = (n + 8) | 0;
            e[(t + 12) >> 2] = n;
            e[S >> 2] = t;
          }
        while (0);
        e[(o + 4) >> 2] = m | 1;
        e[(o + m) >> 2] = m;
        if ((o | 0) == (e[24127] | 0)) {
          e[24124] = m;
          return;
        } else r = m;
      } else {
        e[r >> 2] = i & -2;
        e[(o + 4) >> 2] = u | 1;
        e[(o + u) >> 2] = u;
        r = u;
      }
      i = r >>> 3;
      if (r >>> 0 < 256) {
        n = i << 1;
        r = (96528 + (n << 2)) | 0;
        s = e[24122] | 0;
        t = 1 << i;
        if (s & t) {
          t = (96528 + ((n + 2) << 2)) | 0;
          s = e[t >> 2] | 0;
          if (s >>> 0 < (e[24126] | 0) >>> 0) a();
          else {
            b = t;
            v = s;
          }
        } else {
          e[24122] = s | t;
          b = (96528 + ((n + 2) << 2)) | 0;
          v = r;
        }
        e[b >> 2] = o;
        e[(v + 12) >> 2] = o;
        e[(o + 8) >> 2] = v;
        e[(o + 12) >> 2] = r;
        return;
      }
      s = r >>> 8;
      if (s)
        if (r >>> 0 > 16777215) i = 31;
        else {
          u = (((s + 1048320) | 0) >>> 16) & 8;
          f = s << u;
          c = (((f + 520192) | 0) >>> 16) & 4;
          f = f << c;
          i = (((f + 245760) | 0) >>> 16) & 2;
          i = (14 - (c | u | i) + ((f << i) >>> 15)) | 0;
          i = ((r >>> ((i + 7) | 0)) & 1) | (i << 1);
        }
      else i = 0;
      t = (96792 + (i << 2)) | 0;
      e[(o + 28) >> 2] = i;
      e[(o + 20) >> 2] = 0;
      e[(o + 16) >> 2] = 0;
      s = e[24123] | 0;
      n = 1 << i;
      e: do
        if (s & n) {
          t = e[t >> 2] | 0;
          r: do
            if (((e[(t + 4) >> 2] & -8) | 0) != (r | 0)) {
              i = r << ((i | 0) == 31 ? 0 : (25 - (i >>> 1)) | 0);
              while (1) {
                s = (t + 16 + ((i >>> 31) << 2)) | 0;
                n = e[s >> 2] | 0;
                if (!n) break;
                if (((e[(n + 4) >> 2] & -8) | 0) == (r | 0)) {
                  E = n;
                  break r;
                } else {
                  i = i << 1;
                  t = n;
                }
              }
              if (s >>> 0 < (e[24126] | 0) >>> 0) a();
              else {
                e[s >> 2] = o;
                e[(o + 24) >> 2] = t;
                e[(o + 12) >> 2] = o;
                e[(o + 8) >> 2] = o;
                break e;
              }
            } else E = t;
          while (0);
          s = (E + 8) | 0;
          t = e[s >> 2] | 0;
          f = e[24126] | 0;
          if ((t >>> 0 >= f >>> 0) & (E >>> 0 >= f >>> 0)) {
            e[(t + 12) >> 2] = o;
            e[s >> 2] = o;
            e[(o + 8) >> 2] = t;
            e[(o + 12) >> 2] = E;
            e[(o + 24) >> 2] = 0;
            break;
          } else a();
        } else {
          e[24123] = s | n;
          e[t >> 2] = o;
          e[(o + 24) >> 2] = t;
          e[(o + 12) >> 2] = o;
          e[(o + 8) >> 2] = o;
        }
      while (0);
      f = ((e[24130] | 0) + -1) | 0;
      e[24130] = f;
      if (!f) s = 96944;
      else return;
      while (1) {
        s = e[s >> 2] | 0;
        if (!s) break;
        else s = (s + 8) | 0;
      }
      e[24130] = -1;
      return;
    }
    function k(t, r) {
      t = t | 0;
      r = r | 0;
      var i = 0;
      if (t) {
        i = s(r, t) | 0;
        if ((r | t) >>> 0 > 65535) i = (((i >>> 0) / (t >>> 0)) | 0 | 0) == (r | 0) ? i : -1;
      } else i = 0;
      r = W(i) | 0;
      if (!r) return r | 0;
      if (!(e[(r + -4) >> 2] & 3)) return r | 0;
      c(r | 0, 0, i | 0) | 0;
      return r | 0;
    }
    function Si() {}
    function R(r, e, i, t) {
      r = r | 0;
      e = e | 0;
      i = i | 0;
      t = t | 0;
      e = (e - t - ((i >>> 0 > r >>> 0) | 0)) >>> 0;
      return ((m = e), ((r - i) >>> 0) | 0) | 0;
    }
    function c(r, t, n) {
      r = r | 0;
      t = t | 0;
      n = n | 0;
      var a = 0,
        s = 0,
        o = 0,
        f = 0;
      a = (r + n) | 0;
      if ((n | 0) >= 20) {
        t = t & 255;
        o = r & 3;
        f = t | (t << 8) | (t << 16) | (t << 24);
        s = a & ~3;
        if (o) {
          o = (r + 4 - o) | 0;
          while ((r | 0) < (o | 0)) {
            i[r >> 0] = t;
            r = (r + 1) | 0;
          }
        }
        while ((r | 0) < (s | 0)) {
          e[r >> 2] = f;
          r = (r + 4) | 0;
        }
      }
      while ((r | 0) < (a | 0)) {
        i[r >> 0] = t;
        r = (r + 1) | 0;
      }
      return (r - n) | 0;
    }
    function D(r) {
      r = r | 0;
      var e = 0;
      e = r;
      while (i[e >> 0] | 0) e = (e + 1) | 0;
      return (e - r) | 0;
    }
    function Ne(r, i, e, t) {
      r = r | 0;
      i = i | 0;
      e = e | 0;
      t = t | 0;
      e = (r + e) >>> 0;
      return ((m = (i + t + ((e >>> 0 < r >>> 0) | 0)) >>> 0), e | 0) | 0;
    }
    function be(i, r, e) {
      i = i | 0;
      r = r | 0;
      e = e | 0;
      if ((e | 0) < 32) {
        m = r >>> e;
        return (i >>> e) | ((r & ((1 << e) - 1)) << (32 - e));
      }
      m = 0;
      return (r >>> (e - 32)) | 0;
    }
    function l(r, t, n) {
      r = r | 0;
      t = t | 0;
      n = n | 0;
      var o = 0;
      if ((n | 0) >= 4096) return Hi(r | 0, t | 0, n | 0) | 0;
      o = r | 0;
      if ((r & 3) == (t & 3)) {
        while (r & 3) {
          if (!n) return o | 0;
          i[r >> 0] = i[t >> 0] | 0;
          r = (r + 1) | 0;
          t = (t + 1) | 0;
          n = (n - 1) | 0;
        }
        while ((n | 0) >= 4) {
          e[r >> 2] = e[t >> 2];
          r = (r + 4) | 0;
          t = (t + 4) | 0;
          n = (n - 4) | 0;
        }
      }
      while ((n | 0) > 0) {
        i[r >> 0] = i[t >> 0] | 0;
        r = (r + 1) | 0;
        t = (t + 1) | 0;
        n = (n - 1) | 0;
      }
      return o | 0;
    }
    function Le(r, i, e) {
      r = r | 0;
      i = i | 0;
      e = e | 0;
      if ((e | 0) < 32) {
        m = (i << e) | ((r & (((1 << e) - 1) << (32 - e))) >>> (32 - e));
        return r << e;
      }
      m = r << (e - 32);
      return 0;
    }
    function Fn(i, r, e) {
      i = i | 0;
      r = r | 0;
      e = e | 0;
      if ((e | 0) < 32) {
        m = r >> e;
        return (i >>> e) | ((r & ((1 << e) - 1)) << (32 - e));
      }
      m = (r | 0) < 0 ? -1 : 0;
      return (r >> (e - 32)) | 0;
    }
    function Rr(r) {
      r = r | 0;
      var e = 0;
      e = i[(ke + (r & 255)) >> 0] | 0;
      if ((e | 0) < 8) return e | 0;
      e = i[(ke + ((r >> 8) & 255)) >> 0] | 0;
      if ((e | 0) < 8) return (e + 8) | 0;
      e = i[(ke + ((r >> 16) & 255)) >> 0] | 0;
      if ((e | 0) < 8) return (e + 16) | 0;
      return ((i[(ke + (r >>> 24)) >> 0] | 0) + 24) | 0;
    }
    function wi(e, r) {
      e = e | 0;
      r = r | 0;
      var t = 0,
        i = 0,
        n = 0,
        o = 0;
      o = e & 65535;
      i = r & 65535;
      t = s(i, o) | 0;
      n = e >>> 16;
      i = ((t >>> 16) + (s(i, n) | 0)) | 0;
      r = r >>> 16;
      e = s(r, o) | 0;
      return (
        ((m = ((i >>> 16) + (s(r, n) | 0) + ((((i & 65535) + e) | 0) >>> 16)) | 0),
        ((i + e) << 16) | (t & 65535) | 0) | 0
      );
    }
    function An(i, e, s, r) {
      i = i | 0;
      e = e | 0;
      s = s | 0;
      r = r | 0;
      var t = 0,
        n = 0,
        f = 0,
        l = 0,
        o = 0,
        a = 0;
      a = (e >> 31) | (((e | 0) < 0 ? -1 : 0) << 1);
      o = (((e | 0) < 0 ? -1 : 0) >> 31) | (((e | 0) < 0 ? -1 : 0) << 1);
      n = (r >> 31) | (((r | 0) < 0 ? -1 : 0) << 1);
      t = (((r | 0) < 0 ? -1 : 0) >> 31) | (((r | 0) < 0 ? -1 : 0) << 1);
      l = R(a ^ i, o ^ e, a, o) | 0;
      f = m;
      e = n ^ a;
      i = t ^ o;
      return R((Me(l, f, R(n ^ s, t ^ r, n, t) | 0, m, 0) | 0) ^ e, m ^ i, e, i) | 0;
    }
    function Tn(i, r, f, n) {
      i = i | 0;
      r = r | 0;
      f = f | 0;
      n = n | 0;
      var l = 0,
        o = 0,
        a = 0,
        s = 0,
        u = 0,
        c = 0;
      l = t;
      t = (t + 8) | 0;
      s = l | 0;
      a = (r >> 31) | (((r | 0) < 0 ? -1 : 0) << 1);
      o = (((r | 0) < 0 ? -1 : 0) >> 31) | (((r | 0) < 0 ? -1 : 0) << 1);
      c = (n >> 31) | (((n | 0) < 0 ? -1 : 0) << 1);
      u = (((n | 0) < 0 ? -1 : 0) >> 31) | (((n | 0) < 0 ? -1 : 0) << 1);
      r = R(a ^ i, o ^ r, a, o) | 0;
      i = m;
      Me(r, i, R(c ^ f, u ^ n, c, u) | 0, m, s) | 0;
      i = R(e[s >> 2] ^ a, e[(s + 4) >> 2] ^ o, a, o) | 0;
      r = m;
      t = l;
      return ((m = r), i) | 0;
    }
    function Nn(r, i, e, t) {
      r = r | 0;
      i = i | 0;
      e = e | 0;
      t = t | 0;
      var n = 0,
        o = 0;
      n = r;
      o = e;
      r = wi(n, o) | 0;
      e = m;
      return ((m = ((s(i, o) | 0) + (s(t, n) | 0) + e) | (e & 0)), r | 0 | 0) | 0;
    }
    function se(e, r, i, t) {
      e = e | 0;
      r = r | 0;
      i = i | 0;
      t = t | 0;
      return Me(e, r, i, t, 0) | 0;
    }
    function te(i, n, o, a) {
      i = i | 0;
      n = n | 0;
      o = o | 0;
      a = a | 0;
      var r = 0,
        s = 0;
      s = t;
      t = (t + 8) | 0;
      r = s | 0;
      Me(i, n, o, a, r) | 0;
      t = s;
      return ((m = e[(r + 4) >> 2] | 0), e[r >> 2] | 0) | 0;
    }
    function Me(f, c, d, w, n) {
      f = f | 0;
      c = c | 0;
      d = d | 0;
      w = w | 0;
      n = n | 0;
      var u = 0,
        t = 0,
        a = 0,
        l = 0,
        o = 0,
        i = 0,
        r = 0,
        s = 0,
        p = 0,
        h = 0;
      s = f;
      i = c;
      r = i;
      o = d;
      p = w;
      a = p;
      if (!r) {
        u = (n | 0) != 0;
        if (!a) {
          if (u) {
            e[n >> 2] = (s >>> 0) % (o >>> 0);
            e[(n + 4) >> 2] = 0;
          }
          i = 0;
          r = ((s >>> 0) / (o >>> 0)) >>> 0;
          return ((m = i), r) | 0;
        } else {
          if (!u) {
            i = 0;
            r = 0;
            return ((m = i), r) | 0;
          }
          e[n >> 2] = f | 0;
          e[(n + 4) >> 2] = c & 0;
          i = 0;
          r = 0;
          return ((m = i), r) | 0;
        }
      }
      l = (a | 0) == 0;
      do
        if (o) {
          if (!l) {
            t = ((U(a | 0) | 0) - (U(r | 0) | 0)) | 0;
            if (t >>> 0 <= 31) {
              u = (t + 1) | 0;
              i = (31 - t) | 0;
              o = (t - 31) >> 31;
              a = u;
              l = ((s >>> (u >>> 0)) & o) | (r << i);
              o = (r >>> (u >>> 0)) & o;
              u = 0;
              t = s << i;
              break;
            }
            if (!n) {
              i = 0;
              r = 0;
              return ((m = i), r) | 0;
            }
            e[n >> 2] = f | 0;
            e[(n + 4) >> 2] = i | (c & 0);
            i = 0;
            r = 0;
            return ((m = i), r) | 0;
          }
          l = (o - 1) | 0;
          if (l & o) {
            t = ((U(o | 0) | 0) + 33 - (U(r | 0) | 0)) | 0;
            h = (64 - t) | 0;
            i = (32 - t) | 0;
            f = i >> 31;
            c = (t - 32) | 0;
            o = c >> 31;
            a = t;
            l = (((i - 1) >> 31) & (r >>> (c >>> 0))) | (((r << i) | (s >>> (t >>> 0))) & o);
            o = o & (r >>> (t >>> 0));
            u = (s << h) & f;
            t = (((r << h) | (s >>> (c >>> 0))) & f) | ((s << i) & ((t - 33) >> 31));
            break;
          }
          if (n) {
            e[n >> 2] = l & s;
            e[(n + 4) >> 2] = 0;
          }
          if ((o | 0) == 1) {
            i = i | (c & 0);
            r = f | 0 | 0;
            return ((m = i), r) | 0;
          } else {
            f = Rr(o | 0) | 0;
            i = (r >>> (f >>> 0)) | 0;
            r = (r << (32 - f)) | (s >>> (f >>> 0)) | 0;
            return ((m = i), r) | 0;
          }
        } else {
          if (l) {
            if (n) {
              e[n >> 2] = (r >>> 0) % (o >>> 0);
              e[(n + 4) >> 2] = 0;
            }
            i = 0;
            r = ((r >>> 0) / (o >>> 0)) >>> 0;
            return ((m = i), r) | 0;
          }
          if (!s) {
            if (n) {
              e[n >> 2] = 0;
              e[(n + 4) >> 2] = (r >>> 0) % (a >>> 0);
            }
            i = 0;
            r = ((r >>> 0) / (a >>> 0)) >>> 0;
            return ((m = i), r) | 0;
          }
          l = (a - 1) | 0;
          if (!(l & a)) {
            if (n) {
              e[n >> 2] = f | 0;
              e[(n + 4) >> 2] = (l & r) | (c & 0);
            }
            i = 0;
            r = r >>> ((Rr(a | 0) | 0) >>> 0);
            return ((m = i), r) | 0;
          }
          t = ((U(a | 0) | 0) - (U(r | 0) | 0)) | 0;
          if (t >>> 0 <= 30) {
            o = (t + 1) | 0;
            t = (31 - t) | 0;
            a = o;
            l = (r << t) | (s >>> (o >>> 0));
            o = r >>> (o >>> 0);
            u = 0;
            t = s << t;
            break;
          }
          if (!n) {
            i = 0;
            r = 0;
            return ((m = i), r) | 0;
          }
          e[n >> 2] = f | 0;
          e[(n + 4) >> 2] = i | (c & 0);
          i = 0;
          r = 0;
          return ((m = i), r) | 0;
        }
      while (0);
      if (!a) {
        i = t;
        a = 0;
        t = 0;
      } else {
        r = d | 0 | 0;
        i = p | (w & 0);
        c = Ne(r | 0, i | 0, -1, -1) | 0;
        f = m;
        d = t;
        t = 0;
        do {
          h = d;
          d = (u >>> 31) | (d << 1);
          u = t | (u << 1);
          h = (l << 1) | (h >>> 31) | 0;
          p = (l >>> 31) | (o << 1) | 0;
          R(c, f, h, p) | 0;
          s = m;
          w = (s >> 31) | (((s | 0) < 0 ? -1 : 0) << 1);
          t = w & 1;
          l =
            R(h, p, w & r, ((((s | 0) < 0 ? -1 : 0) >> 31) | (((s | 0) < 0 ? -1 : 0) << 1)) & i) |
            0;
          o = m;
          a = (a - 1) | 0;
        } while ((a | 0) != 0);
        i = d;
        a = 0;
      }
      d = 0;
      if (n) {
        e[n >> 2] = l;
        e[(n + 4) >> 2] = o;
      }
      i = ((u | 0) >>> 31) | ((i | d) << 1) | (((d << 1) | (u >>> 31)) & 0) | a;
      r = (((u << 1) | (0 >>> 31)) & -2) | t;
      return ((m = i), r) | 0;
    }
    function ui(e, r, i, t) {
      e = e | 0;
      r = r | 0;
      i = i | 0;
      t = t | 0;
      return y[e & 3](r | 0, i | 0, t | 0) | 0;
    }
    function fi(e, r, i, t, n) {
      e = e | 0;
      r = r | 0;
      i = i | 0;
      t = t | 0;
      n = n | 0;
      return wr[e & 7](r | 0, i | 0, t | 0, n | 0) | 0;
    }
    function si(e, r, i) {
      e = e | 0;
      r = r | 0;
      i = i | 0;
      K[e & 3](r | 0, i | 0);
    }
    function ii(e, r, i) {
      e = e | 0;
      r = r | 0;
      i = i | 0;
      return g[e & 1](r | 0, i | 0) | 0;
    }
    function ri(e, r, i, t, n) {
      e = e | 0;
      r = r | 0;
      i = i | 0;
      t = t | 0;
      n = n | 0;
      H[e & 7](r | 0, i | 0, t | 0, n | 0);
    }
    function dr(e, r, i) {
      e = e | 0;
      r = r | 0;
      i = i | 0;
      j(0);
      return 0;
    }
    function fe(e, r, i, t) {
      e = e | 0;
      r = r | 0;
      i = i | 0;
      t = t | 0;
      j(1);
      return 0;
    }
    function br(e, r) {
      e = e | 0;
      r = r | 0;
      j(2);
    }
    function Qr(e, r) {
      e = e | 0;
      r = r | 0;
      j(3);
      return 0;
    }
    function Sr(e, r, i, t) {
      e = e | 0;
      r = r | 0;
      i = i | 0;
      t = t | 0;
      j(4);
    }
    function Gr(e, r, i, t) {
      e = e | 0;
      r = r | 0;
      i = i | 0;
      t = t | 0;
      _i(e | 0, r | 0, i | 0, t | 0);
    }
    var y = [dr, ki, Fi, dr];
    var wr = [fe, Oi, Ri, Ai, Ti, fe, fe, fe];
    var K = [br, Rt, qi, br];
    var g = [Qr, qr];
    var H = [Sr, Kr, Xr, jr, Yr, Gr, Vr, Sr];
    return {
      _i64Subtract: R,
      _lame_set_brate: Tr,
      _lame_encode_buffer_ieee_float: gt,
      _lame_close: bt,
      _lame_set_in_samplerate: Cr,
      _i64Add: Ne,
      _lame_set_num_channels: Br,
      _strlen: D,
      _memset: c,
      _malloc: W,
      _memcpy: l,
      _lame_init: vt,
      _bitshift64Lshr: be,
      _free: _,
      _lame_init_params: At,
      _lame_encode_flush: kt,
      _bitshift64Shl: Le,
      _lame_set_mode: Hr,
      runPostSets: Si,
      stackAlloc: et,
      stackSave: rt,
      stackRestore: it,
      establishStackSpace: tt,
      setThrew: nt,
      setTempRet0: st,
      getTempRet0: ft,
      dynCall_iiii: ui,
      dynCall_iiiii: fi,
      dynCall_vii: si,
      dynCall_iii: ii,
      dynCall_viiii: ri
    };
  })(Module.asmGlobalArg, Module.asmLibraryArg, buffer);
  var _i64Subtract = (Module["_i64Subtract"] = asm["_i64Subtract"]);
  var _lame_set_brate = (Module["_lame_set_brate"] = asm["_lame_set_brate"]);
  var _lame_encode_buffer_ieee_float = (Module["_lame_encode_buffer_ieee_float"] =
    asm["_lame_encode_buffer_ieee_float"]);
  var runPostSets = (Module["runPostSets"] = asm["runPostSets"]);
  var _lame_close = (Module["_lame_close"] = asm["_lame_close"]);
  var _lame_set_in_samplerate = (Module["_lame_set_in_samplerate"] =
    asm["_lame_set_in_samplerate"]);
  var _i64Add = (Module["_i64Add"] = asm["_i64Add"]);
  var _lame_set_num_channels = (Module["_lame_set_num_channels"] = asm["_lame_set_num_channels"]);
  var _strlen = (Module["_strlen"] = asm["_strlen"]);
  var _memset = (Module["_memset"] = asm["_memset"]);
  var _malloc = (Module["_malloc"] = asm["_malloc"]);
  var _lame_set_mode = (Module["_lame_set_mode"] = asm["_lame_set_mode"]);
  var _memcpy = (Module["_memcpy"] = asm["_memcpy"]);
  var _lame_init = (Module["_lame_init"] = asm["_lame_init"]);
  var _bitshift64Lshr = (Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"]);
  var _free = (Module["_free"] = asm["_free"]);
  var _lame_init_params = (Module["_lame_init_params"] = asm["_lame_init_params"]);
  var _lame_encode_flush = (Module["_lame_encode_flush"] = asm["_lame_encode_flush"]);
  var _bitshift64Shl = (Module["_bitshift64Shl"] = asm["_bitshift64Shl"]);
  var dynCall_iiii = (Module["dynCall_iiii"] = asm["dynCall_iiii"]);
  var dynCall_iiiii = (Module["dynCall_iiiii"] = asm["dynCall_iiiii"]);
  var dynCall_vii = (Module["dynCall_vii"] = asm["dynCall_vii"]);
  var dynCall_iii = (Module["dynCall_iii"] = asm["dynCall_iii"]);
  var dynCall_viiii = (Module["dynCall_viiii"] = asm["dynCall_viiii"]);
  Runtime.stackAlloc = asm["stackAlloc"];
  Runtime.stackSave = asm["stackSave"];
  Runtime.stackRestore = asm["stackRestore"];
  Runtime.establishStackSpace = asm["establishStackSpace"];
  Runtime.setTempRet0 = asm["setTempRet0"];
  Runtime.getTempRet0 = asm["getTempRet0"];
  var i64Math = (function() {
    var e = { math: {} };
    e.math.Long = function(e, r) {
      this.low_ = e | 0;
      this.high_ = r | 0;
    };
    e.math.Long.IntCache_ = {};
    e.math.Long.fromInt = function(r) {
      if (-128 <= r && r < 128) {
        var i = e.math.Long.IntCache_[r];
        if (i) {
          return i;
        }
      }
      var t = new e.math.Long(r | 0, r < 0 ? -1 : 0);
      if (-128 <= r && r < 128) {
        e.math.Long.IntCache_[r] = t;
      }
      return t;
    };
    e.math.Long.fromNumber = function(r) {
      if (isNaN(r) || !isFinite(r)) {
        return e.math.Long.ZERO;
      } else if (r <= -e.math.Long.TWO_PWR_63_DBL_) {
        return e.math.Long.MIN_VALUE;
      } else if (r + 1 >= e.math.Long.TWO_PWR_63_DBL_) {
        return e.math.Long.MAX_VALUE;
      } else if (r < 0) {
        return e.math.Long.fromNumber(-r).negate();
      } else {
        return new e.math.Long(
          r % e.math.Long.TWO_PWR_32_DBL_ | 0,
          (r / e.math.Long.TWO_PWR_32_DBL_) | 0
        );
      }
    };
    e.math.Long.fromBits = function(r, i) {
      return new e.math.Long(r, i);
    };
    e.math.Long.fromString = function(r, s) {
      if (r.length == 0) {
        throw Error("number format error: empty string");
      }
      var i = s || 10;
      if (i < 2 || 36 < i) {
        throw Error("radix out of range: " + i);
      }
      if (r.charAt(0) == "-") {
        return e.math.Long.fromString(r.substring(1), i).negate();
      } else if (r.indexOf("-") >= 0) {
        throw Error('number format error: interior "-" character: ' + r);
      }
      var f = e.math.Long.fromNumber(Math.pow(i, 8));
      var t = e.math.Long.ZERO;
      for (var n = 0; n < r.length; n += 8) {
        var o = Math.min(8, r.length - n);
        var a = parseInt(r.substring(n, n + o), i);
        if (o < 8) {
          var l = e.math.Long.fromNumber(Math.pow(i, o));
          t = t.multiply(l).add(e.math.Long.fromNumber(a));
        } else {
          t = t.multiply(f);
          t = t.add(e.math.Long.fromNumber(a));
        }
      }
      return t;
    };
    e.math.Long.TWO_PWR_16_DBL_ = 1 << 16;
    e.math.Long.TWO_PWR_24_DBL_ = 1 << 24;
    e.math.Long.TWO_PWR_32_DBL_ = e.math.Long.TWO_PWR_16_DBL_ * e.math.Long.TWO_PWR_16_DBL_;
    e.math.Long.TWO_PWR_31_DBL_ = e.math.Long.TWO_PWR_32_DBL_ / 2;
    e.math.Long.TWO_PWR_48_DBL_ = e.math.Long.TWO_PWR_32_DBL_ * e.math.Long.TWO_PWR_16_DBL_;
    e.math.Long.TWO_PWR_64_DBL_ = e.math.Long.TWO_PWR_32_DBL_ * e.math.Long.TWO_PWR_32_DBL_;
    e.math.Long.TWO_PWR_63_DBL_ = e.math.Long.TWO_PWR_64_DBL_ / 2;
    e.math.Long.ZERO = e.math.Long.fromInt(0);
    e.math.Long.ONE = e.math.Long.fromInt(1);
    e.math.Long.NEG_ONE = e.math.Long.fromInt(-1);
    e.math.Long.MAX_VALUE = e.math.Long.fromBits(4294967295 | 0, 2147483647 | 0);
    e.math.Long.MIN_VALUE = e.math.Long.fromBits(0, 2147483648 | 0);
    e.math.Long.TWO_PWR_24_ = e.math.Long.fromInt(1 << 24);
    e.math.Long.prototype.toInt = function() {
      return this.low_;
    };
    e.math.Long.prototype.toNumber = function() {
      return this.high_ * e.math.Long.TWO_PWR_32_DBL_ + this.getLowBitsUnsigned();
    };
    e.math.Long.prototype.toString = function(l) {
      var r = l || 10;
      if (r < 2 || 36 < r) {
        throw Error("radix out of range: " + r);
      }
      if (this.isZero()) {
        return "0";
      }
      if (this.isNegative()) {
        if (this.equals(e.math.Long.MIN_VALUE)) {
          var o = e.math.Long.fromNumber(r);
          var a = this.div(o);
          var i = a.multiply(o).subtract(this);
          return a.toString(r) + i.toInt().toString(r);
        } else {
          return "-" + this.negate().toString(r);
        }
      }
      var s = e.math.Long.fromNumber(Math.pow(r, 6));
      var i = this;
      var n = "";
      while (true) {
        var f = i.div(s);
        var u = i.subtract(f.multiply(s)).toInt();
        var t = u.toString(r);
        i = f;
        if (i.isZero()) {
          return t + n;
        } else {
          while (t.length < 6) {
            t = "0" + t;
          }
          n = "" + t + n;
        }
      }
    };
    e.math.Long.prototype.getHighBits = function() {
      return this.high_;
    };
    e.math.Long.prototype.getLowBits = function() {
      return this.low_;
    };
    e.math.Long.prototype.getLowBitsUnsigned = function() {
      return this.low_ >= 0 ? this.low_ : e.math.Long.TWO_PWR_32_DBL_ + this.low_;
    };
    e.math.Long.prototype.getNumBitsAbs = function() {
      if (this.isNegative()) {
        if (this.equals(e.math.Long.MIN_VALUE)) {
          return 64;
        } else {
          return this.negate().getNumBitsAbs();
        }
      } else {
        var i = this.high_ != 0 ? this.high_ : this.low_;
        for (var r = 31; r > 0; r--) {
          if ((i & (1 << r)) != 0) {
            break;
          }
        }
        return this.high_ != 0 ? r + 33 : r + 1;
      }
    };
    e.math.Long.prototype.isZero = function() {
      return this.high_ == 0 && this.low_ == 0;
    };
    e.math.Long.prototype.isNegative = function() {
      return this.high_ < 0;
    };
    e.math.Long.prototype.isOdd = function() {
      return (this.low_ & 1) == 1;
    };
    e.math.Long.prototype.equals = function(e) {
      return this.high_ == e.high_ && this.low_ == e.low_;
    };
    e.math.Long.prototype.notEquals = function(e) {
      return this.high_ != e.high_ || this.low_ != e.low_;
    };
    e.math.Long.prototype.lessThan = function(e) {
      return this.compare(e) < 0;
    };
    e.math.Long.prototype.lessThanOrEqual = function(e) {
      return this.compare(e) <= 0;
    };
    e.math.Long.prototype.greaterThan = function(e) {
      return this.compare(e) > 0;
    };
    e.math.Long.prototype.greaterThanOrEqual = function(e) {
      return this.compare(e) >= 0;
    };
    e.math.Long.prototype.compare = function(e) {
      if (this.equals(e)) {
        return 0;
      }
      var r = this.isNegative();
      var i = e.isNegative();
      if (r && !i) {
        return -1;
      }
      if (!r && i) {
        return 1;
      }
      if (this.subtract(e).isNegative()) {
        return -1;
      } else {
        return 1;
      }
    };
    e.math.Long.prototype.negate = function() {
      if (this.equals(e.math.Long.MIN_VALUE)) {
        return e.math.Long.MIN_VALUE;
      } else {
        return this.not().add(e.math.Long.ONE);
      }
    };
    e.math.Long.prototype.add = function(t) {
      var s = this.high_ >>> 16;
      var d = this.high_ & 65535;
      var c = this.low_ >>> 16;
      var u = this.low_ & 65535;
      var a = t.high_ >>> 16;
      var h = t.high_ & 65535;
      var f = t.low_ >>> 16;
      var l = t.low_ & 65535;
      var o = 0,
        i = 0,
        r = 0,
        n = 0;
      n += u + l;
      r += n >>> 16;
      n &= 65535;
      r += c + f;
      i += r >>> 16;
      r &= 65535;
      i += d + h;
      o += i >>> 16;
      i &= 65535;
      o += s + a;
      o &= 65535;
      return e.math.Long.fromBits((r << 16) | n, (o << 16) | i);
    };
    e.math.Long.prototype.subtract = function(e) {
      return this.add(e.negate());
    };
    e.math.Long.prototype.multiply = function(r) {
      if (this.isZero()) {
        return e.math.Long.ZERO;
      } else if (r.isZero()) {
        return e.math.Long.ZERO;
      }
      if (this.equals(e.math.Long.MIN_VALUE)) {
        return r.isOdd() ? e.math.Long.MIN_VALUE : e.math.Long.ZERO;
      } else if (r.equals(e.math.Long.MIN_VALUE)) {
        return this.isOdd() ? e.math.Long.MIN_VALUE : e.math.Long.ZERO;
      }
      if (this.isNegative()) {
        if (r.isNegative()) {
          return this.negate().multiply(r.negate());
        } else {
          return this.negate()
            .multiply(r)
            .negate();
        }
      } else if (r.isNegative()) {
        return this.multiply(r.negate()).negate();
      }
      if (this.lessThan(e.math.Long.TWO_PWR_24_) && r.lessThan(e.math.Long.TWO_PWR_24_)) {
        return e.math.Long.fromNumber(this.toNumber() * r.toNumber());
      }
      var d = this.high_ >>> 16;
      var u = this.high_ & 65535;
      var l = this.low_ >>> 16;
      var o = this.low_ & 65535;
      var h = r.high_ >>> 16;
      var c = r.high_ & 65535;
      var f = r.low_ >>> 16;
      var s = r.low_ & 65535;
      var n = 0,
        i = 0,
        t = 0,
        a = 0;
      a += o * s;
      t += a >>> 16;
      a &= 65535;
      t += l * s;
      i += t >>> 16;
      t &= 65535;
      t += o * f;
      i += t >>> 16;
      t &= 65535;
      i += u * s;
      n += i >>> 16;
      i &= 65535;
      i += l * f;
      n += i >>> 16;
      i &= 65535;
      i += o * c;
      n += i >>> 16;
      i &= 65535;
      n += d * s + u * f + l * c + o * h;
      n &= 65535;
      return e.math.Long.fromBits((t << 16) | a, (n << 16) | i);
    };
    e.math.Long.prototype.div = function(r) {
      if (r.isZero()) {
        throw Error("division by zero");
      } else if (this.isZero()) {
        return e.math.Long.ZERO;
      }
      if (this.equals(e.math.Long.MIN_VALUE)) {
        if (r.equals(e.math.Long.ONE) || r.equals(e.math.Long.NEG_ONE)) {
          return e.math.Long.MIN_VALUE;
        } else if (r.equals(e.math.Long.MIN_VALUE)) {
          return e.math.Long.ONE;
        } else {
          var f = this.shiftRight(1);
          var i = f.div(r).shiftLeft(1);
          if (i.equals(e.math.Long.ZERO)) {
            return r.isNegative() ? e.math.Long.ONE : e.math.Long.NEG_ONE;
          } else {
            var t = this.subtract(r.multiply(i));
            var l = i.add(t.div(r));
            return l;
          }
        }
      } else if (r.equals(e.math.Long.MIN_VALUE)) {
        return e.math.Long.ZERO;
      }
      if (this.isNegative()) {
        if (r.isNegative()) {
          return this.negate().div(r.negate());
        } else {
          return this.negate()
            .div(r)
            .negate();
        }
      } else if (r.isNegative()) {
        return this.div(r.negate()).negate();
      }
      var a = e.math.Long.ZERO;
      var t = this;
      while (t.greaterThanOrEqual(r)) {
        var i = Math.max(1, Math.floor(t.toNumber() / r.toNumber()));
        var s = Math.ceil(Math.log(i) / Math.LN2);
        var u = s <= 48 ? 1 : Math.pow(2, s - 48);
        var n = e.math.Long.fromNumber(i);
        var o = n.multiply(r);
        while (o.isNegative() || o.greaterThan(t)) {
          i -= u;
          n = e.math.Long.fromNumber(i);
          o = n.multiply(r);
        }
        if (n.isZero()) {
          n = e.math.Long.ONE;
        }
        a = a.add(n);
        t = t.subtract(o);
      }
      return a;
    };
    e.math.Long.prototype.modulo = function(e) {
      return this.subtract(this.div(e).multiply(e));
    };
    e.math.Long.prototype.not = function() {
      return e.math.Long.fromBits(~this.low_, ~this.high_);
    };
    e.math.Long.prototype.and = function(r) {
      return e.math.Long.fromBits(this.low_ & r.low_, this.high_ & r.high_);
    };
    e.math.Long.prototype.or = function(r) {
      return e.math.Long.fromBits(this.low_ | r.low_, this.high_ | r.high_);
    };
    e.math.Long.prototype.xor = function(r) {
      return e.math.Long.fromBits(this.low_ ^ r.low_, this.high_ ^ r.high_);
    };
    e.math.Long.prototype.shiftLeft = function(r) {
      r &= 63;
      if (r == 0) {
        return this;
      } else {
        var i = this.low_;
        if (r < 32) {
          var t = this.high_;
          return e.math.Long.fromBits(i << r, (t << r) | (i >>> (32 - r)));
        } else {
          return e.math.Long.fromBits(0, i << (r - 32));
        }
      }
    };
    e.math.Long.prototype.shiftRight = function(r) {
      r &= 63;
      if (r == 0) {
        return this;
      } else {
        var i = this.high_;
        if (r < 32) {
          var t = this.low_;
          return e.math.Long.fromBits((t >>> r) | (i << (32 - r)), i >> r);
        } else {
          return e.math.Long.fromBits(i >> (r - 32), i >= 0 ? 0 : -1);
        }
      }
    };
    e.math.Long.prototype.shiftRightUnsigned = function(r) {
      r &= 63;
      if (r == 0) {
        return this;
      } else {
        var i = this.high_;
        if (r < 32) {
          var t = this.low_;
          return e.math.Long.fromBits((t >>> r) | (i << (32 - r)), i >>> r);
        } else if (r == 32) {
          return e.math.Long.fromBits(i, 0);
        } else {
          return e.math.Long.fromBits(i >>> (r - 32), 0);
        }
      }
    };
    var m = { appName: "Modern Browser" };
    var o;
    var D = 0xdeadbeefcafe;
    var w = (D & 16777215) == 15715070;
    function r(e, r, i) {
      if (e != null)
        if ("number" == typeof e) this.fromNumber(e, r, i);
        else if (r == null && "string" != typeof e) this.fromString(e, 256);
        else this.fromString(e, r);
    }
    function t() {
      return new r(null);
    }
    function v(n, o, r, i, e, a) {
      while (--a >= 0) {
        var t = o * this[n++] + r[i] + e;
        e = Math.floor(t / 67108864);
        r[i++] = t & 67108863;
      }
      return e;
    }
    function F(i, o, f, t, r, u) {
      var a = o & 32767,
        s = o >> 15;
      while (--u >= 0) {
        var e = this[i] & 32767;
        var l = this[i++] >> 15;
        var n = s * e + l * a;
        e = a * e + ((n & 32767) << 15) + f[t] + (r & 1073741823);
        r = (e >>> 30) + (n >>> 15) + s * l + (r >>> 30);
        f[t++] = e & 1073741823;
      }
      return r;
    }
    function N(i, o, f, t, r, u) {
      var a = o & 16383,
        s = o >> 14;
      while (--u >= 0) {
        var e = this[i] & 16383;
        var l = this[i++] >> 14;
        var n = s * e + l * a;
        e = a * e + ((n & 16383) << 14) + f[t] + r;
        r = (e >> 28) + (n >> 14) + s * l;
        f[t++] = e & 268435455;
      }
      return r;
    }
    if (w && m.appName == "Microsoft Internet Explorer") {
      r.prototype.am = F;
      o = 30;
    } else if (w && m.appName != "Netscape") {
      r.prototype.am = v;
      o = 26;
    } else {
      r.prototype.am = N;
      o = 28;
    }
    r.prototype.DB = o;
    r.prototype.DM = (1 << o) - 1;
    r.prototype.DV = 1 << o;
    var u = 52;
    r.prototype.FV = Math.pow(2, u);
    r.prototype.F1 = u - o;
    r.prototype.F2 = 2 * o - u;
    var I = "0123456789abcdefghijklmnopqrstuvwxyz";
    var l = new Array();
    var s, n;
    s = "0".charCodeAt(0);
    for (n = 0; n <= 9; ++n) l[s++] = n;
    s = "a".charCodeAt(0);
    for (n = 10; n < 36; ++n) l[s++] = n;
    s = "A".charCodeAt(0);
    for (n = 10; n < 36; ++n) l[s++] = n;
    function p(e) {
      return I.charAt(e);
    }
    function h(r, i) {
      var e = l[r.charCodeAt(i)];
      return e == null ? -1 : e;
    }
    function j(r) {
      for (var e = this.t - 1; e >= 0; --e) r[e] = this[e];
      r.t = this.t;
      r.s = this.s;
    }
    function E(e) {
      this.t = 1;
      this.s = e < 0 ? -1 : 0;
      if (e > 0) this[0] = e;
      else if (e < -1) this[0] = e + DV;
      else this.t = 0;
    }
    function c(r) {
      var e = t();
      e.fromInt(r);
      return e;
    }
    function S(n, t) {
      var i;
      if (t == 16) i = 4;
      else if (t == 8) i = 3;
      else if (t == 256) i = 8;
      else if (t == 2) i = 1;
      else if (t == 32) i = 5;
      else if (t == 4) i = 2;
      else {
        this.fromRadix(n, t);
        return;
      }
      this.t = 0;
      this.s = 0;
      var a = n.length,
        s = false,
        e = 0;
      while (--a >= 0) {
        var o = i == 8 ? n[a] & 255 : h(n, a);
        if (o < 0) {
          if (n.charAt(a) == "-") s = true;
          continue;
        }
        s = false;
        if (e == 0) this[this.t++] = o;
        else if (e + i > this.DB) {
          this[this.t - 1] |= (o & ((1 << (this.DB - e)) - 1)) << e;
          this[this.t++] = o >> (this.DB - e);
        } else this[this.t - 1] |= o << e;
        e += i;
        if (e >= this.DB) e -= this.DB;
      }
      if (i == 8 && (n[0] & 128) != 0) {
        this.s = -1;
        if (e > 0) this[this.t - 1] |= ((1 << (this.DB - e)) - 1) << e;
      }
      this.clamp();
      if (s) r.ZERO.subTo(this, this);
    }
    function b() {
      var e = this.s & this.DM;
      while (this.t > 0 && this[this.t - 1] == e) --this.t;
    }
    function k(t) {
      if (this.s < 0) return "-" + this.negate().toString(t);
      var e;
      if (t == 16) e = 4;
      else if (t == 8) e = 3;
      else if (t == 2) e = 1;
      else if (t == 32) e = 5;
      else if (t == 4) e = 2;
      else return this.toRadix(t);
      var s = (1 << e) - 1,
        n,
        o = false,
        a = "",
        i = this.t;
      var r = this.DB - ((i * this.DB) % e);
      if (i-- > 0) {
        if (r < this.DB && (n = this[i] >> r) > 0) {
          o = true;
          a = p(n);
        }
        while (i >= 0) {
          if (r < e) {
            n = (this[i] & ((1 << r) - 1)) << (e - r);
            n |= this[--i] >> (r += this.DB - e);
          } else {
            n = (this[i] >> (r -= e)) & s;
            if (r <= 0) {
              r += this.DB;
              --i;
            }
          }
          if (n > 0) o = true;
          if (o) a += p(n);
        }
      }
      return o ? a : "0";
    }
    function g() {
      var e = t();
      r.ZERO.subTo(this, e);
      return e;
    }
    function y() {
      return this.s < 0 ? this.negate() : this;
    }
    function M(i) {
      var e = this.s - i.s;
      if (e != 0) return e;
      var r = this.t;
      e = r - i.t;
      if (e != 0) return this.s < 0 ? -e : e;
      while (--r >= 0) if ((e = this[r] - i[r]) != 0) return e;
      return 0;
    }
    function d(e) {
      var i = 1,
        r;
      if ((r = e >>> 16) != 0) {
        e = r;
        i += 16;
      }
      if ((r = e >> 8) != 0) {
        e = r;
        i += 8;
      }
      if ((r = e >> 4) != 0) {
        e = r;
        i += 4;
      }
      if ((r = e >> 2) != 0) {
        e = r;
        i += 2;
      }
      if ((r = e >> 1) != 0) {
        e = r;
        i += 1;
      }
      return i;
    }
    function O() {
      if (this.t <= 0) return 0;
      return this.DB * (this.t - 1) + d(this[this.t - 1] ^ (this.s & this.DM));
    }
    function R(i, r) {
      var e;
      for (e = this.t - 1; e >= 0; --e) r[e + i] = this[e];
      for (e = i - 1; e >= 0; --e) r[e] = 0;
      r.t = this.t + i;
      r.s = this.s;
    }
    function A(r, i) {
      for (var e = r; e < this.t; ++e) i[e - r] = this[e];
      i.t = Math.max(this.t - r, 0);
      i.s = this.s;
    }
    function T(o, r) {
      var t = o % this.DB;
      var a = this.DB - t;
      var s = (1 << a) - 1;
      var i = Math.floor(o / this.DB),
        n = (this.s << t) & this.DM,
        e;
      for (e = this.t - 1; e >= 0; --e) {
        r[e + i + 1] = (this[e] >> a) | n;
        n = (this[e] & s) << t;
      }
      for (e = i - 1; e >= 0; --e) r[e] = 0;
      r[i] = n;
      r.t = this.t + i + 1;
      r.s = this.s;
      r.clamp();
    }
    function se(n, e) {
      e.s = this.s;
      var r = Math.floor(n / this.DB);
      if (r >= this.t) {
        e.t = 0;
        return;
      }
      var t = n % this.DB;
      var o = this.DB - t;
      var a = (1 << t) - 1;
      e[0] = this[r] >> t;
      for (var i = r + 1; i < this.t; ++i) {
        e[i - r - 1] |= (this[i] & a) << o;
        e[i - r] = this[i] >> t;
      }
      if (t > 0) e[this.t - r - 1] |= (this.s & a) << o;
      e.t = this.t - r;
      e.clamp();
    }
    function _(t, i) {
      var r = 0,
        e = 0,
        n = Math.min(t.t, this.t);
      while (r < n) {
        e += this[r] - t[r];
        i[r++] = e & this.DM;
        e >>= this.DB;
      }
      if (t.t < this.t) {
        e -= t.s;
        while (r < this.t) {
          e += this[r];
          i[r++] = e & this.DM;
          e >>= this.DB;
        }
        e += this.s;
      } else {
        e += this.s;
        while (r < t.t) {
          e -= t[r];
          i[r++] = e & this.DM;
          e >>= this.DB;
        }
        e -= t.s;
      }
      i.s = e < 0 ? -1 : 0;
      if (e < -1) i[r++] = this.DV + e;
      else if (e > 0) i[r++] = e;
      i.t = r;
      i.clamp();
    }
    function P(o, i) {
      var t = this.abs(),
        n = o.abs();
      var e = t.t;
      i.t = e + n.t;
      while (--e >= 0) i[e] = 0;
      for (e = 0; e < n.t; ++e) i[e + t.t] = t.am(0, n[e], i, e, 0, t.t);
      i.s = 0;
      i.clamp();
      if (this.s != o.s) r.ZERO.subTo(i, i);
    }
    function L(i) {
      var r = this.abs();
      var e = (i.t = 2 * r.t);
      while (--e >= 0) i[e] = 0;
      for (e = 0; e < r.t - 1; ++e) {
        var t = r.am(e, r[e], i, 2 * e, 0, 1);
        if ((i[e + r.t] += r.am(e + 1, 2 * r[e], i, 2 * e + 1, t, r.t - e - 1)) >= r.DV) {
          i[e + r.t] -= r.DV;
          i[e + r.t + 1] = 1;
        }
      }
      if (i.t > 0) i[i.t - 1] += r.am(e, r[e], i, 2 * e, 0, 1);
      i.s = 0;
      i.clamp();
    }
    function C(_, a, e) {
      var s = _.abs();
      if (s.t <= 0) return;
      var m = this.abs();
      if (m.t < s.t) {
        if (a != null) a.fromInt(0);
        if (e != null) this.copyTo(e);
        return;
      }
      if (e == null) e = t();
      var i = t(),
        p = this.s,
        b = _.s;
      var l = this.DB - d(s[s.t - 1]);
      if (l > 0) {
        s.lShiftTo(l, i);
        m.lShiftTo(l, e);
      } else {
        s.copyTo(i);
        m.copyTo(e);
      }
      var n = i.t;
      var h = i[n - 1];
      if (h == 0) return;
      var w = h * (1 << this.F1) + (n > 1 ? i[n - 2] >> this.F2 : 0);
      var E = this.FV / w,
        v = (1 << this.F1) / w,
        S = 1 << this.F2;
      var f = e.t,
        u = f - n,
        o = a == null ? t() : a;
      i.dlShiftTo(u, o);
      if (e.compareTo(o) >= 0) {
        e[e.t++] = 1;
        e.subTo(o, e);
      }
      r.ONE.dlShiftTo(n, o);
      o.subTo(i, i);
      while (i.t < n) i[i.t++] = 0;
      while (--u >= 0) {
        var c = e[--f] == h ? this.DM : Math.floor(e[f] * E + (e[f - 1] + S) * v);
        if ((e[f] += i.am(0, c, e, u, 0, n)) < c) {
          i.dlShiftTo(u, o);
          e.subTo(o, e);
          while (e[f] < --c) e.subTo(o, e);
        }
      }
      if (a != null) {
        e.drShiftTo(n, a);
        if (p != b) r.ZERO.subTo(a, a);
      }
      e.t = n;
      e.clamp();
      if (l > 0) e.rShiftTo(l, e);
      if (p < 0) r.ZERO.subTo(e, e);
    }
    function B(i) {
      var e = t();
      this.abs().divRemTo(i, null, e);
      if (this.s < 0 && e.compareTo(r.ZERO) > 0) i.subTo(e, e);
      return e;
    }
    function f(e) {
      this.m = e;
    }
    function x(e) {
      if (e.s < 0 || e.compareTo(this.m) >= 0) return e.mod(this.m);
      else return e;
    }
    function H(e) {
      return e;
    }
    function U(e) {
      e.divRemTo(this.m, null, e);
    }
    function z(r, i, e) {
      r.multiplyTo(i, e);
      this.reduce(e);
    }
    function q(r, e) {
      r.squareTo(e);
      this.reduce(e);
    }
    f.prototype.convert = x;
    f.prototype.revert = H;
    f.prototype.reduce = U;
    f.prototype.mulTo = z;
    f.prototype.sqrTo = q;
    function V() {
      if (this.t < 1) return 0;
      var r = this[0];
      if ((r & 1) == 0) return 0;
      var e = r & 3;
      e = (e * (2 - (r & 15) * e)) & 15;
      e = (e * (2 - (r & 255) * e)) & 255;
      e = (e * (2 - (((r & 65535) * e) & 65535))) & 65535;
      e = (e * (2 - ((r * e) % this.DV))) % this.DV;
      return e > 0 ? this.DV - e : -e;
    }
    function a(e) {
      this.m = e;
      this.mp = e.invDigit();
      this.mpl = this.mp & 32767;
      this.mph = this.mp >> 15;
      this.um = (1 << (e.DB - 15)) - 1;
      this.mt2 = 2 * e.t;
    }
    function W(i) {
      var e = t();
      i.abs().dlShiftTo(this.m.t, e);
      e.divRemTo(this.m, null, e);
      if (i.s < 0 && e.compareTo(r.ZERO) > 0) this.m.subTo(e, e);
      return e;
    }
    function Y(r) {
      var e = t();
      r.copyTo(e);
      this.reduce(e);
      return e;
    }
    function K(e) {
      while (e.t <= this.mt2) e[e.t++] = 0;
      for (var i = 0; i < this.m.t; ++i) {
        var r = e[i] & 32767;
        var t =
          (r * this.mpl + (((r * this.mph + (e[i] >> 15) * this.mpl) & this.um) << 15)) & e.DM;
        r = i + this.m.t;
        e[r] += this.m.am(0, t, e, i, 0, this.m.t);
        while (e[r] >= e.DV) {
          e[r] -= e.DV;
          e[++r]++;
        }
      }
      e.clamp();
      e.drShiftTo(this.m.t, e);
      if (e.compareTo(this.m) >= 0) e.subTo(this.m, e);
    }
    function G(r, e) {
      r.squareTo(e);
      this.reduce(e);
    }
    function X(r, i, e) {
      r.multiplyTo(i, e);
      this.reduce(e);
    }
    a.prototype.convert = W;
    a.prototype.revert = Y;
    a.prototype.reduce = K;
    a.prototype.mulTo = X;
    a.prototype.sqrTo = G;
    function Z() {
      return (this.t > 0 ? this[0] & 1 : this.s) == 0;
    }
    function J(i, n) {
      if (i > 4294967295 || i < 1) return r.ONE;
      var e = t(),
        o = t(),
        a = n.convert(this),
        s = d(i) - 1;
      a.copyTo(e);
      while (--s >= 0) {
        n.sqrTo(e, o);
        if ((i & (1 << s)) > 0) n.mulTo(o, a, e);
        else {
          var f = e;
          e = o;
          o = f;
        }
      }
      return n.revert(e);
    }
    function Q(i, e) {
      var r;
      if (i < 256 || e.isEven()) r = new f(e);
      else r = new a(e);
      return this.exp(i, r);
    }
    r.prototype.copyTo = j;
    r.prototype.fromInt = E;
    r.prototype.fromString = S;
    r.prototype.clamp = b;
    r.prototype.dlShiftTo = R;
    r.prototype.drShiftTo = A;
    r.prototype.lShiftTo = T;
    r.prototype.rShiftTo = se;
    r.prototype.subTo = _;
    r.prototype.multiplyTo = P;
    r.prototype.squareTo = L;
    r.prototype.divRemTo = C;
    r.prototype.invDigit = V;
    r.prototype.isEven = Z;
    r.prototype.exp = J;
    r.prototype.toString = k;
    r.prototype.negate = g;
    r.prototype.abs = y;
    r.prototype.compareTo = M;
    r.prototype.bitLength = O;
    r.prototype.mod = B;
    r.prototype.modPowInt = Q;
    r.ZERO = c(0);
    r.ONE = c(1);
    function $(o, e) {
      this.fromInt(0);
      if (e == null) e = 10;
      var a = this.chunkSize(e);
      var l = Math.pow(e, a),
        s = false,
        t = 0,
        i = 0;
      for (var n = 0; n < o.length; ++n) {
        var f = h(o, n);
        if (f < 0) {
          if (o.charAt(n) == "-" && this.signum() == 0) s = true;
          continue;
        }
        i = e * i + f;
        if (++t >= a) {
          this.dMultiply(l);
          this.dAddOffset(i, 0);
          t = 0;
          i = 0;
        }
      }
      if (t > 0) {
        this.dMultiply(Math.pow(e, t));
        this.dAddOffset(i, 0);
      }
      if (s) r.ZERO.subTo(this, this);
    }
    function ee(e) {
      return Math.floor((Math.LN2 * this.DB) / Math.log(e));
    }
    function re() {
      if (this.s < 0) return -1;
      else if (this.t <= 0 || (this.t == 1 && this[0] <= 0)) return 0;
      else return 1;
    }
    function ie(e) {
      this[this.t] = this.am(0, e - 1, this, 0, 0, this.t);
      ++this.t;
      this.clamp();
    }
    function te(r, e) {
      if (r == 0) return;
      while (this.t <= e) this[this.t++] = 0;
      this[e] += r;
      while (this[e] >= this.DV) {
        this[e] -= this.DV;
        if (++e >= this.t) this[this.t++] = 0;
        ++this[e];
      }
    }
    function ne(e) {
      if (e == null) e = 10;
      if (this.signum() == 0 || e < 2 || e > 36) return "0";
      var s = this.chunkSize(e);
      var o = Math.pow(e, s);
      var a = c(o),
        r = t(),
        i = t(),
        n = "";
      this.divRemTo(a, r, i);
      while (r.signum() > 0) {
        n = (o + i.intValue()).toString(e).substr(1) + n;
        r.divRemTo(a, r, i);
      }
      return i.intValue().toString(e) + n;
    }
    function oe() {
      if (this.s < 0) {
        if (this.t == 1) return this[0] - this.DV;
        else if (this.t == 0) return -1;
      } else if (this.t == 1) return this[0];
      else if (this.t == 0) return 0;
      return ((this[1] & ((1 << (32 - this.DB)) - 1)) << this.DB) | this[0];
    }
    function ae(t, i) {
      var r = 0,
        e = 0,
        n = Math.min(t.t, this.t);
      while (r < n) {
        e += this[r] + t[r];
        i[r++] = e & this.DM;
        e >>= this.DB;
      }
      if (t.t < this.t) {
        e += t.s;
        while (r < this.t) {
          e += this[r];
          i[r++] = e & this.DM;
          e >>= this.DB;
        }
        e += this.s;
      } else {
        e += this.s;
        while (r < t.t) {
          e += t[r];
          i[r++] = e & this.DM;
          e >>= this.DB;
        }
        e += t.s;
      }
      i.s = e < 0 ? -1 : 0;
      if (e > 0) i[r++] = e;
      else if (e < -1) i[r++] = this.DV + e;
      i.t = r;
      i.clamp();
    }
    r.prototype.fromRadix = $;
    r.prototype.chunkSize = ee;
    r.prototype.signum = re;
    r.prototype.dMultiply = ie;
    r.prototype.dAddOffset = te;
    r.prototype.toRadix = ne;
    r.prototype.intValue = oe;
    r.prototype.addTo = ae;
    var i = {
      abs: function(t, n) {
        var i = new e.math.Long(t, n);
        var r;
        if (i.isNegative()) {
          r = i.negate();
        } else {
          r = i;
        }
        HEAP32[tempDoublePtr >> 2] = r.low_;
        HEAP32[(tempDoublePtr + 4) >> 2] = r.high_;
      },
      ensureTemps: function() {
        if (i.ensuredTemps) return;
        i.ensuredTemps = true;
        i.two32 = new r();
        i.two32.fromString("4294967296", 10);
        i.two64 = new r();
        i.two64.fromString("18446744073709551616", 10);
        i.temp1 = new r();
        i.temp2 = new r();
      },
      lh2bignum: function(a, s) {
        var e = new r();
        e.fromString(s.toString(), 10);
        var t = new r();
        e.multiplyTo(i.two32, t);
        var n = new r();
        n.fromString(a.toString(), 10);
        var o = new r();
        n.addTo(t, o);
        return o;
      },
      stringify: function(o, a, s) {
        var t = new e.math.Long(o, a).toString();
        if (s && t[0] == "-") {
          i.ensureTemps();
          var n = new r();
          n.fromString(t, 10);
          t = new r();
          i.two64.addTo(n, t);
          t = t.toString(10);
        }
        return t;
      },
      fromString: function(h, l, d, c, u) {
        i.ensureTemps();
        var t = new r();
        t.fromString(h, l);
        var a = new r();
        a.fromString(d, 10);
        var o = new r();
        o.fromString(c, 10);
        if (u && t.compareTo(r.ZERO) < 0) {
          var f = new r();
          t.addTo(i.two64, f);
          t = f;
        }
        var n = false;
        if (t.compareTo(a) < 0) {
          t = a;
          n = true;
        } else if (t.compareTo(o) > 0) {
          t = o;
          n = true;
        }
        var s = e.math.Long.fromString(t.toString());
        HEAP32[tempDoublePtr >> 2] = s.low_;
        HEAP32[(tempDoublePtr + 4) >> 2] = s.high_;
        if (n) throw "range error";
      }
    };
    return i;
  })();
  if (memoryInitializer) {
    if (typeof Module["locateFile"] === "function") {
      memoryInitializer = Module["locateFile"](memoryInitializer);
    } else if (Module["memoryInitializerPrefixURL"]) {
      memoryInitializer = Module["memoryInitializerPrefixURL"] + memoryInitializer;
    }
    if (ENVIRONMENT_IS_NODE || ENVIRONMENT_IS_SHELL) {
      var data = Module["readBinary"](memoryInitializer);
      HEAPU8.set(data, STATIC_BASE);
    } else {
      addRunDependency("memory initializer");
      var applyMemoryInitializer = function(e) {
        if (e.byteLength) e = new Uint8Array(e);
        HEAPU8.set(e, STATIC_BASE);
        removeRunDependency("memory initializer");
      };
      var request = Module["memoryInitializerRequest"];
      if (request) {
        if (request.response) {
          setTimeout(function() {
            applyMemoryInitializer(request.response);
          }, 0);
        } else {
          request.addEventListener("load", function() {
            if (request.status !== 200 && request.status !== 0) {
              console.warn(
                "a problem seems to have happened with Module.memoryInitializerRequest, status: " +
                  request.status
              );
            }
            if (
              !request.response ||
              typeof request.response !== "object" ||
              !request.response.byteLength
            ) {
              console.warn(
                "a problem seems to have happened with Module.memoryInitializerRequest response (expected ArrayBuffer): " +
                  request.response
              );
            }
            applyMemoryInitializer(request.response);
          });
        }
      } else {
        Browser.asyncLoad(memoryInitializer, applyMemoryInitializer, function() {
          throw "could not load memory initializer " + memoryInitializer;
        });
      }
    }
  }
  function ExitStatus(e) {
    this.name = "ExitStatus";
    this.message = "Program terminated with exit(" + e + ")";
    this.status = e;
  }
  ExitStatus.prototype = new Error();
  ExitStatus.prototype.constructor = ExitStatus;
  var initialStackTop;
  var preloadStartTime = null;
  var calledMain = false;
  dependenciesFulfilled = function S() {
    if (!Module["calledRun"]) run();
    if (!Module["calledRun"]) dependenciesFulfilled = S;
  };
  Module["callMain"] = Module.callMain = function b(i) {
    assert(
      runDependencies == 0,
      "cannot call main when async dependencies remain! (listen on __ATMAIN__)"
    );
    assert(__ATPRERUN__.length == 0, "cannot call main when preRun functions remain to be called");
    i = i || [];
    ensureInitRuntime();
    var n = i.length + 1;
    function o() {
      for (var e = 0; e < 4 - 1; e++) {
        r.push(0);
      }
    }
    var r = [allocate(intArrayFromString(Module["thisProgram"]), "i8", ALLOC_NORMAL)];
    o();
    for (var t = 0; t < n - 1; t = t + 1) {
      r.push(allocate(intArrayFromString(i[t]), "i8", ALLOC_NORMAL));
      o();
    }
    r.push(0);
    r = allocate(r, "i32", ALLOC_NORMAL);
    initialStackTop = STACKTOP;
    try {
      var a = Module["_main"](n, r, 0);
      exit(a, true);
    } catch (e) {
      if (e instanceof ExitStatus) {
        return;
      } else if (e == "SimulateInfiniteLoop") {
        Module["noExitRuntime"] = true;
        return;
      } else {
        if (e && typeof e === "object" && e.stack)
          Module.printErr("exception thrown: " + [e, e.stack]);
        throw e;
      }
    } finally {
      calledMain = true;
    }
  };
  function run(e) {
    e = e || Module["arguments"];
    if (preloadStartTime === null) preloadStartTime = Date.now();
    if (runDependencies > 0) {
      return;
    }
    preRun();
    if (runDependencies > 0) return;
    if (Module["calledRun"]) return;
    function r() {
      if (Module["calledRun"]) return;
      Module["calledRun"] = true;
      if (ABORT) return;
      ensureInitRuntime();
      preMain();
      if (ENVIRONMENT_IS_WEB && preloadStartTime !== null) {
        Module.printErr("pre-main prep time: " + (Date.now() - preloadStartTime) + " ms");
      }
      if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"]();
      if (Module["_main"] && shouldRunNow) Module["callMain"](e);
      postRun();
    }
    if (Module["setStatus"]) {
      Module["setStatus"]("Running...");
      setTimeout(function() {
        setTimeout(function() {
          Module["setStatus"]("");
        }, 1);
        r();
      }, 1);
    } else {
      r();
    }
  }
  Module["run"] = Module.run = run;
  function exit(e, r) {
    if (r && Module["noExitRuntime"]) {
      return;
    }
    if (Module["noExitRuntime"]) {
    } else {
      ABORT = true;
      EXITSTATUS = e;
      STACKTOP = initialStackTop;
      exitRuntime();
      if (Module["onExit"]) Module["onExit"](e);
    }
    if (ENVIRONMENT_IS_NODE) {
      process["stdout"]["once"]("drain", function() {
        process["exit"](e);
      });
      console.log(" ");
      setTimeout(function() {
        process["exit"](e);
      }, 500);
    } else if (ENVIRONMENT_IS_SHELL && typeof quit === "function") {
      quit(e);
    }
    throw new ExitStatus(e);
  }
  Module["exit"] = Module.exit = exit;
  var abortDecorators = [];
  function abort(e) {
    if (e !== undefined) {
      Module.print(e);
      Module.printErr(e);
      e = JSON.stringify(e);
    } else {
      e = "";
    }
    ABORT = true;
    EXITSTATUS = 1;
    var i =
      "\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";
    var r = "abort(" + e + ") at " + stackTrace() + i;
    if (abortDecorators) {
      abortDecorators.forEach(function(i) {
        r = i(r, e);
      });
    }
    throw r;
  }
  Module["abort"] = Module.abort = abort;
  if (Module["preInit"]) {
    if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]];
    while (Module["preInit"].length > 0) {
      Module["preInit"].pop()();
    }
  }
  var shouldRunNow = true;
  if (Module["noInitialRun"]) {
    shouldRunNow = false;
  }
  run();
  var NUM_CH = 2,
    HEAPU8 = Module.HEAPU8,
    malloc = Module._malloc,
    free = Module._free,
    lame_init = Module._lame_init,
    lame_set_mode = Module._lame_set_mode,
    lame_set_num_channels = Module._lame_set_num_channels,
    lame_set_in_samplerate = Module._lame_set_in_samplerate,
    lame_set_brate = Module._lame_set_brate,
    lame_init_params = Module._lame_init_params,
    lame_encode_buffer_ieee_float = Module._lame_encode_buffer_ieee_float,
    lame_encode_flush = Module._lame_encode_flush,
    lame_close = Module._lame_close;
  var Encoder = function(e, r) {
    this.gfp = lame_init();
    lame_set_mode(this.gfp, 1);
    lame_set_num_channels(this.gfp, NUM_CH);
    lame_set_in_samplerate(this.gfp, e);
    lame_set_brate(this.gfp, r);
    lame_init_params(this.gfp);
    this.allocBuffers(8192);
    this.mp3Buffers = [];
  };
  Encoder.prototype.encode = function(i) {
    var r = i[0].length;
    if (r > this.srcLen) {
      this.freeBuffers();
      this.allocBuffers(r);
    }
    for (var e = 0; e < NUM_CH; ++e) this.srcBuf[e].set(i[e]);
    var t = lame_encode_buffer_ieee_float(
      this.gfp,
      this.srcPtr[0],
      this.srcPtr[1],
      r,
      this.dstPtr,
      this.dstSz
    );
    this.mp3Buffers.push(new Uint8Array(this.dstBuf.subarray(0, t)));
  };
  Encoder.prototype.finish = function(e) {
    var r = lame_encode_flush(this.gfp, this.dstPtr, this.dstSz);
    this.mp3Buffers.push(new Uint8Array(this.dstBuf.subarray(0, r)));
    var i = new Blob(this.mp3Buffers, { type: e || "audio/mpeg" });
    this.cleanup();
    return i;
  };
  Encoder.prototype.cancel = Encoder.prototype.cleanup = function() {
    lame_close(this.gfp);
    delete this.gfp;
    delete this.mp3Buffers;
    this.freeBuffers();
  };
  Encoder.prototype.allocBuffers = function(r) {
    this.srcLen = r;
    this.srcPtr = [];
    this.srcBuf = [];
    for (var e = 0; e < NUM_CH; ++e) {
      this.srcPtr[e] = malloc(this.srcLen * 4);
      this.srcBuf[e] = new Float32Array(HEAPU8.buffer, this.srcPtr[e], this.srcLen);
    }
    this.dstSz = Math.ceil(1.25 * this.srcLen) + 7200;
    this.dstPtr = malloc(this.dstSz);
    this.dstBuf = new Uint8Array(HEAPU8.buffer, this.dstPtr, this.dstSz);
  };
  Encoder.prototype.freeBuffers = function() {
    delete this.dstBuf;
    delete this.srcBuf;
    free(this.dstPtr);
    for (var e = 0; e < NUM_CH; ++e) free(this.srcPtr[e]);
    delete this.dstPtr;
    delete this.srcPtr;
  };
  self.Mp3LameEncoder = Encoder;
})(self);
var NUM_CH = 2,
  sampleRate = 44100,
  options = undefined,
  maxBuffers = undefined,
  encoder = undefined,
  recBuffers = undefined,
  bufferCount = 0;
function error(e) {
  self.postMessage({ command: "error", message: "mp3: " + e });
}
function init(e) {
  if (e.config.numChannels === NUM_CH) {
    sampleRate = e.config.sampleRate;
    options = e.options;
  } else error("numChannels must be " + NUM_CH);
}
function setOptions(e) {
  if (encoder || recBuffers) error("cannot set options during recording");
  else options = e;
}
function start(e) {
  maxBuffers = Math.ceil((options.timeLimit * sampleRate) / e);
  if (options.encodeAfterRecord) recBuffers = [];
  else encoder = new Mp3LameEncoder(sampleRate, options.mp3.bitRate);
}
function record(e) {
  if (bufferCount++ < maxBuffers)
    if (encoder) encoder.encode(e);
    else recBuffers.push(e);
  else self.postMessage({ command: "timeout" });
}
function postProgress(e) {
  self.postMessage({ command: "progress", progress: e });
}
function finish() {
  if (recBuffers) {
    postProgress(0);
    encoder = new Mp3LameEncoder(sampleRate, options.mp3.bitRate);
    var e = Date.now() + options.progressInterval;
    while (recBuffers.length > 0) {
      encoder.encode(recBuffers.shift());
      var r = Date.now();
      if (r > e) {
        postProgress((bufferCount - recBuffers.length) / bufferCount);
        e = r + options.progressInterval;
      }
    }
    postProgress(1);
  }
  self.postMessage({ command: "complete", blob: encoder.finish(options.mp3.mimeType) });
  cleanup();
}
function cleanup() {
  encoder = recBuffers = undefined;
  bufferCount = 0;
}
self.onmessage = function(r) {
  var e = r.data;
  switch (e.command) {
    case "init":
      init(e);
      break;
    case "options":
      setOptions(e.options);
      break;
    case "start":
      start(e.bufferSize);
      break;
    case "record":
      record(e.buffer);
      break;
    case "finish":
      finish();
      break;
    case "cancel":
      cleanup();
  }
};
self.postMessage({ command: "loaded" });